自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C学习

  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 vscode连接远程Linux服务器

记录vscode远程链接相关

2023-08-07 16:14:42 5195

原创 UEFI BIOS —— PEI阶段分析

PEI(Pre-EFI Initialization) -预先EFI初始化)阶段一、PEI 主要功能PEI阶段资源依然十分有限,内存到了PEI后期才被初始化。其主要功能是为DXE准备执行环境,将需要传递给DXE的信息组成HOB(Handoff Block)列表,最终将控制权交给DXE。执行流程如下:从功能上讲,PEI可分为两部分:PEI 内核 ( PEI Foundation ):负责PEI基础服务和流程。PEIM ( PEI Module) 派遣器:a. 主要功能是找出系统中所有的 PE.

2022-02-23 15:20:01 7013 3

原创 UEFI BIOS —— SEC阶段分析

在上篇写到上电程序完成后,进行一系列安全措施后,CPU开始执行reset vector的代码,进入UEFI世界。那么CPU是怎么进入Reset vector的呢?除了极少的嵌入式X86 CPU之外,大部分X86 电脑和服务器的UEFI都存储在 NOR Flash中,这块Flash通过SPI接口和南桥PCH相连。...

2022-02-15 13:38:15 4853 4

原创 UEFI BIOS —— 开机上电阶段分析

按下电源键,CPU并不是第一个得到通知并立刻执行代码的。

2022-01-25 14:28:36 7298 1

原创 安装Ubuntu 18.04卡死问题记录

新机安装 ubuntu 出现卡死问题,本篇做下记录由于本机没有核显,独显又是 nvidia GT710,起初猜测跟显卡有关,网上也有许多相关问题的解决实例,具体步骤如下:BIOS关闭安全启动模式进入grub,按键e,进入编辑模式,删除 quiet splash 后面 —然后添加 nomodeset (或者添加 nouveau.modeset=0 )按 F10 或者 ctrl + x键,进入安装最后发现还是卡死,无奈只能尝试其他方案。询问厂商,他们表示没有适配过ubuntu,查资料,了解可能

2022-01-11 14:12:04 2174

原创 C语言实现基础查找算法

顺序查找 ( Sequential search )顺序查找是按照序列原有顺序对 数组/链表 进行遍历比较查询的基本查找算法。算法实现从表中的最后一个数据元素开始,逐个同记录的关键字做比较如果匹配成功,则查找成功;反之,如果直到表中第一个关键字查找完也没有成功匹配,则查找失败。时间复杂度:O(n)静态查找表既可以使用顺序表表示,也可以使用链表结构表示。虽然一个是数组、一个链表,但两者在做查找操作时,基本上大同小异。我们这里使用数组进行操作。// 顺序查找--如果发现则返回查找到的值,否则返

2022-01-05 13:57:24 8042

原创 C语言实现基础排序算法

排序算法

2021-12-30 17:51:20 903

原创 非线性结构——简单树相关

