• 正文
  • 相关推荐
申请入驻 产业图谱

飞凌嵌入式ElfBoard ELF 1板卡-uboot编译system.map/uboot.map

05/22 16:34
777
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

system.map是一个符号表,其中包括符号名、符号类型、符号值。符号(sysmbol):包括已定义的符号(对应全局变量和static变量和定义的函数的名字)和未定义符号(未定义的函数的名字和引用但没定义的符号)信息。

符号值:每个符号对应一个内存地址, 即符号值。

符号类型:常见的有B(bss),D(data),T或t(text),当然还有其他不常见类型,这里不一一列举。

打开system.map文件:

87800000 T __image_copy_start

87800000 T _start

87800020 T _undefined_instruction

87800024 T _software_interrupt

87800028 T _prefetch_abort

8780002c T _data_abort

87800030 T _not_used

87800034 T_irq

87800038 T _fiq

87800040 T _IRQ_STACK_START_IN

87800060 t undefined _ instruction

878000c0 t software _ interrupt

87800120 t prefetch_abort

87800180 t data_abort

878001e0 t not_used

87800240 t irq

878002a0 t fiq

87800300 T reset

87800304 T save_boot_params_ret

87800340 T c _ runtime_cpu_setup

可以看到该文件按照链接地址由低到高列出了所有符号在内存中的地址,及类型,uboot的程序入口点为_start(和_image_copy_start是同一地址,_image_copy_start是uboot进行自拷贝的地址),在内存中的地址为0X87800000。也可以看出,以0X87800000为起始的第一个区域是上一节讲过的text段区域,所以这个system.map是各段区域中的具体内容在内存中的布局情况。

u-boot.map中包含了链接过程中涉及到的目标文件以及其所依赖的库文件中的各个符号的地址信息,以及我们所涉及到的函数所在目录信息,这里不再展开讲,有兴趣的同学可以自己查看研究。

相关推荐