arm9 bios 启动问题

[复制链接]
5158|6
 楼主| wzzs 发表于 2007-10-17 13:35 | 显示全部楼层 |阅读模式
我初次使用arm9芯片&nbsp;资料上都说nand&nbsp;flash启动模式&nbsp;有4k的程序是自动加载运行的&nbsp;这4k程序作的是什么工作&nbsp;是不是&nbsp;main&nbsp;之前的代码&nbsp;菜鸟问题&nbsp;大大们有空和我聊一下<br />
dld2 发表于 2007-10-17 13:45 | 显示全部楼层

Re:

这4K程序要做的是对系统做基本初始化,然后搬移应用程序或bootloader到RAM运行。<br /><br />应该说明具体是什么芯片。arm9是一类而不是一种处理器,不同厂家有不同的型号。
yatelanda 发表于 2007-10-17 14:45 | 显示全部楼层

这4K程序就是存储在NAND flash最前段的4K程序

被处理器在启动前自动复制到RAM里,&nbsp;复制后RAM被映射到地址0
 楼主| wzzs 发表于 2007-10-17 16:49 | 显示全部楼层

bios

bios&nbsp;程序看了一下&nbsp;找不到什么时候将操作系统镜像加载到sdram运行的<br />
wishcom 发表于 2007-10-17 22:31 | 显示全部楼层

ARM9的启动步骤

下面讲的是大部分ARM9的启动方式,对于个别厂商的别出心裁,此处不予理会。<br /><br />1.ARM9可以从两个地方开始运行<br />&nbsp;&nbsp;高端:0xFFFF0000<br />&nbsp;&nbsp;低端:0x00000000<br />&nbsp;&nbsp;至于到底是从哪一个开始运行的,一般在芯片上有专门的管脚来供玩家配置。<br /><br />2.Nor&nbsp;Boot方式<br />&nbsp;&nbsp;一般情况下,如果使用NOR&nbsp;Flash,会将ARM配置为低端模式,会将NOR&nbsp;Flash挂在0x00000000的位置,而bootloader也会烧到0x00000000起始的区域。理所当然的,bootloader的中断向量表也就位于0x00000000-0x0000001C区域了。<br /><br />3.NAND&nbsp;Boot方式<br />&nbsp;&nbsp;如果需要从NAND&nbsp;Flash启动,则芯片一般都有一个动能:在启动后立刻自动将NAND&nbsp;Flash的第一个block中的数据搬移到芯片内部的SRAM(位于0xFFFF0000地址)运行。而且从NAND&nbsp;Flash启动的芯片是从高端0xFFFF0000开始运行的。<br />&nbsp;&nbsp;可以想象:NAND&nbsp;Flash的第一个block中的数据当然就是bootloader.这个bootloader将在初始化的动作完成后把存储在NAND&nbsp;Flash的其他位置的主程序数据搬移到内存中(通常是SDRAM,通常位于0地址),然后再运行刚刚到SDRAM中的程序。<br /><br />需要明确的几点:<br />1.&nbsp;NAND&nbsp;Flash的第一个block一定不是坏块,这是出厂时就已经检测的,他的作用类似于硬盘的0磁道,一旦真的坏了就表示彻底报废。<br />2.&nbsp;支持NAND&nbsp;Boot方式的ARM9都有片内RAM,厂商把它叫做SRAM或internal&nbsp;RAM或者IMEM.
 楼主| wzzs 发表于 2007-10-18 15:18 | 显示全部楼层

感谢解答

我买了个2410的测试版&nbsp;好像多厂家的bootloader都差不多的&nbsp;我看源程序&nbsp;一直找不到&nbsp;把存储在NAND&nbsp;Flash的其他位置的主程序数据搬移到内存中的过程&nbsp;sdram&nbsp;是在第六个block&nbsp;地址不是0x3000000吗
wishcom 发表于 2007-10-18 22:36 | 显示全部楼层

应该只是你没有找到而已

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

本版积分规则

3

主题

7

帖子

1

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