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