美文网首页RTOS和GUI_基于英飞凌tc2x及stm32开发板
hightec的ld文件分析_start --Apple的学习笔

hightec的ld文件分析_start --Apple的学习笔

作者: applecai | 来源:发表于2022-09-04 17:36 被阅读0次

一,前言,

之前做了一个mcal的最小工程,链接脚本用的是mcal自带的,所以想想结合link文件看看ucb配置的,结果6.8章节稍微看下基本就解决问题了,ucb0~ucb3还有这个4个copy主要是设置boot mode的,这是常用的。里面有BMI信息包括了start地址是0xA0000000。接着就发现了编译后的hex文件有些段只有十几个字节地址,为什么呢?

二,带着hex段的疑问开始查找答案

问题,编译后可以看到0xA0000000地址只有12字节?这好像是core0的开始地址,为什么只有12字节?


image.png

解答步骤

  1. 通过地址可以到ld链接文件中找到含义。


    image.png

    通过搜索0xA000000,然后搜索LCF_STARTPTR_NC_CPU0,就找到了段名。

  2. 通过段名去搜索c代码,发现是_START函数中的内容。


    image.png

    _START也是设置的第一个函数的启动地址。


    image.png
  3. 那么推断这个12字节内容就是_START中的一行代码,其它代码预计放入的是其它段地址。
    验证下这个函数是否就是12字节?通过代码调试可以看这c代码编译的二进制就是这12字节,疑惑解决了。其它12字节也是按相同方法验证。


    image.png

三,小结

因为我不喜欢看到这样散乱的地址,之后我想要自己修改链接文件,所以先要理解原来的链接文件,才能自己进行正确的修改。准备工作是需要提前做的,哈哈~

相关文章

网友评论

    本文标题:hightec的ld文件分析_start --Apple的学习笔

    本文链接:https://www.haomeiwen.com/subject/uusmnrtx.html