15_固件开发
文章平均质量分 57
xiaopangzi313
编程爱好者
展开
-
UEFI 基础教程 (零) - 目录
UEFI 基础教程 (一) - 搭建UEFI开发环境UEFI 基础教程 (二) - 运行第一个APP HelloWorldUEFI 基础教程 (三) - 运行第一个PEI DriverUEFI 基础教程 (四) - 运行第一个DXE DriverUEFI 基础教程 (五) - PPI 初探UEFI 基础教程 (六) - PROTOCOL 简单使用UEFI 基础教程 (七) - HOB 简单使用UEFI 基础教程 (八)- PCD 简单使用UEFI 基础教程 (九) - EVENT 简单使用原创 2020-08-14 21:55:57 · 9681 阅读 · 4 评论 -
UEFI 基础教程 (四十八.2) — UEFI code style
在向社区贡献代码过程中,Code style 十分重要,如果code style有问题,大概率不能通过code review.本文以edk2中一段程序为例会大致说明,C 语言在UEFI中大致遵循的规则,原创 2024-10-20 01:09:21 · 229 阅读 · 0 评论 -
UEFI 基础教程 (三) - 运行第一个PEI Driver
一、 编写源代码编写C:\edkii\OvmfPkg\MyHelloWorldPEIMDriver.c#include <uefi.h> #include <Library/UefiLib.h> #include <Library/BaseLib.h>#include <Library/DebugLib.h>#include <...原创 2019-04-27 11:19:26 · 6474 阅读 · 10 评论 -
UEFI 基础教程 (四) - 运行第一个DXE Driver
一、 编写源代码编写C:\edkii\OvmfPkg\MyHelloWorldDXEDriver\MyHelloWorldDXEDriver.c#include <uefi.h> #include <Library/UefiLib.h> #include <Library/BaseLib.h>#include <Library/DebugLi...原创 2019-04-27 14:57:50 · 5931 阅读 · 3 评论 -
UEFI 基础教程 (五) - PPI 初探
一、 编写源代码编写C:\edkii\OvmfPkg\MyHelloWorldInstallPPI\MyHelloWorldInstallPPI.c,#include <uefi.h>#include <Library/UefiLib.h>#include <Library/BaseLib.h>#include <Library/DebugL...原创 2019-04-27 16:00:53 · 6475 阅读 · 4 评论 -
UEFI 基础教程 (六) - PROTOCOL 简单使用
一、 编写源代码编写UEFI Application 代码C:\edkii\OvmfPkg\MyHelloWorldAppProtocol\MyHelloWorldAppProtocol.c,...static EFI_MYHELLOWORLD_PROTOCOL * gMyHelloWorldProtocol = NULL;EFI_STATUSEFIAPIMyHelloWorld...原创 2019-04-27 21:25:31 · 4450 阅读 · 4 评论 -
UEFI 基础教程 (七) - HOB 简单使用
一、 编写源代码编写UEFI PEI 驱动代码C:\edkii\OvmfPkg\MyHelloWorldPEIMHob\MyHelloWorldPEIMHob.c,EFI_GUID gMyHelloWorldPEIGUID = { 0xbdb38129, 0x4d65, 0x39f4, { 0x72, 0x12, 0x68, 0xcf, 0x5a, 0x19, 0xa, 0xf8 }};...原创 2019-04-27 22:28:58 · 6977 阅读 · 9 评论 -
EFI 基础教程 (八)- PCD 简单使用
UEFI 基础教程 (八)- PCD 简单使用 一、 编写源代码二、 编译生成EFI文件三、 运行 UEFI APP `MyHelloWorldPCD.efi`四、 小结一、 编写源代码编写UEFI Application代码C:\edkii\OvmfPkg\MyHelloWorldPCD\MyHelloWorldPCD.c,EFI_STATUSEFIAPIMyHelloWorldPCDEntry( IN EFI_HANDLE ImageHandle, IN EFI_S原创 2020-06-06 00:34:36 · 4993 阅读 · 3 评论 -
UEFI 基础教程 (九) - EVENT 简单使用
UEFI 基础教程 (八) - EVENT 简单使用一、 编写源代码编写UEFI Application代码C:\edkii\OvmfPkg\MyHelloWorldEvent\MyHelloWorldEvent.c,EFI_STATUS MyHelloWorldEventEntry( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ){原创 2020-06-06 10:21:05 · 3631 阅读 · 0 评论 -
UEFI 基础教程 (十) - FileIO 简单使用
一、 编写源代码编写UEFI Application代码C:\edkii\OvmfPkg\MyHelloWorldFileIO\MyHelloWorldFileIO.c,EFI_STATUS OpenShellProtocol( EFI_SHELL_PROTOCOL **gEfiShellProtocol ){ EFI_STATUS Status; Status = gBS->OpenProtocol(原创 2020-06-06 10:23:56 · 3211 阅读 · 3 评论 -
UEFI 基础教程 (十一) - Shell下读取SMBIOS信息
一、 编写源代码编写UEFI Application代码C:\edkii\OvmfPkg\MyHelloWorldSMBios\MyHelloWorldSMBios.c,EFI_STATUSEFIAPIMyHelloWorldSMBiosEntry( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable){ DUMP_LOG ("MyHelloWorldSmbiosAppEntry Start\原创 2020-06-07 00:28:07 · 8307 阅读 · 1 评论 -
UEFI 基础教程 (十二) - 使用标准C库
一、 编写源代码编写UEFI Application代码C:\edkii\OvmfPkg\MyHelloWorldStdLibC\MyHelloWorldStdLibC.c,#include <stdio.h>int main(int args , char ** argv){ int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9}; int i, j, temp, isSorted; printf("Before Sort原创 2020-06-07 00:33:17 · 2989 阅读 · 0 评论 -
UEFI 基础教程 (十三) - VFR,HFR 简单使用
一、 修改UEFI UiApp源代码修改 FrontPageStrings.uni 与 FrontPageVfr.Vfr添加字符串资源到 MdeModulePkg/Application/UiApp/FrontPageStrings.uni//Add CSDN UI resources#string STR_CSDN_BANNER_LEFT #language en-US "Csdn Bannder Left"#string STR_CSDN_BANNER_RIGHT原创 2020-06-07 14:06:07 · 8360 阅读 · 6 评论 -
UEFI 基础教程 (十四.1) - 设置默认启动项为UEFI Shell
一 编写源代码OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.cUINTNBootOptionPriority ( CONST EFI_BOOT_MANAGER_LOAD_OPTION *BootOption ){ DEBUG ((EFI_D_ERROR," [CSDN] BootOptionPriority %S .\n", BootOption->Description)); if (StrCmp (BootOpti原创 2020-11-22 11:53:56 · 4677 阅读 · 1 评论 -
UEFI 基础教程 (十四) - Variable的使用
一 编写源代码 DataSize = sizeof (CSDNEnable); Status = gRT->SetVariable ( L"CSDNEnable", &gEfiCsdnEnableGuid, EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS |原创 2020-11-21 14:32:17 · 8790 阅读 · 16 评论 -
UEFI 基础教程 (十五) - 获取UEFI MemoryMap
一 编写源代码 EfiMemoryMapSize = 0; EfiMemoryMap = NULL; Status = gBS->GetMemoryMap ( &EfiMemoryMapSize, EfiMemoryMap, &EfiMapKey, &EfiDescriptorSize,原创 2020-11-22 12:57:37 · 6308 阅读 · 0 评论 -
UEFI 基础教程 (十六) - ACPI 简单使用
1. 初始化UEFI编译环境 edksetup.bat2. 创建ASL源文件 终端执行以下命令生成csdn.asl. 和csdnhw.aslecho 'DefinitionBlock ("csdn.asl","DSDT",2,"ICSDN","PLATECSDN",3){ #include "csdnhw.asl"} // end of DSDT' >> csdn.aslecho 'Scope (\_SB) { Name(TEMP,0) Devi原创 2021-03-21 22:48:11 · 7570 阅读 · 4 评论 -
UEFI 基础教程 (十七) - SMM的简单使用
一、 使用IO操作访问SMM服务1. 编写SMM driver注册SMM服务2. 使用IO触发SMM服务二、 使用communication 访问SMM服务1. 编写SMM driver注册SMM服务2. 使用communication 访问SMM原创 2021-07-26 22:05:59 · 8071 阅读 · 3 评论 -
UEFI 基础教程 (十八) -UEFI Build Process简单分析
原创 2021-07-26 22:38:10 · 1433 阅读 · 0 评论 -
UEFI 基础教程 (十九) — PCIe 简单使用
PCIe 枚举原创 2023-01-01 19:58:52 · 1867 阅读 · 0 评论 -
UEFI 基础教程 (二十) --- BIOS開發常用鏈接
BIOS開發常用鏈接。原创 2022-12-30 23:56:10 · 1235 阅读 · 0 评论 -
UEFI 基础教程 (二十一) — BIOS常见面试题
【代码】UEFI 基础教程 (二十一) — BIOS常见面试题。原创 2023-01-03 21:11:15 · 3877 阅读 · 1 评论 -
Linux debug 常用命令
CentOS/Redhat/Fedora 系統命令:安装软件源导入public keyrpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org#Centos8yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm#Centos7yum install https://www.elrepo.org/elrepo-release-7.el7.e原创 2022-05-20 18:16:16 · 2575 阅读 · 0 评论 -
OS Install for debug
os原创 2023-02-26 09:45:02 · 704 阅读 · 1 评论 -
Windows Debug常见设置
Windows Debug常见设置原创 2022-12-30 22:45:02 · 627 阅读 · 0 评论 -
UEFI 基础教程 (二) - 运行第一个APP HelloWorld
UEFI 基础教程 (二) - 运行第一个APP HelloWorld.efi一、 编写源代码编写HelloWorld.c#include <uefi.h> #include <Library/UefiLib.h> #include <Library/BaseLib.h>#include <Library/DebugLib.h>#i...原创 2019-04-27 01:17:58 · 10255 阅读 · 16 评论 -
UEFI 基础教程 (一) - 基于QEMU搭建UEFI开发环境(win/linux)
UEFI 基础教程 (一)— 搭建UEFI开发环境下载UEFI开源代码cmd进入C盘根目录,git clone https://github.com/tianocore/edk2.git edkii安装ASL编译器下载 iasl-win-20190405.zip,然后解压至C:\asl。安装NASM编译器下载 nasm-2.14.02-win64.zip,解压nasm-2.1......原创 2019-04-26 23:38:37 · 25173 阅读 · 38 评论