S5PV210芯片简介:
S5PV210是ARM架构(crotex_A8内核)的32位芯片,理论上支持4G的内存空间,但因为是统一编址,实际只支持1.5G的内存,内置了iROM和iRAM。启动方式由下图所示:
启动方式详解:
(1)上电后首先从iROM中读取预先设置的代码BL0,BL0会初始化芯片内部,包括CPU的时钟、关看门狗、初始化栈等等。这一段代码时出厂的时候内置的,因为不知道将来芯片会接哪些型号的外设,所以没法去初始化外设,都是初始化芯片内部。BL0其中有一个特别重要的功能,就是判断启动模式,也就是判断BL1要通过哪种存储介质读取,比如图中有NorFlash、eSSd、NandFlash、USB等。Soc判断启动模式的方式是去读取Soc的某几个引脚电平高低来判断启动模式,可以通过外部的硬件开关来选择启动模式。在这里我们可选择的是第一启动方式,第二启动方式是默认(SD/MMC channel 2)的。当第一启动方式失败后,会尝试第二启动方式。如果第二启动也失败,则此次启动失败。
(2)通过BL0选择的启动方式,去对应的介质读取BL1(BL1最大为16KB,数据手册写的是BL1的长度可以配置,但是看到U_boot里都是写死的16KB)代码到iRAM,BL1代码是我们写的启动代码,也就是bootloader的一部分。这里隐藏了一个细节,如果BL1是在oneNand、eSSD卡等存储介质里,是先需要一定的时序去初始化存储器才能读取数据的。具体的初始化时BL0里做的,当BL0里判断出了启动方式,会调用内置的Device Copy Function函数去初始化储存器的。
(3)BL1执行完后,将BL2(启动代码剩下的部分,最大不超过80KB)读取到iRAM中执行。
(4)BL1+BL2需要完成一个重要的作用,就是初始化DDR内存,然后把OS加载内存中。
(5)跳转到DDR中,把剩下的启动代码执行完毕,将OS运行起来,到此整个启动过程结束。
补充:
以上是三星建议的启动方式,实际的U-boot并不是这样。三星建议的启动方式,有个局限,整个的启动代码不能超过96KB(iRAM为96KB)。实际的操作是,BL1去初始化DDR,并且把整个bootloader和OS都加载到DDR中,然后跳转到DDR中去执行DDR里的那份BL2代码。这样的好处是bootloader可以超过96KB,不用受到iRAM的限制。
关键字:S5PV210 启动过程 32位
引用地址:
S5PV210的启动过程详解
推荐阅读最新更新时间:2024-11-12 01:39
Lumia 950 XL成功运行Win10 ARM:可装32位应用
在黑客开发者Ben | imbushuo先后完成Lumia 950 XL上的Windows 10 UEFI引导,成功支持Windows 10启动后,现在已经成功实现Lumia 950 XL对Windows 10 ARM的安装,并且能够实际操作运行系统了。 上手演示: 根据Ben Imbushuo介绍,目前Lumia 950 XL运行Windows 10桌面版取得了基本的成功,该设备上有完整的64位Windows on ARM系统,支持触摸屏操作。 不过目前还不支持无线网络,但Ben Imbushuo认为将会很快实现,另外还有对Win10 32位应用程序的支持,比如安装Chrome浏览器等。
[手机便携]
盛群:和代工厂签订长单 Q4起大幅增加32位MCU产量
MCU大厂盛群发言人Armstrong Tsai表示,由于与代工合作伙伴签订了长期的产能供应合同,该公司预计从2022年第四季度开始大幅增加其32位MCU芯片的产量。 据《电子时报》报道,Tsai指出,盛群为32位MCU生产所确保的代工产能将在2022年第四季度翻倍,使公司能够更好地履行客户从IDM转移来的订单,后者正在将生产重点转移到汽车MCU。 Tsai表示,盛群正在让客户对其32位MCU进行验证,以获得他们转移的订单,并将在通过验证后看到更长的订单可见性,因为客户将订单转回IDM的可能性并不高。他表示,预计从2022年第四季度开始,该公司将大幅增加用于远程电表读取、5G通信和摩托车GPS应用的32位MCU的出货量。 财报显示
[手机便携]
S5PV210串行通信编程实战-1
1、整个程序流程分析: 程序是第五章icache项目复制过来的有:clock.S 、led.S、start.S(添加bl main调用)、Makefile(依懒里要添加uart.o和main.o)、mkv210_image.c、多添加一个,uart.c再添加一个main.c调用uart.c (1)、整个串口通信相关程序包含2部分:uart_init负责初始化串口,uart_putc负责发送一个字节。 void main(void) { uart_init( ); uart_putc( ' a ' ); } //串口初始化程序 void uart_init(void) { } //串口
[单片机]
ARM与8、16、32位宽存储器的地址线连接若干问题
ARM是32位,地址空间是2的32次幂,4G地址空间。所有的外设(FLASH,RAM,SD卡等等)都映射到这4G的空间上。比如大部分ARM7都把RAM映射到0x40000000,所以对RAM的操作就在0X40000000开始的地址上。FLASH从0X0开始。使用FLASH还要考虑地址重映射,就是选择片内FLASH或片外FLASH。 FLASH一般是8位或16位,当它接到32位的ARM上时,地址位就会错位。对于16位FLASH,FLASH的A0要接ARM的A1。对于8位FLASH,FLASH的A0要接ARM的A0。ARM的A0对应8位,ARM的A1对应16位,ARM的A2对应32位,如果FLASH是32位,那么FLAS
[单片机]
STM32位带操作-详解-计算过程
位带操作 位带操作的概念其实很多年前就有了,那还是 8051 单片机开创的先河。如今,CM3 将此能力进化,这里的位带操作是 8051 位寻址区的威力大幅加强版。 官方解释 先来看一下Cortex-M3权威指南中描述的位带操作: 支持了位带操作后,可以使用普通的加载/存储指令来对单一的比特进行读写操作。在CM3中,有两个区中实现了位带。其中一个是 SRAM 区的最低1MB 范围,第二个则是片内外设区的最低 1MB 范围。这两个区中的地址除了可以像普通的 RAM 一样使用外,它们还都有自己的“位带别名区”,位带别名区把每个比特膨胀成一个 32 位的字。当你通过位带别名区访问这些字时,就可以达到访问原始比特的目的。 正点原子库
[单片机]
8/32位夹杀 16位MCU靠硬件市场杀出重围
16位MCU如今面临8位和32位微控制器(MCU)夹杀,市场更有可能将逐渐萎缩,对此,Microchip MCU16业务部副总裁Joe Thomsen则表示,16位MCU在以硬件设计为主的产品上,仍有一定的市场利基, 而该公司近期也发布业界首款双核心16位数字讯号控制器(DSC)--dsPIC33CH,瞄准具控制回路的硬件产品,如马达、数字电源等,拓展16位市场。 Arm核心的开放让32位MCU开发成本持续降低,芯片价格也随之下降,并逐渐瓜分高阶16位MCU市场;而8位MCU由于价格低廉,目前仍有广大低阶应用市场,且随着效能提升,也渐能满足较为低阶的16位MCU应用需求, 也因此,16位MCU在现今市场中,可说是遭逢夹杀,市场发展
[单片机]
简析STM32的启动过程
当前的嵌入式应用程序开发过程里,C语言已成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的入口地址在微控制器的内部存储空间中不再是绝对不变的。相信读者都可以回答这个问题,答案也许大同小异,但肯定都有个关键词,叫“启动文件”,用英文单词来描述是“Bootloader”。 无论性能高下,结构简繁,价格贵贱,每一种微控制器(
[单片机]
【ARM】S5PV210芯片中的BL0的作用
S5PV210芯片中的BL0的作用: (1)关闭看门狗; (2)清除指令寄存器; (3)初始化栈区域; (4)初始化堆区域; (5)初始化块设备复制功能; (6)初始化PLL和设置系统时钟; (7)拷贝BL1到片内SRAM; (8)验证BL1校验,如果校验失败,最后将二次开机; (9)检查是否是安全启动模式。 如果安全关键值写入S5PV210,它的安全启动模式。 如果它是安全的启动模式,验证BL1的完整性。 (10)跳到BL1的开始地址;
[单片机]