QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2164|回复: 1

[求助]u-boot for 44b0疑问

[复制链接]
发表于 2006-9-29 14:42:08 | 显示全部楼层 |阅读模式
lds中这么写的:
[code:1]
. = 0x00000000;

       
. = ALIGN(4);
       
.text      :

{
          
        cpu/s3c44b0/start.o        (.text)
          
        *(.text)
       
}
……
[/code:1]


start.S中有这么一段:
[code:1]
adr        r0, _start                /* r0 <- current position of code   */
       
ldr        r1, _TEXT_BASE                /* test if we run from flash or RAM */
        cmp     r0, r1                  /* don't reloc during debug         */
       
beq     stack_setup
[/code:1]
注释中说根据_start与_TEXT_BASE相等与否来判断是从flash还是ram启动。TEXT_BASE默认设为0x0c100000。看lds中写的难道_start不是0吗?难道还会跟着变动?
我理解是lds中的都是output section,所以描述的是运行时的分布情况。
如果是这样,那岂不是所有代码数据都在flash中?因为从0开始依次放置。如果要在ram中运行,至少有一段要写成类似的:
[code:1]
.=RAM_BASE
.data:
{
}
……
[/code:1]
莫非lds描述的是加载时的分布情况?

可能有点乱,我整理下我的问题:
1. 为什么map中的_start是从TEXT_BASE开始的而不是从0开始?
2. u-boot.lds中描述的是运行时还是加载时的分布情况?
3. start.S中有relocate代码,也就是说flash和ram中有两份代码。运行的时候到底跑的是哪个?按照lds的写法,难道在flash中跑不成?

还有一个土问:u-boot.bin怎么弄到裸板里去?
以上问题,恳请大虾不吝赐教。
发表于 2006-9-29 23:20:01 | 显示全部楼层
u-boot没仔细研究过
裸板以前用过flashpgm,可以烧写到flash
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-4-20 16:01 , Processed in 0.084300 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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