单片机
返回首页

S5PV210的启动过程详解

2022-08-03 来源:csdn

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的限制。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何构建一个触摸传感器电路

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章