s3c2416 启动模式理解

 

s3c2416的启动模式

/*

@编写人:mingliang.lu

@日  期:2014-10-22

@备  注:个人读书笔记,仅供参考

@E-Mail : mingllu@163.com

*/

三星公司推出了大约3版本的s3c2416的数据手册,分别是4月份,6月份,以及10月份的,各版本的数据手册中启动方式也经历了一些变化:

 

nand启动?

iROM启动?

moviNand启动?

4月份.2008年

支持

支持

支持

6月份.2008年

支持

支持

支持

10月份.2008年

已删除

支持

支持

从上述表格,不难看出,s3c2416启动方式从最初的

(Nand Boot Mode)/(iROM+外部存储设备Boot Mode)/(MoviNand Boot Mode)

到最新的

(iROM + 外部存储设备Boot Mode)/(MoviNand Boot Mode)

删除掉了nandBoot Mode这种启动模式,转而主推iROM+外部存储设备(Nandflash/MMC/SD卡等)启动方式。这样可以统一iROM MMC/SD/NAND吧!也就不用关心太多的启动方式。

 

关于3种启动方式,简单的介绍:

Nand启动(较新的数据手册中已经不再推荐使用),是指从标准的nandflash硬件接口设计电路,普通的nandflash启动的方式。其启动的步骤较为简单,系统上电后,nandflash控制器会将nandflash的偏移地址0x0处拷贝8k左右的代码到内部的ram 0x0地址处运行,用户代码从0x0地址处开始运行。

 

iROM启动,是指使用s3c2416内部自带的rom(大约32kb),将存放在外部存储器(如,nandflash,mmc,sd卡,cf卡等)中的程序加载到内存(sdram)中去运行的启动方式。iROM的启动一般认为分四步走,依次是:


    通过设置[OM4, OM3, OM2,OM1, OM0] = [0,1,0,0,x],上电复位即可从IROM启动,IROM启动即先执行芯片固化代码(在0x0位置处),固化代码先进行初始化芯片,如设置系统时钟,初始化堆栈等,随后会再根据相关引脚的配置([GPC7:GPC5]),确定启动设备是SD/MMC还是NAND,对于IROMNAND启动,固化代码从[GPC7:GPC5]的引脚配置状态得出NANDFLASH的信息,如页大小,地址周期多少。之后固化代码再从NANDFLASH的0x0地址偏移出读出8k的代码到内部RAM地址0x40000000处,这块8k的IRAM就被叫做Steppingstone。因为这8k的IRAM代码往往需要进一步引导用户的其它代码到RAM运行。对于IROM SD/MMC启动,固化代码会直接从SD/MMC卡的一个特殊位置读出8k的代码到0x40000000处的Steppingstone。复制完代码到Steppingstone后,固化代码跳转到0x40000000处开始执行用户的代码。

moviNand启动,是指采用了norflash接口的特殊nandflash(samsung公司称之为moviNand,而sandisk公司也称之为iNAND),一般在手机娱乐设备使用,而一般的开发已经遗弃了Norflash一类设备。这一类的设备启动较为简单,不做分析这里。


 

Samsung 2416启动之-----iROM模式下的nandflash启动

 

s3c2416官方的数据手册中提出了两种启动的模式:

 

一种是利用外部的rom方式启动,启动设备如 rom(norFLash)/oneNand

一种是利用内部自带的iROM,并选择MoviNand/iNand/MMC card/nandFlash

等存储设备作为iROM启动方式下的启动设备。

 

注意:

OneNAND跟ROM在硬件设计上采用的同样的norflash类型的接口,即,地址和数据总线分开的方式,OneNand比ROM类型的设备具备了更大的容量,说的直白一些,OneNAND就是增强型norflash。

 

 

图1-1:s3c2416启动模式OM[4:0]设置

OM[4]

OM[3]

OM[2]

OM[1]

OM[0]

Operation

Mode

0

1

0

0

0

iROM

0

1

0

0

1

iROM

 

 

 

 

 

 

1

0

0

0

0

Reserverd

1

0

0

0

1

JTAG

1

0

0

1(16bit)

0

oneNand

1

0

0

1(16bit)

1

oneNand

1

0

1

0(8bit)

0

 

ROM/

OneNand

1

0

1

0(8bit)

1

1

0

1

1(16bit)

0

1

0

1

1(16bit)

1

  注:OM[0] : 0代表外部晶振,1代表外部时钟 OM[4:0]:01000 =0x08

 

 

配置OM[4:0]=0x08仅仅只是将启动的模式设置成了iROM模式,还需要配置GPC5/6/7

为IROM模式选择响应的存储设备,关于GPC5/6/7的配置值,见下图标所示:

 

 

 

 

 

 

 

 

 

 

 

                               

 

 

举例:假如我们准备采用nandflash作为启动设备,nand的页大小为2048字节,参照nandflash芯片的收据手册可知道地址周期为5,我们可以配置GPC5/6/7应该配置成GPC[7:5]=101

 

综合上面所说的,我们要配置我们的开发板的启动模式为iROM模式,并且选择nandflash作为启动设备,那么我们正确的配置OM[4:0]以及GPC5/6/7的值应如下:

OM[4]

OM[3]

OM[2]

OM[1]

OM[0]

GPC7

GPC6

GPC5

0

1

0

0

0

1

0

1

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值