zoukankan      html  css  js  c++  java
  • 优龙的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
  • 相关阅读:
    BZOJ3193: [JLOI2013]地形生成
    ARG102E:Stop. Otherwise...
    51NOD1847:奇怪的数学题
    大型大常数多项式模板(已卡常...)
    CF932G Palindrome Partition
    51nod1538:一道难题(常系数线性递推/Cayley-Hamilton定理)
    HTML——meta标签
    HTTP 格式
    Node.js——Async
    设计模式——外观模式
  • 原文地址:https://www.cnblogs.com/super119/p/2017765.html
Copyright © 2011-2022 走看看