u-boot的两个问题请教。
各位老大:问题1:
U-boot1.1.6里lowlevel_init.S中
ldr r0, =SMRDATA
ldr r1, _TEXT_BASE
sub r0, r0, r1
ldr r1, =BWSCON /* Bus Width Status Controller */
add r2, r0, #13*4
这句sub r0, r0, r1不知为何?
问题2:
start.S中建立堆栈的代码:
stack_setup:
ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */
sub r0, r0, #CFG_MALLOC_LEN /* malloc area */
sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo */
#ifdef CONFIG_USE_IRQ
sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
#endif
sub sp, r0, #12 /* leave 3 words for abort-stack */
建立的栈是递增的。而ATPCS里说C堆栈是要满递减的啊。
请各位老大抽空 看看,多谢了。 已搞明白.
第一个问题,主要是看懂 链接选项 Ttext的作用..
并且要知道b , bl是和代码下载的位置无关的,而ldr伪指令是与代码下载的位置有关的.
第二个问题是我没看清楚的缘故.同志们见笑了.
页:
[1]