韦东山JZ2440学习日志(2)

存储管理器单元课堂笔记(未完待续,本章问题:对存储管理器理解有偏差,暂时未能理清整个思路)

2440包括CPU,存储管理器,外部有SDRAM,网卡等等,例如,CPU想读0X300000,读四字节,

mov r1,#0x30000000

ldr r0,[r1]

根据配置信息决定怎么访问外部设备,想访问一个芯片,需要哪些事情?首先,必须要有地址线,数据线(8/16/32,即数据宽度),第三,时钟频率,另外还有芯片相关的特性(行地址(多少位),列地址(多少位),BANK),只有配置好了存储管理器,才知道怎么访问外部设备

SDRAM需要知道列地址,行地址,刷新周期,BANK,

首先配置存储管理器,然后进行使用,对应书籍开发手册第六章

13位行地址,9位列地址,刷新周期为64M/8192

2440对外可以接8个外设(诸如SDRAM,网卡,NOR),为啥是八个,因为有8 BANK,八条片选信号,SRAM非常快,但是很贵,SDRAM相对便宜,但跟复杂,分为bank,列行,还需要不断刷新,网卡,NOR与SRAM比较相似,

2440的启动方式:1,用NOR FLASH启动 2,NAND flash启动

NOR启动的时候0地址(BANK0)指向0地址,NAND启动,0地址指向片内SRAM,上电后会将前4K内容拷贝到片内内存里面,然后从0地址开始运行,

程序上电后,代码先是在NAND里,NAND前4K被拷贝到片内SDRAM,从0地址开始执行。关看门狗,初始化设置存储管理器,再将代码拷贝到SDRAM(非片内)里面去,继续执行

(补充4.28)总结:之前老是将存储管理器与前面的SDRAM,NAND划等号,导致概念混淆,其实二者并不相等,S3C2440是一个基于ARM的32位处理器,而其中1GB地址空间就是存储管理器,这个管理器分为8个模块,即8个BANK,每个部分再对应连接相应外设例如网卡,扩展串口等等,每个不同的外部设备又对应不同的起始地址,jz2440用了ban0到bank6

代码思路:使用汇编语言设置好存储控制器,让外接的SDRAM可用,之后将程序本身从steppingstone复制到SDRAM中,最后跳到SDRAM中执行,而steppingstone是一个4KB大小的内部RAM,上电后,NAND中的4KB数据会复制到steppingstone中,而这个实验的意义在于通过存储控制器调用外接的SDRAM,在外接SDRAM中执行之前的LED程序,通过程序执行速度证明了程序的确是在速度更慢的SDRAM中执行。同理,我们也可以通过控制存储控制器去调用其他外部设备比如网卡之类(未完待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值