优龙的FS44B0X板子的BIOS代码的入口点在什么地方?如何查找?

这份BIOS的代码由三个汇编文件和一堆C文件组成,我们都只到,C的程序,我们只需要找哪个源文件中有main函数就OK了,那这BIOS的代码怎么找呢?

首先想入口点应该在汇编文件中,因为C语言的程序要想运行,必须使用汇编将栈、入口参数等环境准备好,否则无法运行。

经过对工程的mcp文件的研究,发现,在项目的settings(DebugRel_bin settings)中,在ARM Linker这一项中,有这么一个链接参数:-first vector.o(reset) ,这个参数的意思是把vector.o的reset这一段放在整个image的最开头,这样,第一个被执行的指令自然就是reset的第一行汇编代码了, 这就OK了,原来入口点是vector.s的reset这个代码段,再回看vector.s中reset的代码,证实了这一点:

;******************************************************
AREA reset, CODE, READONLY

ENTRY

EXPORT __ENTRY
__ENTRY
ResetEntry
b SYS_RST_HANDLER
b UDF_INS_HANDLER
b SWI_SVC_HANDLER
b INS_ABT_HANDLER
b DAT_ABT_HANDLER
b .
b IRQ_SVC_HANDLER
b FIQ_SVC_HANDLER

;******************************************************

上面还说明了如果要reset的话,也是从这里开始 ResetEntry

我想现在就算换块板子,看代码的入口点的方法还是一样的,看编译/链接的选项就OK
原文地址:https://www.cnblogs.com/super119/p/2017765.html