[初级教程]samsung s3c2416x 的启动方式
2016-09-11 16:31
477 查看
1.背景知识
s3c2416x这款芯片,官网宣称是对s3c2440的完美替代,对比了这两块芯片,发现s3c2416只能说在手持PDA等方面确实比2440强,其他的部分,感觉都差不多。好了,话不多少,直接进入正题,今天要说的是改芯片的所支持的启动方式。根据三星提供的s3c2416x的datasheet来看,确切说,提供了3版的datasheet,分别是2008年的3月,2008年的09月第二次修订版,2009年的04月第三次修订版,这三个版本中对s3c2416x的启动方式经历两次的修改,并最终提供了iROM的启动方式,那我们先来看看提供了哪几种启动方式先:
Norflash启动的方式
Nandflash启动的方式
iROM的方式启动,并从nand/sd/mmc/moviNand/iNand中加载启动代码,比如Bootloader等
上面的几种启动方式,Samsung经过几次对s3c2416x的datasheet修订之后,现今,Samsung主推的启动的方式即iROM的启动方式,为主导的启动方式,从nandflash启动,已经被移到了iROM的启动方式中,并支持了nand/iNand/moviNand/sd/mmc的多种启动方式。
2.说说iROM启动
iROM启动的方式,Samsung为了对自家芯片的启动方式做一个统一,在多年前,对自家产品的芯片的启动方式发起了一次标准化推广,即,推广IROM的启动。IROM启动的意思即是,Samsung自己生产的芯片,在芯片的内部固化了一些引导代码,这些引导代码会做一引导启动的操作,当然,只是简单的引导,这段代码的存在也就是我们熟知的BL0启动阶段。就s3c2416x这款芯片而言,以下几个步骤是需要在BL0启动阶段做的事:设置系统进入svc32模式
初始化系统时钟
屏蔽所有的中断
关闭MMU
根据GPC5/GPC6/GPC7引脚的值来确定从哪一个存储设备中加载启动代码到内部的Stepping stone中去运行
3.如何设置才能让芯片从IROM启动?
首先要设置OM[4:0]位,依据数据手册中的描述,进行如下设置:根据上图中所描述的,将OM[4:0]设置成0100x (x, 0:x-tal, 1:extclk),比如我使用的是外部晶振,那么最后一位设置成0,那么整个OM[4:0]就是01000, 如果我使用外部时钟,最后一位就设置成1,那整个OM[4:0]就变成了01001,这些位的设置依赖于你硬件的连线。
其次,在来设置GPC5/GPC6/GPC7位,用来选择我们IROM从哪个存储设备中加载引导代码,是Nand还是SD/MMC,还是MoviNand等
比如说我们用的外设的nandflash的页大小是2k,地址周期是5个地址周期(这个多少地址周期,在nandflash的datasheet中会给出的,看nand的datasheet就ok),那么根据上图的描述,GPC7:GPC5的值就设置成101
经过上述两步骤的设置,我们的芯片将会从以IROM的方式启动,并且,启动后会从Nandflash中加载启动代码到Stepping stone中运行,然后在Stepping stone中去加载剩下的代码到SDRAM中去运行。
相关文章推荐
- 【TQ335X技术教程】如何使用dtb方式启动内核
- [置顶] 【Android】android开发之splash闪屏页的四种实现方式,启动页的实现教程。
- WinPE系列教程——安装WinPE到移动硬盘隐藏分区菜鸟篇(USB-HDD启动方式)
- Android初级教程启动定时器详解
- 【初级教程】—Dubbo的配置及启动
- Android初级教程获取手机位置信息GPS与动态获取最佳方式
- Android初级教程 - Include(复用layout)的使用方式(一)
- 【TQ335X技术教程】如何使用dtb方式启动内核
- Android初级教程获取手机位置信息GPS与动态获取最佳方式
- Android初级教程:Android中解析方式之pull解析
- Android初级教程启动定时器详解
- 【Android】android开发之splash闪屏页的四种实现方式,启动页的实现教程。
- s3c2416启动方式
- Android初级教程启动定时器详解
- 初级教程之 七 Include(复用layout)的使用方式(二)
- Android初级教程:Android中解析方式之pull解析
- JSP入门初级教程之预定义变量的使用
- 网络游戏外挂编写初级教程
- Perl初级教程[第2天]
- JSP入门初级教程之JSP概述