QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1142|回复: 1

u-boot的两个问题请教。

[复制链接]
发表于 2009-1-14 09:10:08 | 显示全部楼层 |阅读模式
各位老大:
问题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堆栈是要满递减的啊。

请各位老大抽空 看看,多谢了。
 楼主| 发表于 2009-1-22 14:55:18 | 显示全部楼层
已搞明白.

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

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

第二个问题是我没看清楚的缘故.同志们见笑了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-22 15:20 , Processed in 0.037730 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表