intel的X86 CPU对运行错误的处理已经做的非常完善了,一般即使是开机卡死,跑飞等各种问题也会丢给你相关的提示信息,那么掌握这种错误的分析手段就显得至关重要。在实际开发的过程中,我遇到了一个错误,现总结下分析思路
问题一
描述如下:
1. 开机过程中在遇到等待用户按esc键可进入BIOS Setup界面的时候,如果停顿1-3s,然后再按esc键尝试进入,系统报错,无法进入BIOS Setup界面。BIOS也会丢出来错误代码
分析步骤:
1.采用的是Insyde的Code,那么在遇到这样的错误码,开发者要如何定位问题呢?从错误码入手
EDK的Code里面有这个REPORT_STATUS_CODE_WITH_DEVICE_PATH(),如果不吹意外的话,你遇到的串口丢出来这种信息应该是下面这个函数打印出来的。而V105007得值就是Value得值,说明此时代码在执行得过程中遇到了问题,因此借用这个函数将错误信息打印出来,根据注释,你应该可以看出来打印得信息包括设备号,还有错误信息码,进一步定义的话,我们先要分析这个V1050007
2. 继续追这个函数调用得地方,最终在串口Seria,c得文件中找到了下面这个函数,如果还不确定的话,那我们继续追看那两个相或得参数:
参数值如下,这三个参数往这一摆,基本可以确定你错误码是由这个函数调用打印得了,那么进一步我们也就基本确定了这个错误得原因肯定是和串口相关,这样在分析,是不是就好很多,不会再像无头苍蝇一样乱撞了呢,