UEFI学习问题记录(三)

最近有项目需求,需要做一个ARM和X86平台上的UEFI测试程序,编写程序就需要调试环境进行源码级调试,但是网上很多资料只讲了UEFI的环境搭建,以及在命令行下怎么编译和运行efi文件,具体怎么进行debug说的不多,我也走过了很多坑,才堪堪把X86调试环境运行起来,ARM平台现在也没有搞起来,有时间再研究,现在记录一下X86的搭建过程。

1,调试环境:VS2019+EDK2,其安装过程在网上都有,前面两篇文章也有写过,不再赘述。

2,怎样启动调试环境?

这里要推荐一下《UEFI编程实践》作者罗冰的方法,链接如下:

(13条消息) UEFI开发探索53 – VS2015调试UEFI代码(续第27篇)_vs 查看uefi代码_luobing4365的博客-CSDN博客

大体方法是一样的,但是博客里用的是VS2015+NT32Pkg,这里使用VS2019+EmulatorPkg。

下面说一下不同:

1,建立工程

按照参考博客的方法,VS2015要建立makefile工程,但是VS2019没有makefile工程,需要选择如图这一项。

然后在配置项全填上11111,如图,这一点和参考一致

我这边是使用MdeModulePkg\Application\HelloWorld文件下的程序做测试,所以工程建立在该文件夹下,然后修改工程文件,改后如下

2,修改项目配置

要将如下红框中配置改成一致,并且命令和工作目录要修改为图中的路径(按照自己安装的路径设置)

这样修改完,直接运行也是运行不过去的,会出现XXX.h文件找不到的情况,其原因在于源文件使用的标准文件搜索方式<>,必须将路径也加入进搜索目录,如图所示:

然后在源文件中打断点,F5运行,

在fs0下运行helloworld.efi,就可以执行到断点出,如图:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UEFI Shell是一种全新的操作系统环境,在现代计算机上广泛使用。相较于BIOS,UEFI Shell在启动时间和性能方面都有着很大的优势。UEFI Shell有其独特的运行环境,为用户提供了一种类似于操作系统的命令行界面来控制计算机的硬件和软件。 UEFI Shell可以很好的应用于系统调试和维护工作。因为UEFI Shell能够与UEFI BIOS直接进行交互,可以读取和修改UEFI BIOS中的各种变量。这些变量包括了计算机的系统时间、启动磁盘分区信息、设备启用状态等等。所以,当系统出现问题时,可以通过UEFI Shell来获取更多的系统信息、检测硬件故障以及查找系统错误等。 同时,UEFI Shell也支持各种文件系统格式。这使得我们可以在UEFI Shell中查看和管理硬盘分区,从而进行数据备份与还原、系统安装和修复等操作。此外,UEFI Shell还支持各种基本的命令,如文件与目录操作、网络连接管理、进程控制等。这让我们可以在更高效的状态下调试和管理系统。 对于初学者来说,UEFI Shell学习并不是一件容易的事情。因为UEFI Shell的命令和语法都有一定的学习曲线,需要一定的时间和经验去掌握。但是,如果您熟练掌握了UEFI Shell的使用,不仅可以解决常见的操作问题,还可以探究计算机系统的底层运作机理。这对于系统工程师来说尤为重要。 总之,UEFI Shell作为一种新兴的操作系统环境,拥有着广泛的应用场景和巨大的优势,不管是对于初学者还是经验丰富的系统工程师来说,掌握UEFI Shell的各种技术是一个不可或缺的技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值