不管S3C2440的启动设备是什么,它都是从0x0000 0000地址开始执行程序的,所不同的是地址的映射不一样。基于S3C2440的嵌入式系统上电之后,需要首选选择启动设备,2440的启动方式选择是通过模式引脚OM1和OM0来配置的,如图1 所示为2440的启动方式选择说明:

图1 S3C2440启动方式说明

由上图可知,S3C2440支持两种启动模式:NAND和非NAND(这里是Nor Flash),具体采用的方式取决于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 FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在S3C2440A的8个BANK中分配地址空间。如果S3C2440被配置成从Nand Flash启动,在S3C2440上电后,Nand Flash控制器的会自动的把Nand Flash上的前4K数据搬移到内部SRAM中,也就是所谓的”Steppingstone”, 同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。系统会从这个内部SRAM中启动,程序员需要完成的工作,就是把最核心的启动程序放在Nand Flash的前4K中,也就是说,你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到RAM (一般是SDRAM)中运行。而在Nand Flash方式启动的情况下,系统是”看不到”Nor Flash的,因为Nor Flash也是挂在nGCS0上的,而nGCS0的地址空间已经被占用了。

TQ2440使用的Nor Flash是AMD公司的AM29LV160DB,它是16bit数据位宽的Nor Flash。因此,当选择从NOR FLASH启动时,OM1和OM0应该分别是低电平和高电平。此时,NOR FLASH被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,而片内SRAM的起始地址还是0x40000000)。 然后2440从0x00000000开始运行(也就是在Nor Flash中运行)。

1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里.

2:开发板上一般都用SDRAM做内存flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线

3:norflash不用来运行代码,只用来存储代码,NORflash,SDRAM可以直接运行代码)

最新文章

  1. Docker - 入门
  2. ThinkPhp 验证码不显示图片
  3. build a git repo and clone
  4. meteor 实现 微信分享
  5. 自己编写基于MVC的轻量级PHP框架
  6. WP开发笔记——去除 HTML 标签
  7. 通过ASP禁止指定IP和只允许指定IP访问网站的代码
  8. 【转】正确使用Block避免Cycle Retain和Crash
  9. J2SE知识点摘记(二十四)
  10. sublime比较好用的插件
  11. Shell脚本编程学习入门 01
  12. ajax提交表单、ajax实现文件上传
  13. mask_rcnn训练自己的数据集
  14. Mysql在sql中截取时间类型字段的年月日
  15. slice()和subString()
  16. Java JDK下载、安装与环境变量配置
  17. Anaconda安装python(idea兼容)
  18. Codeforces 1082C Multi-Subject Competition 前缀和 A
  19. Windows把内存变成快速虚拟硬盘
  20. Memcache未授权访问漏洞

热门文章

  1. 查找至少连续出现三次的所有数字/连续3天的日期【LeetCode】
  2. 使用 10046 查看执行计划并读懂 trace 文件
  3. python全栈开发从入门到放弃之字典的应用
  4. java zookeeper权限控制ACL(digest,IP)
  5. Linux命令(6/28)——declare/typeset命令
  6. CF335B
  7. 重置root密码后仍然不能登陆
  8. Kali更新源,亲测目前可用的源
  9. 查询当天数据(mysql)
  10. geoserver源码学习与扩展——CSV转shapefile文件