本文对整体的加载逻辑进行梳理,不作详细说明,学习过程主要参考《嵌入式Linux学习笔记(基于S5PV210、TQ210)》。
上电后最先运行的时iRom中的代码( BL0, 由三星固化,不能修改,别人能不能改不一定) 会根据OM引脚配置选择一种启动方式, 主要用到sd卡启动和Nandflash启动,UART和USB启动没有测试过。对于没有代码的板子,使用SD启动,SD中存放的当然就是u-boot了,启动u-boot后,通过tftp 或者 其它方式将uboot将u-boot代码写入到nand中。 此时更改OM配置就能从Nand中启动了,不再使用SD卡。
对于iRom加载的代码(BL1, 存放在SD卡或Nand中),有格式要求,不然处理器也不知道加载多长的代码。这个代码必须以一个特定的数据头开始,且长度不超过16K,处理器会根据数据头读取实际的代码长度。当启动方式为SD里,这段代码的必须从SD卡的512B的位置开始存放,这是处理器的规定,在Nand中时,则是从0位置开始。
因为u-boot的代码超过了16k,所以u-boot只能分成两段加载,16K代码里必须初始化SDRAM,然后将另一段u-boot代码(BL2)加载到SDRAM中运行。
关键字:S5PV210 SDRAM
引用地址:
对于S5PV210加载u-boot过程的理解
推荐阅读最新更新时间:2024-11-11 00:55
实验三——SDRAM
一。运行环境 开发板:jz2440 系统: ubuntu12.04 编译器:arm-linux-gcc 二、特殊寄存器 sdram的操作无需按照时序图来设置,只要设置好相关的13个寄存器,arm处理器里面的存储管理器会自动输出控制信号 1 .long 0x22011110 @ BWSCON 2 .long 0x00000700 @ BANKCON0 3 .long 0x00000700 @ BANKCON1 4 .long 0x00000700 @ BANKCON2 5 .long 0x00000700 @ BANKCON3 6
[单片机]
S5PV210(TQ210)学习笔记——Nand配置
S5PV210的Nand flash跟2440和6410的Nand flash配置差不多,不同的是S5PV210的功能更加强大,尤其是S5PV210的硬件ECC(本文不涉及S5PV210中Nand ECC配置)。整体上来讲,S5PV210的Nand flash配置还是非常简单的。 其实,配置一个模块往往需要以下几个步骤: (1)根据原理图,理清模块的接线方式,对于Nand flash来说,就是看看Nand flash接到了哪些GPIO上,然后把对应的GPIO配置为Nand功能即可。 (2)阅读S5PV210手册,掌握相关模块控制器的功能、操作方式及寄存器配置。 (3)阅读模块芯片手册,掌握模块的访问控制时序。
[单片机]
DDR SDRAM在嵌入式系统中的应用
引 言 很多嵌入式系统,特别是应用于图像处理与高速数据采集等场合的嵌入式系统,都需要高速缓存大量的数据。DDR(Double Data Rate,双数据速率)SDRAM由于其速度快、容量大,而且价格便宜,因此能够很好地满足上述场合对大量数据缓存的需求。但DDR SDRAM的接口不能直接与现今的微处理器和DSP的存储器接口相连,需要在其间插入控制器实现微处理器或DSP对存储器的控制。 随看密度与性能的不断提升,现场可编程门阵列(FPGA)已被广泛应用于各种嵌入式系统中。而且,现在很多的FPGAs都提供了针对DDR SDRAM的接口特性:其输入输出引脚都与SSTL一II电气特性相兼容,内部提供了DDR触发器、锁相环等硬件资
[单片机]
s3c2440裸机-内存控制器(五、SDRAM编程实现)
配置内存控制器-SDRAM编程配置 2440内存控制器共有13个寄存器。 BANK0--BANK5只需要设置BWSCON和BANKCONx(x为0~5)两个寄存器; BANK6、BANK7外接SDRAM时,除BWSCON和BANKCONx(x为6、7)外,还要设置REFRESH、BANKSIZE、MRSRB6、MRSRB7等4个寄存器。 下面分别说明各个寄存起的设置: 1.位宽和等待控制寄存器BWSCON(BUSWIDTH&WAITCONTROLREGISTER) 我们SDRAM的位宽为32,DW6 设置成10, 没有使用等待信号,所以WS6 =0。 bank7跟随bank6的配置, 因此BWSCON寄存器的值为:
[单片机]
S5PV210开发 -- 烧写/启动模式
和 Hi3516A、DM368 开发流程一样,我们先看一下烧写/启动模式、然后烧写、然后再看Uboot启动流程等等。 一、启动模式 首先看S5PV210 芯片手册 boot mode 部分(第523页) 查看原理图,其中我购买的开发板,启动选择开关如下: 下面我们分析一下这两张图片: 参看:S5PV210大概的启动过程 当我们 OM 设置为:001100 或者 101100 的时候,我们选择的就是 SD/MMC 的模式。这就看你需要什么启动方式了。 我的开发板(九鼎X210)支持SD卡启动和USB启动: SD卡启动:001100或者101100 USB启动: 1XXXX1(x表示没有) 所以,我们在切换
[单片机]
s3c2440学习之路-011代码重定位
1 基本原理 承接上1篇博客 s3c2440学习之路-010 sdram, sdram已经初始化完毕,现在可以正式的发挥SDRAM的价值了。(SDRAM 是可以随意读写的,后续的代码都会放到上面来运行) 1.1 程序段的划分 一个程序编译后,会有代码段、数据段、只读数据段、bss段和注释段 这里主要讲一下bss段为什么可以减小bin文件的大小。bbs主要记录未初始化和初始化为0的全局(static 修饰的局部)变量的位置,而不会记录其具体数据,因为这部分的数值会默认设置为0。 这里看2个小程序 test1.c #include stdio.h char a ; int main(int argc, ch
[单片机]
ARM芯片开发(S5PV210芯片)——SD卡启动
1、SD卡启动 顾名思义就是启动代码存放在SD卡中,设备从SD卡中启动。用SD卡启动有一些好处:譬如可以在不借用专用烧录工具(类似Jlink)的情况下对SD卡进行刷机,然后刷机后的SD卡插入卡槽,SoC既可启动;譬如可以用SD卡启动进行量产刷机(量产卡)。 2、支持SD卡启动的条件 SD卡启动不是每款芯片都支持的,因为SD卡有个难点,就是SD卡不能上电直接使用也不能通过总线与CPU相连,要通过Soc的SD卡控制器发命令才能与SD卡通信。这个有个矛盾点,SD卡需要初始化才能使用,但是能初始化SD卡的启动代码又在SD卡上,这就陷入了死锁。所以之前的设备都是用Norflash做启动介质,因为NorFlash上电即可使用,还可以片内执
[单片机]
s5pv210----串口设置之输入输出字符
第一节 S5PV210 UART相关说明 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER,它用来传输串行数据。发送数据时,CPU 将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线的信号,将串行收集在缓冲区中,CPU 即可读取UART获得这些数据。 在S5PV210 中,UART提供了4 对独立的异步串口I/O 端口,有 4 个独立的通道,每个通道可以工作于DMA 模式或者中断模式。其中,通道0 有256byte 的的发送FIFO和256byte 的接收FIFO,通道1 有64byte的的发送FIF
[单片机]