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

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

正为此事苦恼.......中........

<a href="https://bbs.21ic.com/club/bbs/list.asp?Page=1&boardid=35&t=2496814&p=2&tp=%B3%B9%B5%D7%B5%B9%CB%FA%C1%CB%7E%7E%7Ekeil%B5%C4CARM%B1%E0%D2%EB%C6%F7%BA%C3%CF%F3%B2%BB%C4%DC%C9%E8%D6%C3%C9%FA%B3%C9%CF%E0%B6%D4%CC%F8%D7%AA%B4%FA%C2%EB%A3%BF" target=_blank>https://bbs.21ic.com/club/bbs/list.asp?Page=1&boardid=35&t=2496814&p=2&tp=%B3%B9%B5%D7%B5%B9%CB%FA%C1%CB%7E%7E%7Ekeil%B5%C4CARM%B1%E0%D2%EB%C6%F7%BA%C3%CF%F3%B2%BB%C4%DC%C9%E8%D6%C3%C9%FA%B3%C9%CF%E0%B6%D4%CC%F8%D7%AA%B4%FA%C2%EB%A3%BF</a>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

25

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部