打印

关于44BO的BIOS代码地址无关特性的疑问

[复制链接]
2481|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chetazo|  楼主 | 2007-4-12 19:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在研究44B0的BIOS,例程代码是优龙的开发板配套的FS44B0II_BIOS。在试验的过程中我发现有个很特殊的问题。
开发板自带的文档这样说:。。。BIOS的自身驻留地址位于NOR FLASH的0x1f0000处,系统参数保存在0x1ff000以上区域中。所以在烧写完BIOS,上电复位后先要执一定要执行backup命令把BIOS本身拷贝到NOR FLASH的高端1f0000去。。。。 Src 目录中的44binit.s 文件于原开发板所带的其它原码中的44binit.s 文件不同,不可被替换。工程中指定的ro-base 为0x0c7c000,不要改为0。。。。
    这就奇怪了,编译起始地址为0x0c7c000,这个地址在开发板中是SDRAM的范围内的,而实际使用时却是烧录到0和0x1f0000开始的FLASH空间内。按理说这样程序会跑飞的,但事实是程序并没有跑飞!!而且同样的BIOS程序可以在0和0X1F0000起始的地址空间内正常运行!!!
    我不明白其中的道理,在网上查资料发现如下说法:bootloader是基于相对地址的,也就是说与地址无关,而这也是对bootloader的一个基本要求。一般的bootloader都设计成地址无关的。

那我猜这个BISO也是与地址无关的了!这只是我的猜测,不一定正确,而且具体的实现机理也一无所知,那位大侠可以介绍一下?

相关帖子

沙发
computer00| | 2007-4-12 21:48 | 只看该作者
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

25

帖子

1

粉丝