一、树的概念树形结构是一对多的非线性结构,非常类似于自然界中的树,数据元素之间既有分支关系,又有层次关系。如下:树具有下面两个特点:树的根结点没有前驱结点,除根结点之外的所有结点有且只有一个前驱结点。树中的所有结点都可以有零个或多个后继结点。相关术语树的结点结点 (Node):表示树中的数据元素,由数据项和数据元素之间的关系组成。图上共14个结点。根结点 (Root Node):每一个非空树都有且只有一个被称为根的结点。结点 A 就是整棵树的根结点。父结点 (Par

2021-12-13 17:16:45 694

原创 线性结构——串

一、串的相关定义串的定义:串是由零个或多个组成的有序序列,又叫字符串。串的长度:串中字符的数目称为串的长度。空串:由零个字符组成的串叫做空串,空串不包括任何字符,其长度为零。子串:串中任意个连续的字符组成的子序列称为该串的子串,空串是任何串的子串。主串:包含子串的串相应的称为主串。例:假设有两个串 a 和 b,如果 a 中可以找到几个连续字符组成的串与 b 完全相同,则称 a 是 b 的主串,b 是a 的子串。例如,若 a = “hello world”,b = “world”,由于 a

2021-11-24 11:42:25 1199

原创 线性结构——栈、队列

一、栈栈是一种只能从表的一端存取数据且遵循 “先进后出” 原则的线性存储结构。向栈中添加元素,此过程被称为"进栈"(入栈或压栈);从栈中提取出指定元素,此过程被称为"出栈"(或弹栈);栈的开口端被称为栈顶;封口端被称为栈底如图,1最先进栈,4最先出栈栈的具体实现实现分为 顺序栈 和 链栈顺序栈:采用顺序存储结构可以模拟栈存储数据的特点,从而实现栈存储结构;链栈:采用链式存储结构实现栈结构;1.1 顺序栈可以用数组或者连续内存,本文使用连续内存。1.1.1 定义数据类

2021-11-16 16:02:53 477

原创 线性结构——静态链表

一、静态链表概念1.1 静态链表定义静态链表,也是线性存储结构的一种,它兼顾了顺序表和链表的优点于一身,可以看做是顺序表和链表的升级版。使用静态链表存储数据,数据全部存储在数组中(和顺序表一样),但存储位置是随机的,数据之间"一对一"的逻辑关系通过一个整形变量(称为"游标",和指针功能类似)维持(和链表类似)。我们用"数组+游标" 的方式存储具有线性关系数据的存储结构就是静态链表如下:数据(data):用于存储数据元素的值;游标(cur):其实就是数组下标,表示直接后继元素所在数组中的位置

2021-11-16 16:02:22 2217

原创 线性结构——双向链表

一、概念双向链表概念( double linked List) 是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。所以在双向链表中的结点都有两个指针域, 一个指向直接后继,另一个指向直接前驱。二、双向不循环链表2.1 定义数据类型typedef void * datatype;typedef struct list_s{ struct list_s *prev; //指向直接前驱 datatype data; //数据域 struct list_s *n

2021-11-11 14:10:41 1026

原创 widows 10一直刷新问题

dism /online /Cleanup-Image /RestoreHealth & sfc /SCANNOW?& for %d in (%windir%\system32*.dll) do %windir%\system32\regsvr32.exe /s %d

2021-11-10 11:41:02 81

原创 线性结构——单向链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

2021-11-10 11:37:04 538

原创 线性结构——顺序表

一、概念1.1 线性表线性表 (linear list)是n个具有相同特性的数据元素的有限序列。常见的线性表:顺序表、链表、栈、队列、字符串等线性表在逻辑上是一条直线,物理结构上以数组或者链表形式存储1.2 顺序表用一段地址连续的存储单元依次存储线性表的数据元素。分为静态顺序表:使用定长数组存储。动态顺序表:使用动态开辟的数组存储,容量不受限制,支持数据插入,删除,修改等一系列操作。二、顺序表的实现2.1 静态顺序表(数组)2.2 动态顺序表...

2021-11-04 10:38:14 218

原创 ubuntu20.04 desktop 实现PXE安装ubuntu20.04 server

一、PXE简介1.1 pxe简介PXE(Pre-boot Execution Environment)预启动执行环境,是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程。1.2 PXE工作原理PXE client是需要安装os的计算机,TFTP Server、DHCP Server及HTTP Server部署在在PXE Server端。Bootstrap文件、配置文件以及Linux根文件系

2021-10-18 15:52:08 4548 1

转载 CSDN里面使用Markdown输出LaTex数学公式

转载: https://blog.csdn.net/f_957995490/article/details/107098789 CSDN里面使用Markdown输出LaTex数学公式 关于MarkdownMarkdown排版格式 使用简记其他符号 参考链接

2021-10-09 16:05:18 236

原创 初识——复杂度

一、概念1.1 什么是数据结构?数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。1.2 什么是算法?算法就是定义良好的计算过程,他取一个或一组的值作为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。1.3 基本概念数据(data)是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据元素(data element)是组成数据的、有一定意义的基本单位

2021-10-09 08:41:42 164

原创 uefi开发环境搭建

一、windows下编译环境搭建1.1 软件环境操作系统:windows10编译器:VS2019Python38 :python-3.8.0-amd64.exeASL :iasl-win-20210730.zipNASM :nasm-2.13.03-installer-x64.exegit1.2 具体步骤1.2.1 下载最新edk2我这里在gitee上面同步了github的edk2仓库,所以直接从gitee下载git clone https://gitee.com/zl_wo

2021-09-22 11:20:50 2486 5

原创 AMD显卡更新UEFI GOP

一、简介很多老版本显卡vBIOS仅支持leagcy,所以在UEFI版本的BIOS下不能显示,本文以HD6570其中一款显卡进行操作。二、操作步骤2.1 操作环境windows操作系统GPU-Z 下载地址NV或者AMD显卡BIOS的刷新工具NVFlash或者ATIFlash下载地址制作给显卡BIOS添加或者更新UEFI GOP支持的软件AMD and Nvidia GOP update 下载地址Python 下载地址,下载安装后,点击开始Win按钮,输入CMD,打开CMD命令行模式,输入指令

2021-09-14 13:35:02 19242 7

转载 Git使用手册/Git教程

https://blog.csdn.net/u013374164/article/details/78831273

2021-03-09 15:38:09 130

原创 ubuntu默认vscode打开文件目录解决

今天,点击文件夹发现默认由vscode打开,有点懵用以下命令解决了xdg-mime default dde-file-manager.desktop inode/directory

2020-07-03 13:40:28 2393

转载 GitBook 从懵逼到入门

本文从 “是什么”、“为什么”、“怎么办”、“好不好” 四个维度来介绍 GitBook,带你从黑暗之中走出来,get 这种美妙的写作方式。是什么?在我认识 ...

2020-06-29 10:54:18 1428 2

原创 8086汇编环境搭建

windows环境使用windows下 DOS 模拟程序 dosbox这个模拟程序不带 debug.exe 、link.exe 、masm.exe单独下载这3个程序,并放到 C:\masm执行doxbox,并把对应目录挂载上去然后就可以使用debug、link、masmlinux环境linux使用dosemu模拟器安装:sudo apt-get install dosemu执行如下:对应的目录在~/.dosemu/drives 下:创建软链接文件操作:...

2020-06-12 09:08:41 1610

转载 CSDN编辑器markdown字体、颜色与字号的设置

       markdown是一种可以使用普通文本编辑器编写的标记语言,通过标记特殊语法生...

2020-06-11 19:21:58 378

转载 CSDN转载博客

参考博客原址 http://blog.csdn.net/bolu1234/article/details/51867099转载CSDN博客步骤:1、CSDN博客页面右键,点击【检查】 2、点击检查后,页面右侧出现html代码,如下图 3、点击写博客、点击左侧栏【博客设置】4...

2020-06-11 18:56:46 104

原创 C语言常见关键字及使用

staticstatic作用有三个:1.修饰全局变量static 全局变量当一个进程的全局变量被声明为static之后,它的中文名叫静态全局变量。静态全局变量和其他的全局变量的存储地点并没有区别,都是在.data段(已初始化)或者.bss段(未初始化)内,但是它只在定义它的源文件内有效,其他源文件无法访问它。2.修饰局部变量static 局部变量普通的局部变量在栈空...

2020-05-31 19:20:11 2083

原创 BMP图像 - UEFI shell下显示bmp图片

实现在uefi shell显示一张bmp图片1.inf文件TestShowBmp.inf## @file# # head for bmp test#####[Defines] INF_VERSION = 0x00010006 BASE_NAME = TestShowBmp FILE_GUID = 079E8E98-AE93-1111-8A71-88C8

2020-05-29 14:54:22 1270 2

原创 BMP图像 - BMP格式

BMP - (全称Bitmap)是Windows操作系统中的标准图像文件格式,采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时, 图像的扫描方式是按从左到右、从下到上的顺序。所以图案加载到内存后,行数据和显示的行顺序是上下颠倒的BMP文件格式如下:数据段名称大小(Byte)作用bmp文件头14提供文件的格式、大小等信息位图信息头4

2020-05-29 14:54:11 850

原创 UEFI shell - shell下实现加载标准应用程序

写一个shell app实现加载标准应用应用程序(HelloWrold.efi)代码实现:1. c文件edk2/ShellPkg/Application/TestLoadImage/TestLoadImage.c/** @file This is a test for Test Load Image**/#include "TestLoadImage.h"/** UEFI application entry point which has an interface simi

2020-05-29 14:48:27 1562

原创 UEFI shell - 标准应用程序的编译和加载过程

首先了解下,应用程序是怎么被编译成.efi文件:UefiMain.c首先被编译成目标文件UefiMain.obj连接器将目标文件UefiMain.obj和其他库连接成UefiMain.dllGenFw工具将UefiMain.dll转换成UefiMain.efi本文来源:《UEFI原理与编程》戴正华著...

2020-05-29 11:28:19 2298

原创 UEFI shell - shell app

这个UEFI shell app跟我们平时用的C语言的main函数有点像,支持传参数…写个例子测试下:PATH:edk2/ShellPkg/Application/TestShellApp/TestShellApp.inf## @file# This is the shell application## Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>## SPDX-Licens

2020-05-29 11:26:51 1333

原创 UEFI shell - 脚本文件

UEFI shell下的脚本文件的命名格式为: ****.nsh脚本的语法和规范参考:《EFI Shell User’s Guide》《UEFI原理与编程》1. 写一个简单的脚本测试下:脚本名为test.nsh,内容如下:pci2.开机自启动脚本UEFI shell有一个开机自启动脚本,命名startup.nsh编辑下startup.nsh,内容为date开启虚拟机,不做任何操作,结果如下:3.开机自启动脚本的代码实现参考edk2/ShellPkg/Applicati

2020-05-29 11:26:04 14594 2

原创 UEFI shell - 内置命令

一. UEFI shell 基础内置命令其命令实现在ShellPkg/Library下:主要有调试(Debug1),驱动(Driver1),网路(NetWork1),网路(NetWork2),安装(Install1),Level1,Level2,Level3。已经集成在shell内部,可以使用用help查看想要查询特定的命令,使用help cmd 或者cmd -?1. Shell命令的通用选项命令行参数作用-b,-break输出信息分屏显示-q,-quit

2020-05-29 11:24:21 5504

原创 UEFI shell - 简单认识

1. UEFI shell作用EFI Shell是EFI提供的一个交互式的命令行Shell环境,在这里你可以执行一些efi应用程序,加载efi设备驱动程序.一般从Setup下面的Boot Manager或者快捷启动进入,其画风如下:2. UEFI shell的加载在edk2下面的ShellPkg就是UEFI shell对应的开源包从开发者角度讲其实就是一个UEFI_APPLICATION类型的应用程序,只是它的功能比较特殊而已.其工程文件ShellPkg/Application/Shell

2020-05-29 11:22:26 9770

原创 BDS简单认识

1. BDS (Boot Device Select)DXE阶段最后会调用BDS.下面是DxeMain.c的代码部分// // Transfer control to the BDS Architectural Protocol // gBds->Entry (gBds); BDS 阶段负责加载额外的驱动,与用户交互,必要的硬件初始化,并转入操作系统。2. 代码流程分析BDS的入口在 MdeModulePkg/Universal/BdsDxe/BdsEntry.c下面看

2020-05-22 15:19:21 4853

原创 SMBIOS-UEFI下实现add table

目的完成两个APPAPP1 添加一张新的数据表APP2 修改新添加表的内容添加表c文件/** @file add a type smbios table Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> SPDX-License-Identifier: BSD-2-...

2020-04-29 16:19:35 1483 1

原创 SMBIOS-UEFI下实现打印EPS

目的把 EPS (Entry Piont Structure)-入口结构表 打印出来,然后把数据表类型打印出来。参考edk2/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/LibSmbiosView.c代码实现c文件/** @file test smbios Copyright (c) 2006 - 2018,...

2020-04-29 15:56:54 1164 1

原创 SMBIOS-UEFI代码实现理解

1.SMBIOS在UEFI下实现分两部分:SmbiosDxe驱动SmbiosTableSmbiosDxe驱动主要功能是为了SmbiosTable部分提供接口函数。2. SmbiosDxe2.1 驱动入口函数SmbiosDriverEntryPoint2.2 驱动代码段SMBIOS_INSTANCE mPrivateData;/** Driver to produ...

2020-04-29 15:50:33 1416

原创 SMBIOS-初识

一、SMBIOS和DMI1.1 SMBIOS简单认识系统管理BIOS (System Management BIOS )是主板或者系统制造厂商以标准格式显示产品信息所遵循的统一规范。每个主板厂商或者OEM厂商所生产的电脑,在出厂的时候都会按照smbios标准将信息写入到bios中。这些信息包括BIOS信息、系统信息、处理器信息、设备信息等。1.2 DMI简单认识桌面管理接口 (De...

2020-04-29 15:49:17 6933 1

DOSBox汇编环境.7z

DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。DOSBox的最新版本已经支持在 Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。这里是windows下安装包

2020-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除