打印

arm9 bios 启动问题

[复制链接]
4184|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wzzs|  楼主 | 2007-10-17 13:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dld2| | 2007-10-17 13:45 | 只看该作者

Re:

这4K程序要做的是对系统做基本初始化,然后搬移应用程序或bootloader到RAM运行。

应该说明具体是什么芯片。arm9是一类而不是一种处理器,不同厂家有不同的型号。

使用特权

评论回复
板凳
yatelanda| | 2007-10-17 14:45 | 只看该作者

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

被处理器在启动前自动复制到RAM里, 复制后RAM被映射到地址0

使用特权

评论回复
地板
wzzs|  楼主 | 2007-10-17 16:49 | 只看该作者

bios

bios 程序看了一下 找不到什么时候将操作系统镜像加载到sdram运行的

使用特权

评论回复
5
wishcom| | 2007-10-17 22:31 | 只看该作者

ARM9的启动步骤

下面讲的是大部分ARM9的启动方式,对于个别厂商的别出心裁,此处不予理会。

1.ARM9可以从两个地方开始运行
  高端:0xFFFF0000
  低端:0x00000000
  至于到底是从哪一个开始运行的,一般在芯片上有专门的管脚来供玩家配置。

2.Nor Boot方式
  一般情况下,如果使用NOR Flash,会将ARM配置为低端模式,会将NOR Flash挂在0x00000000的位置,而bootloader也会烧到0x00000000起始的区域。理所当然的,bootloader的中断向量表也就位于0x00000000-0x0000001C区域了。

3.NAND Boot方式
  如果需要从NAND Flash启动,则芯片一般都有一个动能:在启动后立刻自动将NAND Flash的第一个block中的数据搬移到芯片内部的SRAM(位于0xFFFF0000地址)运行。而且从NAND Flash启动的芯片是从高端0xFFFF0000开始运行的。
  可以想象:NAND Flash的第一个block中的数据当然就是bootloader.这个bootloader将在初始化的动作完成后把存储在NAND Flash的其他位置的主程序数据搬移到内存中(通常是SDRAM,通常位于0地址),然后再运行刚刚到SDRAM中的程序。

需要明确的几点:
1. NAND Flash的第一个block一定不是坏块,这是出厂时就已经检测的,他的作用类似于硬盘的0磁道,一旦真的坏了就表示彻底报废。
2. 支持NAND Boot方式的ARM9都有片内RAM,厂商把它叫做SRAM或internal RAM或者IMEM.

使用特权

评论回复
6
wzzs|  楼主 | 2007-10-18 15:18 | 只看该作者

感谢解答

我买了个2410的测试版 好像多厂家的bootloader都差不多的 我看源程序 一直找不到 把存储在NAND Flash的其他位置的主程序数据搬移到内存中的过程 sdram 是在第六个block 地址不是0x3000000吗

使用特权

评论回复
7
wishcom| | 2007-10-18 22:36 | 只看该作者

应该只是你没有找到而已

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

1

粉丝