Arm可以引出27根地址线,只能实现128MB的寻址,那么要如何实现1GB的寻址呢?答案就是使用nGCS片选线,nGCSx为低电平为选中相应的外接设备。一共八根片选线,也就是bank1,bank2…以此来实现1GB的寻址。

2440为32位,理论上的寻址范围为4GB,除了这1GB,其他的没有使用。

2440的寄存器范围都处于0x48000000-0x5fffffff之间。

下图是分别从nor flash启动和nand flash启动时地址的映射。

从nor flash启动的时候,程序写入地址零处,从地址零处启动。

从nand flash启动的时候,硬件会将nand flash头4K的数据拷贝到“stepping stone”处。然后从地址0处开始执行。Nand flash是不参与寻址的。

在sdram中执行程序:可以在使用头4K的数据把整体程序拷贝到sdram中,然后再跳转到sdram中。当然这需要在链接器脚本中设置运行地址为0x30000000,然后再使用绝对地址跳转,就可跳转到内存中了。

但是,我们有时候会发现,链接器脚本中设置的地址是多大不是很重要,不论是0x00000000还是0x30000000都能正常执行。那是因为有些程序的执行过程和地址没多大关系,比如他们没有绝对地址跳转等等。正常来说,如果我们想让他们在“stepping stone”中执行,链接器脚本中的地址应设置为0x00000000,如果我们想让他们在内存中执行,应该把链接器脚本地址设置为0x30000000,然后利用“stepping stone”跳转。

最新文章

  1. 解决svn问题:Wrong committed revision number: -1
  2. linux系统的初化始配置(包括网络,主机名,关闭firewalld与selinux)
  3. [mysql]throw exception
  4. 如何申请Autodesk ReCap 360 photo的云币(Cloud Credit)
  5. [Linux]安装phpredis扩展
  6. 四、卫星定位《苹果iOS实例编程入门教程》
  7. Aviary 滤镜 教程 照片编辑器
  8. Axure RP Pro 6.5修改站点地图,只显示需要的节点
  9. java常用重构优化总结--自己亲身体验
  10. SRM 586 DIV1
  11. 解决R语言临时文件目录的问题(tempdir、tempfile)
  12. vue-chat项目之重构与体验优化
  13. PostCSS 基本用法
  14. 【Linux基础】iconv命令详解(编码转换)
  15. Linux常用命令练习
  16. 解决ubuntu下,QQ重启后出现个人文件夹已被占用的问题
  17. 17秋 软件工程 团队第五次作业 Alpha
  18. 解决网页出现 net::ERR_ABORTED 404 (Not Found)问题
  19. 理解闭包的微观世界和JS垃圾回收机制
  20. Linux系统Domino704升级为901 64位的步骤及注意事项

热门文章

  1. NGINX Cache Management (.imh nginx)
  2. centos 添加/删除用户和用户组
  3. C# Newtonsoft.Json解析json字符串处理 - JToken 用法
  4. 取未清PO逻辑
  5. git删除远程.idea目录
  6. python测试工具nosetests
  7. consul ACL 配置范例
  8. 【视频开发】【Live555】摄像头采集,264编码,live555直播(0)
  9. Oracle Spatial分区应用研究之三:县市省不同分区粒度的效率比较
  10. linux_shell程序快速入门