S3C2440上电启动流程概述

发布者:SHow111time最新更新时间:2022-04-25 来源: eefocus关键字:S3C2440  流程 手机看文章 扫描二维码
随时随地手机看文章

一、S3C2440的启动方式

1、启动介质

S3C2440在上电时会通过判断OM0和OM1的信号组合来决定指令开始执行的位置(即引导ROM的位置),同时这两个信号也用于决定BANK0(nGCS0)的总线宽度。 OM0和OM1的信号值可以由对应的两个外部引脚(引脚名称:T15和R13)的电平状态决定。

不同的启动模式

 

从上图可以看出,当MO[1:0]=00时,S3C2440将会从挂载于Nand Flash控制器之上的外置Nand Flash启动;当 MO[1:0]=01或10时,S3C2440会从挂载于内存控制器Bank0上的外部SROM上启动(指SRAM或ROM,一般Bank0上挂载的为Nor Flash,属于ROM的一种)。


2、不同启动方式的地址分布情况

在S3C2440的数据手册中,对于启动后的地址分布情况有对应的图示说明,如下:

S3C2440复位后的内存地址分布

 

从上图可以看出,不同的启动模式会影响地址位置最低的地址区域 (0x0000_0000 ~ 0x0800_0000)的映射方式。


当OM[1:0]=01或10时,内存控制器Bank0 (对应片选信号nGCS0) 上挂载的外部存储介质被映射到 (0x0000_0000 ~ 0x0800_0000),代码从0地址开始运行,即代码运行于外部存储介质之上。


当)M[1:0]=00时,内部的4K大小的SRAM被映射到 (0x0000_0000 ~ 0x0800_0000),外部Nand Flash中的前4K内容会被复制到内部SRAM,然后代码从0地址开始运行,即代码运行于内部SRAM上。此时挂载于内存控制器Bank0 (对应片选信号nGCS0) 上的存储介质不可见,因为它的地址被片内SRAM占用了。


二、S3C2440的启动流程

1、从Nor Flash启动

通过将OM[1:0]设置为01或者10(分别对应外部存储介质数据总线宽度为16位与32位的情况),即可使得S3C2440在上电时,从挂载在内存控制器Bank0上的Nor Flash启动。


由于Nor Flash具有可直接读取,但是不可直接写入的特性,故在正式运行程序之前,需要通过先运行一段引导程序来进行程序重定位操作,将程序运行过程中可能会被改动的.rodata、.data、.bss、.common段重新定位到可直接读写的SDRAM或SRAM中。对于程序中的.text段,由于在运行过程中只需要读取,所以可以保留在Nor Flash中运行,但是考虑到Nor Flash读取速度较慢,为了提高运行效率,一般也会将.text段一同重定位到SDRAM或SRAM中。

Nor Flash启动流程

 

2、从Nand Flash启动

由于Nand Flash不支持直接读写,故代码无法直接在Nand Flash上运行(即CPU无法直接从Nand Flash读取指令),为了支持从Nand Flash启动,S3C2440使用了一个称为“steppingstone”机制,下面是S3C2440数据手册对此机制的说明。


S3C2440A boot code can be executed on an external NAND flash memory. In order to support NAND flash boot loader, the S3C2440A is eqiupped with an internal SRAM buffer called “steppingstone”. When booting, the first 4kBytes of the NAND flash memory will be loaded into Steppingstone will be executed.


Generally, the boot code will copy NAND flash content to SDRAM. Using hardware ECC, the NAND flash data validity will be checked. Upon the completion of the copy, the main program will be executed on the SDRAM.


《S3C2440A 32-BIT CMOS MICROCONTROLLER USER’S MANUAL》

NAND Flash Controller Boot Loader Block Diagram

 

值得注意的是,在从Nand Flash启动之前,为了能够正确的从Nand Flash读取数据,S3C2440需要在上电时预先知道外部挂载的Nand Flash的一些参数信息,这些参数信息通过对应引脚电平产生的信号来确定,这些信号如下所示:

配置外部引脚来决定Nand Flash启动参数

总体启动流程入下图所示:

关键字:S3C2440  流程 引用地址:S3C2440上电启动流程概述

上一篇:S3C2440A时钟结构分析(ARM9架构)
下一篇:S3C2440系统时钟讲解

推荐阅读最新更新时间:2024-11-09 23:17

