嵌入式爱好者

查看: 14083|回复: 17

s3c2440a启动过程详解

  [复制链接]

29

主题

9048

帖子

5593

积分

扫一扫,手机访问本帖
发表于 2010-5-31 09:21:03 | 显示全部楼层 |阅读模式
1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里。

    2:开发板上一般都用SDRAM做内存flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线 (飞凌2440开发板使用大页nandflash,每页2Kb)。飞凌的全线2440开发板采用的是2片SDRAM(单片为32M,最大可扩展到单片为64M)。

    3:nandflash不能用来运行代码,只用来存储代码,NORflash,SDRAM可以直接运行代码。

    4:s3c2440总共有8个内存banks,6个内存bank可以当作ROM或者SRAM来使用,留下的2个bank除了当作ROM 或者SRAM,还可以用SDRAM(各种内存的读写方式不一样),7个bank的起始地址是固定的。还有一个灵活的bank的内存地址,并且bank大小也可以改变。

    5:s3c2440支持两种启动模式:NAND和非NAND(这里是nor flash)。
    具体采用的方式取决于s3c2440的OM0、OM1两个引脚
    OM[1:0]所决定的启动方式:
    OM[1:0]=00时,处理器从NAND Flash启动;
    OM[1:0]=01时,处理器从16位宽度的ROM启动;
    OM[1:0]=10时,处理器从32位宽度的ROM启动;
    OM[1:0]=11时,处理器从Test Mode启动。

    当从NAND启动时,cpu会自动从NAND flash中读取前4KB的数据放置在片内SRAM里(s3c2440是soc),同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。cpu是从0x00000000开始执行,也就是NAND flash里的前4KB内容。因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行。
    当从非NAND flash启动时,nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000). 然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。


总结:
    Arm的启动都是从0地址开始,所不同的是地址的映射不一样。在arm上电的时候,要想让arm知道以某种方式(地址映射方式)运行,不可能通过你写的某段程序控制,因为这时候你的程序还没启动,这时候arm会通过引脚的电平来判断。

    1.当引脚OM0跟OM1有一个是高电平时,这时地址0会映射到外部nGCS0片选的空间,也就是Norflash,程序就会从Norflash中启动,arm直接取Norflash中的指令运行。

    2.当OM0跟OM1都为低电平,则0地址内部bootbuf(一段4k的SRAM)开始。系统上电,arm会自动把NANDflash中的前4K内容考到bootbuf(也就是0地址),然后从0地址运行。这时NANDFlash中的前4K就是启动代码(他的功能就是初始化硬件然后在把NANDFlash中的代码复制到RAM中,再把相应的指针指向该运行的地方) 。

    为什么会有这两种启动方式,关键还是两种flash的不同特点造成,NOR FLASH容量小,速度快,稳定性好,输入地址,然后给出读写信号即可从数据口得到数据,适合做程序存储器。NAND FLASH 总容量大,但是读写都需要复杂的时序,更适合做数据存储器。这种不同就造成了NORflash可以直接连接到arm的总线并且可以运行程序,而NANDflash必须搬移到内存(SDRAM)中运行。
回复

使用道具 举报

comp2200 该用户已被删除
发表于 2010-6-10 20:27:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

atomicfox 该用户已被删除
发表于 2010-7-27 18:16:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

lby147612 该用户已被删除
发表于 2010-8-23 12:19:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

jitfcg 该用户已被删除
发表于 2010-9-23 20:07:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

3

帖子

2

积分

发表于 2010-9-24 16:48:15 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

20

积分

发表于 2010-10-7 09:44:05 | 显示全部楼层
讲得真好,Thank you very much!
回复 支持 反对

使用道具 举报

初学 该用户已被删除
发表于 2010-10-19 20:05:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

starwish 该用户已被删除
发表于 2010-12-26 20:19:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

rui.f 该用户已被删除
发表于 2011-2-8 15:03:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

zsyhqm 该用户已被删除
发表于 2011-2-18 00:39:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

17

主题

50

帖子

83

积分

RK3399通行证

发表于 2011-4-12 22:39:59 | 显示全部楼层
非常感谢,找了好几篇文章了,问题终于得到解决了
回复 支持 反对

使用道具 举报

bodlhx 该用户已被删除
发表于 2011-7-13 00:39:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

fishonesea 该用户已被删除
发表于 2011-8-8 18:00:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

BBNets 该用户已被删除
发表于 2011-11-5 10:13:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

lanyang 该用户已被删除
发表于 2012-3-13 18:45:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-1-10 11:22

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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