对于编译所生成的汇编的查看方式是
用交叉编译器的dump工具去将汇编代码都导出来:arm-linux-objdump –d cpu/arm920t/start.o > uboot_start.o_dump_result.txt
这样就把start.o中的汇编代码导出到uboot_start.o_dump_result.txt中了。
然后查看uboot_start.o_dump_result.txt,即可找到对应的汇编代码。
举例来说,对于start.S中的汇编代码:/* Set up the stack */
stack_setup:
ldrr0, _TEXT_BASE/* upper 128 KiB: relocated uboot */
subr0, r0, #CFG_MALLOC_LEN/* malloc area */
subr0, r0, #CFG_GBL_DATA_SIZE /* bdinfo */
#ifdef CONFIG_USE_IRQ
subr0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
#endif
subsp, r0, #12/* leave 3 words for abort-stack */
bl clock_init
去uboot_start.o_dump_result.txt中,搜索stack_setup,即可找到对应部分的汇编代码:00000090 :
90:e51f0058 ldrr0, [pc, #-88]; 40 <_text_base>
94:e2400701 subr0, r0, #262144; 0x40000
98:e2400080 subr0, r0, #128; 0x80
9c:e240d00c subsp, r0, #12; 0xc
a0:ebfffffe bl0