课程列表

基本问题

开源资源

好好学习天天向上

联大大纲—通信电子 ;教师介绍; 单片机课程学习经验- 学习路线图; 1.概述 -应用 -定义 -特点 -构成; 2.嵌入式处理器 —DIY CPU处理器ARM处理器Cortex-A8S5PV210讨论; 3.汇编语言 -作业 4.Bootloader -作业 5.Linux内核移植 6.嵌入式Linux程序设计 7.图形用户接口QT 8.其他框架介绍; 9.嵌入式物联网应用系统设计

S5PV210启动

S5PV210内部ROM(iROM)固化有厂家设置的用于引导启动的程序代码,支持从NANDSD卡等多种常用存储设备启动。在上电过程初始阶段,S5PV210通过读取外部OM[5:0]引脚的高低电平来识别用于加载引导程序的设备。

引导过程

(来自于芯片手册)

1.3.5 SECURITY SUBSYSTEM
The key features of security subsystem include:
On-chip secure boot ROM
- 64 KB secure boot ROM for secure boot
On-chip secure RAM
- 128 KB secure RAM for security function
Hardware Crypto Accelerator
- Securely integrated DES/ TDES, AES, SHA-1, PRNG and PKA
- Access control (Security Domain Manager with the ARM TrustZone Hardware)
- Enables enhanced secure platform for separate (secure/ non-secure) execution environment for security
sensitive application
Secure JTAG
- Authentication of JTAG user
- Access control in JTAG mode
 

来自于手册的一个例子:

BL0程序代码功能

(1) 禁用Watch-dog

(2) 初始化指令cache

(3) 初始化区(参考存储器映像)。

(4) 初始化堆区(参考存储器映像)。

(5) 初始化块设备复制功能。

(6) 初始化PLL和系统时钟。

(7) 复制BL1到内部SRAM区(首地址为:0xd00020000)。

(8) 验证BL1的校验和。若验证BL1校验错,则使用SD/MMC channel 2进行二次引导。

(9) 检测是否为安全引导模式。若S5PV210被写入了安全密钥则为安全引导模式。该模式下,需要验证BL1的完整性。

(10) 跳转到BL1的首地址开始运行程序。

BL1程序代码主要功能是

1)完成板级初始化工作。

2)复制完整启动代码到SDRAM

3)在SDRAM中运行启动代码。

当设置为SD卡启动模式时,BL1代码需要存放于SD卡中。S5PV210通过运行BL0将存放于SD卡中的BL1复制到内部IRAM的指定空间(0xD0020000 - 0xD0023FFF),并跳转到0xD002_0010处执行。为了保证可靠复制,对BL1的约束条件是:

1BL1段代码最大长度为16KB

2 BL1段代码前16个字节为特定数据含有规定信息。数据格式如下所示。

在复制BL1过程中,BL0依据长度字复制BL1,若长度字超限,将最多复制16KB字节到IRAM。复制结束后会求出BL1数据和,并与16字节中的校验字相比较,如果相同表示校验通过。当成功复制到IRAM后,CPU将跳过16字节,从0xD0020010处运行BL1。否则尝试其它方式启动。

BL1格式代码生成方法:

首先编写无16字节文件头的启动程序,然后借助工具mkv210_image.c(来自互联网),在程序头按要求格式追加16字节文件,生成BL1tiny210-spl.bin)。

依据S5PV210启动模式要求,当设定为SD卡启动模式时,要求BL1代码存放在SD的指定扇区。