嵌入式linux开发 (二十三) 内存管理(5) s3c2440内存管理

之前想着s3c2440内存管理应该和imx6ull 是一样的,目前看起来是不一样
  • JZ2440 S3C2440 ARM920T ARMv5t
	-内置
		Steppingstone (4K-Byte SRAM)
		无rom
	-外扩
		EM63A165TS-6G:32MB/,SDRAM,共两片
		MX29LV160DBTI:2MB,并口 NOR FLASH
		K9F2G08U0C: 256MB,NAND FLASH
硬件对内存的管理
  • soc
Supports various types of ROM for booting (NOR/NAND Flash, EEPROM, and others)

NAND Flash Boot Loader
· Supports booting from NAND flash memory.
· 4KB internal buffer for booting.
· Supports storage memory for NAND flash memory
after booting.
· Supports Advanced NAND flash

External memory controller (SDRAM Control and Chip Select logic)
  • sram
0x0000_0000 - 0x0000_1000 4KB
  • sdram
0x3000_0000 - 0x3800_0000  // 128MB // 一片DRAM芯片只有  (32MB) 0x3000 0000 0x3200 0000
0x3800_0000 - 0x4000_0000  // 128MB // 一片DRAM芯片只有  (32MB) 0x3800 0000 0x3A00 0000
  • boot配置及过程
    在这里插入图片描述
00 nand
01 nor 16bit
10 nor 32bit
11 test mode
----------------- 启动流程
1. reset
2.0x0000 0000 启动
	2.1 如果OM1 OM0 为00 ,则为nand启动.
		//此时硬件做了一个映射 ,将nand 上的 前4KB的数据 映射到 SRAM (0x0000_0000 - 0x0000_1000)
		//即执行的是nand中的前4KB字节代码(注意,是前4KB字节,如果nand中的代码超过4KB,则需要用软件处理)
	2.2 如果 为01或者10 ,则从nor 启动.
		//nor支持 xip ,则直接执行代码.
		//(nor上的代码都可以执行,最多支持128MB,0x0000_0000-0x0800_0000)
		//此时和sram没有一点关系.
软件对内存的管理
  • 硬件做了什么
执行了用户代码
不管是从nand还是nor,都有问题
nand的话,只能执行4KB,所以sram不是长久之地.
nor的话,在nor上运行,一般nor很贵,所以nor也不是长久之地.
所以一般处理是
	用 nand 作为最终的非易失性存储器
	用 sdram 作为最终的易失性存储器.
另外还需要做
	1. 关看门狗
	2. 为C代码执行建设环境
  • 软件还需要做什么
可见,三星官方(三星只提供了硬件,不提供软件)给做的起始很少.只做了执行了用户代码,其他完全没做
然后 开发者 需要做的是
	关看门狗
	为C代码执行建设环境
	用 nand 作为最终的非易失性存储器,用 sdram 作为最终的易失性存储器.
		// 初始化sdram和nand
		// 读取nand代码到sdram.
		// 执行sdram代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值