三星s5pv210启动过程(ARM Cortex-A8)

发布者:自由漫步最新更新时间:2019-11-22 来源: 51hei关键字:s5pv210  启动过程  ARM  Cortex-A8 手机看文章 扫描二维码
随时随地手机看文章

S5PV210内部有96Kb的IRAM和64Kb的IROM。

DRAM0的地址:0x2000_0000——0x3FFF_FFFF(512MB)(自带内存)
DRAM1的地址:0x4000_0000——0x7FFF_FFFF(1024MB)(扩展内存)
SROM的地址: 0x8000_0000——0xAFFF_FFFF(128MB*6)(扩展内存)
IROM的地址:  0xD000_0000——0xD000_FFFF(64Kb)
ISRAM的地址:  0xD002_0000——0xD003_7FFF(96Kb)
SFR的地址:    0xE000_0000——0xFFFF_FFFF(512Mb)

IROM结构:
BL0:64Kb。

ISRAM结构:
BL1:16Kb,和启动设备的前16Kb地址的BL1对应;前16byte是头部。
BL2:80Kb,和启动设备的前16Kb之后的80Kb地址BL2对应。

完整的启动顺序:

开机启动IROM(BL0)的固话代码;
1.关闭看门狗定时器(watchdog timer);(开机默认关闭看门狗
2.初始化I cache(Instruction cache);(协处理器,开机默认初始化)
3.初始化堆栈和变量;(开机默认初始化栈,可以调用函数)
4.检查安全值;
5.初始化时钟相关;(开机默认初始化时钟)
6.判断启动设备;
7.检查校验和,如果不对,就转到第二个启动设备;如果正确,就从启动设备拷贝前16kb的BL1的代码到ISRAM的BL1(0xD0020000);
8.如果是安全模式启动,则进行完整性检查,如果没问题就直接跳转到ISRAM的BL1(0xD0020010)控制BL2的加载;如果有问题就停止启动。
9.如果不是安全模式,就跳转到ISRAM的BL1(0xD0020010)控制BL2的加载;

在ISRAM的BL1运行代码(裸机程序或者bootloader程序,从0xD0020010开始)。
10.将启动设备的剩余代码拷贝到ISRAM(将启动设备16Kb之后的代码拷贝到ISRAM的BL2的相应位置)。
11.如果是安全模式,进行完整性检查,没问题直接跳转到ISRAM的BL2运行;如果有问题就终止启动。
12.如果不是安全模式就直接跳转到ISRAM的BL2运行。

在ISRAM的BL2运行代码(裸机程序或bootloader程序,从0xD0020010开始)。
13.控制DRAM内存初始化;
14.控制操作系统镜像加载到DRAM内存;
15.跳转到DRAM内存(0x20000000),启动操作系统。

在DRAM运行操作系统。

启动设备由OM5-OM0六个管脚的值来决定:

从1st和2st启动(OM5=0):从nand、sd等设备启动。
NAND 2kb 5cycle:000010
SD:001100
eMMC:00111X
OneNAND:00101X
eSSD:00000X

从uart和usb启动(OM5=1):先从uart启动,如果要从usb启动,手动断开uart。
eSSD:10000X
NAND 2k 5cycle:10001X
OneNAND:10100X
SD:10110X
eMMC:10111X

启动设备的顺序:
1st   boot
2st   boot
Uart   boot
Usb   boot
1st和2st是:NAND、NOR、OneNAND、SD(MMC)、eMMC、eSSD(SSD)。

S5PV210启动时,会先运行内部IROM中的固化代码进行一些必要的初始化,执行完后硬件上会自动读取NAND Flash或sd卡等启动设备的前16K的数据到IRAM中,这16K数据中的前16byte中保存了一个叫校验和的值,拷贝数据时S5PV210会统计出待运行的bin文件中含‘1’的个数,然后和校验和做比较,如果相等则继续运行程序,否则停止运行。所以所有在S5PV210的ISRAM上运行的bin文件都必须具有一个16byte的头部,该头部中需包含校验和信息。因为程序有16字节的头部,所以BL1中代码的实际地址是在ISRAM的0xD0020010。

**************************************
XXX.bin加上16byte的头部之后叫做210.bin
用来给启动设备添加16byte头的程序:
源程序参考mkv210_image.c
注意在DRAM运行的,就不需要再给程序加一个16byte的头了。
**************************************

启动代码的分析:
硬件:
1.时钟初始化
2.DRAM初始化
3.其它初始化(根据需要)
软件:
1.关闭看门狗
2.初始化I cache
3.栈的初始化
4.清空bss段

关键字:s5pv210  启动过程  ARM  Cortex-A8 引用地址:三星s5pv210启动过程(ARM Cortex-A8)

上一篇:4412开发板用adb命令安装apk
下一篇:移植minicom到ARM开发板

推荐阅读最新更新时间:2024-10-30 14:36

ARM实验板LCD上显示汉字
一、实验目的 1.编写能够在ARM实验板LCD上显示汉字的程序; 2.在Ubuntu系统中建立交叉编译环境,编译上述程序生成.o文件; 3.制作root文件系统,下载到开发板中验证。 二、实验原理 16*16点阵字库HZK16的使用 三、实验步骤 1.Ubuntu系统上编写验证程序 Ubuntu系统上编写的验证程序如下,为了验证是否能够正确从HZK16字库中读取出某个字。 #include stdio.h #include stdlib.h void getHZCode(unsigned char incode , unsigned char hzCode ); int main() { unsigned
[单片机]
畅学多功能ARM7实验箱LED流水灯资源详解
1. 单色流水灯测试 硬件准备:8P杜邦线1根 接线说明:使用1根8P杜邦线连接ARM核心板P019~P026接底板单色流水灯模块的JP15。 跳线说明:无 分别为:P019-I1,P020-I2,P021-I3,P022-I4,P023-I5,P024-I6,P025-I7,P026-I8. 实验现象:8个LED灯依次熄灭 源码资源如下: /*****************LPC2103 GPIO流水灯实验*************** 系统设置: Fosc、Fcclk、Fcco、Fpclk #define Fosc 12000000 #define Fcclk (Fosc * 5)
[单片机]
畅学多功能<font color='red'>ARM</font>7实验箱LED流水灯资源详解
基于ARM和W5100的嵌入式以太网通信接口设计
 随着以太网技术在工业远程监控和数据采集领域的飞速发展,基于以太网的应用接口设备也迅速普及到医疗设备、工厂电力系统等应用。然而,嵌入式以太网接口设计的核心器件是网络控制芯片,其性能优劣直接影响网络通信的效率。  本文结合ARM技术,采用32 bit STM32F105V微处理器和高性能的以太网控制芯片W5100实现高性能、高可靠性的嵌入式以太网通信接口设计,其系统各功能模块容易扩展和升级。 1 总体设计  在嵌入式系统设计高速发展的过程中,与传统的基于现场总线方式相比,结合嵌入式系统和以太网技术来实现数据采集和控制功能越来越受到广大嵌入式设计者的青睐,而通信接口设计实质是能够实现TCP/IP网络通信协议。使用本接口模块的核心控制器
[工业控制]
基于<font color='red'>ARM</font>和W5100的嵌入式以太网通信接口设计
基于FPGA+DSP+ARM的数据传送总线变换器
  在飞控组件测试时,由于被测系统与上位机有一定距离,如果直接把遥测并行数据传送到上位机,将会出现数据信号的衰减和信号延时问题,有可能使信号时序错位,从而达不到系统测试的要求。为此,需要研制一种数据传送总线变换器,用来完成被测数据无失真的、实时的、远距离与上位机的通信,并能接收上位机的控制指令,实现工作状态的远程交互。    1 数据传送总线变换器的整体设计   综合考虑到测试系统实时性和可靠性的要求,选择以太网口作为数据传送总线变换器与上位机的数据转发接口,以高速串口作为控制口,采用FPGA+DSP+ARM的架构作为实时信息处理平台。   数据传送总线变换器的系统框图如图1所示。其中,FPGA作为数据预处理器,完成并行数据
[嵌入式]
基于FPGA+DSP+<font color='red'>ARM</font>的数据传送总线变换器
ARM嵌入式系统的ISP设计
应用程序的固化是嵌入式产品开发和生产过程中一个重要环节。基于ARM的嵌入式系统常用的程序固化方法是,用仿真器通过JTAG口将程序烧录到Flash里,在产品的开发阶段,使用仿真器几乎是必然的;然而到了产品的生产阶段,进行应用程序烧录或升级操作的往往是生产线上的工人,他们不易掌握仿真器的使用方法,而且在生产阶段也需要把JTAG调试口封住以防软件被窥视。笔者在使用意法半导体的STR730开发产品的过程中,设计了一种通过串口进行ISP(In System Programming,在系统编程)的方案。该方案成本低,生产线使用起来也很方便,而且即使升级过程中发生掉电之类的意外也不会影响下一次升级,安全而可靠。 1 硬件连接 ISP方案
[单片机]
<font color='red'>ARM</font>嵌入式系统的ISP设计
从TCS23,看Arm TCS的设计理念
随着Arm TCS23(Total Compute Solutions 2023)的推出,Arm 终端事业部产品管理高级总监 Kinjal Dave在Arm官方博客上发表了一篇题为《TCS23 为移动计算提供完整平台》的博文。日前,Kinjal Dave面对中国媒体,详细介绍了TCS23性能的提升,以及为终端带来体验的提升。 自2019年决定开始使用TCS的方法进行产品定义和开发之后,Arm以解决方案的角度进行技术产品的开发已经持续了几年,目前TCS23是第三代TCS。 TCS是将CPU、GPU、系统级 IP 元素融合,力求通过平台化、方案化的方式满足不同客户共同的需求。每年产品的迭代升级,使得开发变得更加困难,同时成本也
[手机便携]
从TCS23,看<font color='red'>Arm</font> TCS的设计理念
ARM键盘接口
  ARM由通用接口GPI支持键盘行扫描(Scanning keyboardrow)和支持键盘阵列扫描(Scanning keybOArd matnx)。   其中,Port A、Port B、Port D主要用于外围芯片信号的控制,Port E有双重作用。例如,PortA控制键盘的行信号,Port B用于RS-232,Port D用于控制MODEM、FPGA。   ARM内置点阵式键盘,专用的8位列输出COL ,Port A口可复用作键盘的行输入,任意一个键按下时都会产生中断。其扫描流程特点如下:   ·列输出能被驱动成全低、全高或者全高阻9允许8 X 8键矩阵的任意组和按键;   ·Port A8位或的结果驱动一个
[嵌入式]
ARM汇编语言中的程序结构
在 ARM ( Thumb )汇编语言程序中,以程序段为单位组织代码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行的映象文件。 可执行映象文件通常由以下几部分构成: 一个或多个代码段,代码段的属性为只读。 零个或多个包含初始化数据的数据段,数据段的属性为可读写。 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。 链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。因此源程序中段之间的相对位
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved