wgejygah 发表于 2009-1-14 09:10:08

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堆栈是要满递减的啊。

请各位老大抽空 看看,多谢了。

wgejygah 发表于 2009-1-22 14:55:18

已搞明白.

第一个问题,主要是看懂 链接选项 Ttext的作用..

并且要知道b , bl是和代码下载的位置无关的,而ldr伪指令是与代码下载的位置有关的.

第二个问题是我没看清楚的缘故.同志们见笑了.
页: [1]
查看完整版本: u-boot的两个问题请教。