boot学习笔记(1)

本文详细介绍了S3C2440处理器的地址空间分配,包括SDRAM、NOR/NAND Flash在地址空间中的映射。讨论了启动模式,特别是NAND和非NAND启动的区别,指出在NAND启动时,CPU从片内SRAM执行初始化代码,将NAND Flash中的数据复制到SDRAM;而在非NAND启动时,直接从NOR Flash执行。启动模式由OM0和OM1引脚电平决定,强调了NOR Flash适合存放程序,NAND Flash适合数据存储。
摘要由CSDN通过智能技术生成

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

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

3:nandflash不用来运行代码,只用来存储代码,NORflashSDRAM可以直接运行代码)

4:s3c2440总共有8个内存banks
6个内存bank可以当作ROM或者SRAM来使用
留下的2bank除了当作ROM 或者SRAM,还可以用SDRAM(各种内存的读写方式不一样)
7
bank的起始地址是固定的

还有一个灵活的bank的内存地址,并且bank大小也可以改变

5:s3c2440支持两种启动模式NAND和非NAND(这里是nor flash)。
具体采用的方式取决于OM0OM1两个引脚

OM[1:0所决定的启动方式

OM[10]=00时,处理器从NAND Flash启动

OM[10]=01时,处理器从16位宽度的ROM启动

OM[10]=10时,处理器从32位宽度的ROM启动。

OM[10]=11时,处理器从Test Mode启动。

 

 

当从NAND启动时

cpu会自动从NAND flash中读取前4KB的数据放置在片内SRAM里(s3c2440soc),同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。cpu是从0x00000000开始执行,也就是NAND flash里的前4KB内容。因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行

当从非NAND flash启动时

nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000. 然后cpu0x00000000开始执行(也就是在Norfalsh中执行)。

 

 

总结:

Arm的启动都是从0地址开始,所不同的是地址的映射不一样。在arm上电的时候,要想让arm知道以某种方式(地址映射方式)运行,不可能通过你写的某段程序控制,因为这时候你的程序还没启动,这时候arm会通过引脚的电平来判断。

1
当引脚OM0OM1有一个是高电平时,这时地址0会映射到外部nGCS0片选的空间,也就是Norflash,程序就会从Norflash中启动,arm直接取Norflash中的指令运行。

2
OM0OM1都为低电平,则0地址内部bootbuf(一段4kSRAM)开始。系统上电,arm会自动把NANDflash中的前4K内容考到bootbuf(也就是0地址),然后从0地址运行。

这时NANDFlash中的前4K就是启动代码(他的功能就是初始化硬件然后在把NANDFlash中的代码复制到RAM中,再把相应的指针指向该运行的地方)

   
为什么会有这两种启动方式,关键还是两种flash的不同特点造成,NOR FLASH容量小,速度快,稳定性好,输入地址,然后给出读写信号即可从数据口得到数据,适合做程序存储器。NAND FLASH 总容量大,但是读写都需要复杂的时序,更适合做数据存储器。这种不同就造成了NORflash可以直接连接到arm的总线并且可以运行程序,而NANDflash必须搬移到内存(SDRAM)中运行。

  
在实际的开发中,一般可以把bootloader烧入到Norflash,程序运行可以通过串口交互,进行一定的操作,比如下载,调试。这样就很可以很方便的调试你的一些代码。Norflash中的Bootloader还可以烧录内核到Norflash等等功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值