课程列表

基本问题

开源资源

好好学习天天向上

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

S5PV210启动

S5PV210内部ROM(iROM)固化有厂家设置的用于引导启动的程序代码,支持从NAND、SD卡等多种常用存储设备启动。在上电过程初始阶段,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的约束条件是:

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

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

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

BL1格式代码生成方法:

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

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