• 正文
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

飛凌嵌入式ElfBoard ELF 1板卡-uboot編譯system.map/uboot.map

4小時(shí)前
152
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

system.map是一個(gè)符號(hào)表,其中包括符號(hào)名、符號(hào)類型、符號(hào)值。符號(hào)(sysmbol):包括已定義的符號(hào)(對(duì)應(yīng)全局變量和static變量和定義的函數(shù)的名字)和未定義符號(hào)(未定義的函數(shù)的名字和引用但沒定義的符號(hào))信息。

符號(hào)值:每個(gè)符號(hào)對(duì)應(yīng)一個(gè)內(nèi)存地址, 即符號(hào)值。

符號(hào)類型:常見的有B(bss),D(data),T或t(text),當(dāng)然還有其他不常見類型,這里不一一列舉。

打開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

可以看到該文件按照鏈接地址由低到高列出了所有符號(hào)在內(nèi)存中的地址,及類型,uboot的程序入口點(diǎn)為_start(和_image_copy_start是同一地址,_image_copy_start是uboot進(jìn)行自拷貝的地址),在內(nèi)存中的地址為0X87800000。也可以看出,以0X87800000為起始的第一個(gè)區(qū)域是上一節(jié)講過的text段區(qū)域,所以這個(gè)system.map是各段區(qū)域中的具體內(nèi)容在內(nèi)存中的布局情況。

u-boot.map中包含了鏈接過程中涉及到的目標(biāo)文件以及其所依賴的庫文件中的各個(gè)符號(hào)的地址信息,以及我們所涉及到的函數(shù)所在目錄信息,這里不再展開講,有興趣的同學(xué)可以自己查看研究。

相關(guān)推薦