【UEFI】---基于UEFI编程的基本思路

最近基于UEF在写代码的时候,发现由于粗心总是出现很多问题,而且都是一些小问题。虽然UEFI玩了挺久,但是也没梳理一下思路。借此机会整理一下:

UEFI对复杂的BIOS代码做了很好的封装和模块化。   而且UEFI的标准库函数也十分丰富,多数情况下需要跨模块调用各种丰富的库函数来进行功能开发,这其中重点是了解整个代码的框架。在写代码之前要对当前调用的函数了然于胸,不然就会发生总是因为一些小的问题导致编译错误,BIOS的编译是需要一些时间的,过多的花时间来试错编译的过程,会极大的影响我们的开发效率,大概梳理了下编程的思路:

1. 从框架入手

要对代码的框架有个了解,所调用的库函数以及变量是否属于本模块内,如果不属于,则要在inf文档中添加模块声明。此外gRT的某些服务是在gST中,因此学会相互转换

2. 对形参入手

函数可以识别到以后,则要关注形参的类型以及格式,UEFI对于类型标准的非常严格,因此定义形参变量时,一定要确定类型是否一致。另外的一点就是形参的类型,着重关注是否为指针,是一级指针还是二级指针。不要错用。

3.GUID等全局变量的包含使用

如果有涉及到GUID,则要看下目前的包含结构有没有包括GUID,如果没有则要在inf文件中添加GUID的声明

4.头文件的包含

此外包含某个.h文件时,要关注当前.h文件是否包含了其他模块的.h文件,如果包含了,则要在调用的inf文件中添加Pkg的声明

 

 

BIOS / Legacy Boot of UEFI-only media问题可以通过以下方法解决。 首先,我们需要了解BIOS和UEFI之间的差异。BIOS(Basic Input/Output System)是计算机启动并加载操作系统之前的一段软件。它使用传统的启动方式来识别和引导存储设备。相反,UEFI(Unified Extensible Firmware Interface)是最新的固件接口标准,支持更多功能和更大的扩展性。 当我们使用遵循UEFI标准的媒体时,由于它们没有传统的MBR(Master Boot Record)分区表,就会出现BIOS / Legacy Boot无法引导的问题。为了解决这个问题,我们可以采取以下措施: 1. 更新BIOS:首先,确保计算机的BIOS是最新的版本。有时,旧版本的BIOS可能无法支持UEFI引导。您可以通过访问计算机制造商的官方网站来检查最新的BIOS版本并进行更新。 2. 启用UEFI模式:进入计算机的BIOS设置界面,并启用UEFI模式。这样,您的计算机将能够使用UEFI标准的引导方式。 3. 禁用Secure Boot:如果UEFI模式下的引导仍然失败,您可以尝试禁用Secure Boot安全引导功能。Secure Boot是一种安全特性,要求引导的操作系统必须由受信任的数字证书进行签名。禁用Secure Boot可能会允许计算机引导UEFI-only媒体。 4. 使用第三方工具:如果以上方法无效,您还可以尝试使用第三方工具。例如,可以使用一些特定的引导管理器软件来模拟UEFI环境,实现在BIOS / Legacy Boot下引导UEFI-only媒体。 总之,解决BIOS / Legacy Boot of UEFI-only media的问题可以通过更新BIOS、启用UEFI模式、禁用Secure Boot以及使用第三方工具来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值