S3C2440之SDRAM
前言 本文记录的是内存控制器如何访问SDRAM 测试程序:如果能成功访问SDRAM,就把LED点亮 一、思维导图 二、代码 关键代码 init.c(示例): #include S3C2440.h void sdram_init(void) { BWSCON = 0x22000000; BANKCON6 = 0x18001; BANKCON7 = 0x18001; REFRESH = 0x8404F5; BANKSIZE = 0xb1; MRSRB6 = 0x20; MRSRB7 = 0x20; } int sdram_test(void) { volat
[单片机]
<font color='red'>S3C2440</font>之SDRAM
ARM用户层发生异常后软硬件协同处理流程
我这里是要简单说一下,在ARM平台的用户层发生异常后的软硬件协同处理流程,是个大致的概况,对宏观了解后,具体细节内容网上有很多,可以自行查询。 用户层程序正在执行时,遇到未定义的指令(ARM不是别的指令)或者SWI软件中断指令(产生系统调用),就会产生异常,这里以未定义指令异常为例进行说明: 一旦出现未定义指令异常,CPU会自动做如下操作: (1)未定义模式(ARM七种运行模式的一种)下对应的lr(即R14,不同的运行模式有不同的lr寄存器)寄存器保存当前发生异常的指令下一条指令的地址。例如,在用户态有A B C 三条指令顺序执行,指令A发生未定义指令异常,则指令B的地址就会由CPU保存到未定义模式下的lr寄存器中,用
[单片机]
机器人曲线焊缝的操作流程
在大型铝合金航天器结构中,存在大量复杂形式的焊缝,如球形、圆柱形、圆台壳体与圆形、异形法兰形成的相贯线等。载人飞船、目标飞行器、军用卫星、月球探测飞行器等舱体结构都不同程度地涉及到这类形式焊缝的问题。目前大多靠手工钨极来完成这类曲线焊缝的焊接。存在如下问题: ①反复补焊影响产品研制进度。手工焊容易出现缺陷,排除缺陷和补焊的效率往往牵制结构的研制进度; ②热输入量大,焊接残余水平高,容易导致产品尺寸超差; ③新一代长期在轨航天器密封舱体要求在轨寿命十五年以上。手工钨极氩弧焊工艺焊接热输入量大,焊缝显微组织粗大,焊缝残余应力较大,应力腐蚀倾向严重,该工艺已不适应航天器结构长寿命、高可靠的制造需求。 跟踪具有信号处理
[机器人]
开发环境MAPLAB下使用仿真器ICD2程序下载流程
一、连接示意图 二、下载步骤 1、目标板电源断开 2、将仿真器下载端口与电路板JTAG端口有效连接 3、启动MPLAB软件 4、点击MAPLAB软件上方Programmer- Select Programmer- 2 MPLAB-ICD 2 5、显示提示窗口内容: Connecting to MPLAB ICD 2 ...Connected, 表示仿真器ICD2-USB连接成功 6、点击File- Import,打开要下载的hex文件 7、点击Programer- Program,下载hex文件 8、点击Programmer- Select Programmer- None,断开连接,
[单片机]
开发环境MAPLAB下使用仿真器ICD2程序下载<font color='red'>流程</font>
S3C2440启动方式研究
不管S3C2440的启动设备是什么,它都是从0x0000 0000地址开始执行程序的,所不同的是地址的映射不一样。基于S3C2440的嵌入式系统上电之后,需要首选选择启动设备,2440的启动方式选择是通过模式引脚OM1和OM0来配置的,如图1 所示为2440的启动方式选择说明: 图1 S3C2440启动方式说明 由上图可知,S3C2440支持两种启动模式:NAND和非NAND(这里是Nor Flash),具体采用的方式取决于OM0、OM1两个引脚的状态。 OM =00时,处理器从NAND Flash启动 OM =01时,处理器从16位宽度的ROM启动 OM =10时,处理器从32位宽度的ROM启动。 OM =11时,
[单片机]
<font color='red'>S3C2440</font><font color='red'>启动</font>方式研究
关于S3C2440的串口号
串口通讯程序 打开时有问题。 查看/etc/mdev.conf 文件,及相关资料《Mini2440 Linux移植开发实战指南.pdf》的文件系统启动过程分析,发现原来串口文件名发生了变化。 《Mini2440 Linux移植开发实战指南.pdf》下载在: http://www.linuxidc.com/Linux/2011-06/37903.htm 参考资料: “。。。。可 以 看 到 , 原 本 串 口 驱 动 注 册 的 设 备 名 是 s3c2410_serial0, s3c2410_serial1 和 s3c2410_serial2,而 mdev 则会在/dev 目录下对应生成 ttySAC0, ttySAC1 和 t
[单片机]
s3c2440裸机-I2c编程-4-i2c中断服务程序
1.顺寻访问(Page Read) 下图的表格,来说明NAND FLASH内部结构,前面2K(0~2047)表示页数据,后边64字节(2048~2111)表示oob。 CPU想读取,第2048个数据,它是哪以一个? 是Page1的第0个字节。CPU使用某个地址访问数据的时候,是在页数据空间来寻址的。 下图为读NAND FLASH的read时序操作: 1.首先需要锁存00命令,nCE、CLE、nWE有效,0x00命令被锁存; 2.此时CLE无效,ALE开始有效,地址被锁存(从NAND FLASH的地址周期中可以看出来,先发出2个周期的col列地址,再发出3个周期的Row行地址); 3.锁存0x30命令; 4.然后会有
[单片机]

推荐帖子

演示msp430播放一种叫ByteBeat类型的电子音乐
演示的是本论坛这个帖子:播放音乐仅用一个喇叭一个低通30行代码,请先看一下这个帖子。我对什么Bytebeat也不了解,只看到网上这一段:Bytebeatisanewgenreofelectronicmusic,establishedinSeptember,2011.Accordingtocanonical.org,Bytebeatisgenerallya“pieceofrhythmicandsomewhatmelodicmusic
wangfuchong 微控制器 MCU
在IAR环境下STM32工程输出hex文件简洁方法
1.BOOT_RAM2.BOOT_FLASH在IAR环境下STM32工程输出hex文件简洁方法没怎么用过iar,还真不知道如何生成hex文件,以前用过iar430,不过都是通过jtag加载的。谢谢!谢谢!哈哈~~~各种IAR环境几乎都可以用此法生成HEX文件~~~不错.谢谢.谢谢大叔!顺便问下要生成ISP的BIN格式用哪个选
max1 stm32/stm8
运放输出问题
原理图如上,测试热电阻用的电路。在AD0出监测到的输出波形如下,输出波形偶尔有这种下陷的波形。不明白是什么原因造成的。2.5V和VCCA都正常。运放输出问题LM358的性能比较差的,遇到国产好牌子的还行,如果遇到次品,可能就麻烦了。建议检查一下输入,是不是把输入信号放大了,如果输入没有信号,输出是这样,只能怀疑IC的问题TVS也有可能产生噪声。过去的噪声发器的信号源,首先是齐纳管楼主应用双踪示波器同时监看输入输出。
angelhtf 模拟电子
VDSP汇编出来的代码效率很低?
各位大牛觉得VDSP汇编出来的代码效率怎么样啊?怎么我觉得C语言汇编出来的代码效率很低,尽管使能了编译器优化,但像并行指令很少体现啊,甚至连循环零开销也做不到(并没有超过两层循环),莫非必须要自己写汇编?听说CCS的C代码汇编效率能达到90%?VDSP汇编出来的代码效率很低?
clj2004000 DSP 与 ARM 处理器
2020 TI 嵌入式产品 Workshop —— MSP430™入门培训邀请函
日期及地点:2020年11月3日深圳2020年11月5日上海讲师:TI多位资深应用工程师2020TI嵌入式产品线下WorkshopMSP430入门培训来啦!本次培训主要讲解如何使用MSP430超低功耗微控制器家族开始设计你的应用。内容包括了产品家族介绍、典型应用、软硬件设计入门、以及简单的设计实验。多位TI资深应用工程师带您深入了解MSP430产品,动手实验环节等您亲自参与,设计难
eric_wang TI技术论坛
《智能驾驶之激光雷达算法详解》5.多传感器SLAM
本书第13章是关于多传感器融合SLAM算法的相关讲解,主要介绍了多传感器融合在智能车辆定位中的应用。由于单一传感器存在工作特性和局限性,处理不了复杂路况,因此多传感器融合实现高精度、稳定、实时的定位成为学术界和工业界的热点之一。多传感器融合SLAM有松耦合和紧耦合两种方式,紧耦合方式精度和稳定性较高,是目前研究重点,如LIC-Fusion算法、基于因子图框架的算法、R2LIVE算法及LVI-SAM算法等。此外,一些学者结合事先构建的高精点云地图提供全局定位信息,如百度的相关研究及
镜花水月000 汽车电子
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved