ARM裸机-7

1、S5PV210的地址映射

1.1、什么是地址映射

        S5PV210属于ARM Cortex-A8架构,32位CPU,CPU设计时就有32根地址线&32根数据线。32根地址线决定了CPU的地址空间为4G,那么这4G空间如何分配使用?这个问题就是地址映射问题。

1.2、S5PV210的内存映射

        要看数据手册

ARM裸机-7_第1张图片

1.3、一些专业术语

ROM:read only memory只读存储器

RAM:random access memory随机访问存储器

IROM:internal ROM 内部ROM,指的是集成到SoC内部的ROM

IRAM:internal RAM 内部RAM,指的是集成到SoC内部的RAM

DRAM: dynamic RAM 动态RAM

SRAM:static RAM 静态RAM

SFR:special function register 特殊功能寄存器

2、CPU和外部存储器的接口

2.1、内存和外存

内存:内部存储器,用来运行程序的,RAM。例如DRAM、SRAM、DDR。

外存:外部存储器,用来存放东西的。ROM。例如硬盘、Flash(Nand、iNand 、、、U盘、SSD)、光盘。

        CPU连接内存和外存的连接方式不同。内存需要直接地址访问,所以是通过地址总线6数据总线的总线式访问方式连接的(好处是直接访问,随机访问;坏处是占用CPU的地址空间,大小受限);外存是通过CPU的外存接口来连接的(好处是不占用CPU的地址空间,坏处是访问速度没有总线式快,访问时序较复杂)。

2.2、SoC常用外部存储器

        NorFlash

        NandFlash

        eMMC/iNand/moviNand

        oneNAND

        SD卡/TF卡/MMC卡

        essD

        SATA硬盘

2.3、S5PV210支持的外部存储器

        看数据手册

ARM裸机-7_第2张图片

2.4、总结

        (1)现代SoC支持多种外部存储器。

        (2)外部存储器主要用来存储程序(可执行代码),相当于电脑的硬盘。

        (3)各种不同外部存储器原理不同,大小、性价比不同,一般产品厂家根据需要选择适合自己产品的外存使用。

        (4)外部存储器和CPU连接一般不是通过地址&数据总线直接相连,因为地址空间不够用。一般都是通过专门的接口来连接的。

3、S5PV210的启动过程

        S5PV210使用的启动方式是:外接的大容量Nand +外接大容量DRAM+ SoC内置SRAM

        第一步:CPU上电后先从内部IROM中读取预先设置的代码(BL0),执行。这一段IROM代码首先做了一些基本的初始化(CPU时钟、关看门狗...)(这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM,因此这一段IROM是不能负责初始化外接的DRAM的,因此这一段代码只能初始化SoC内部的东西);然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),然后从相应的外部存储器去读取第一部分启动代码(BL1,大小为16KB)到内部SRAM。

        第二步:从IRAM去运行刚上一步读取来的BL1(16KB),然后执行。BL1负责初始化NandFlash,然后将BL2取到IRAM(剩余的80KB)然后运行。

        第三步:从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。
        思路:因为启动代码的大小是不定的,有些公司可能96kb就够了,有些公司可能1MB都不够。所以两步的启动方式不合适。三星的解决方案是:把启动代码分为两半 (BL1和BL2),这两部分协同工作来完成启动。

3.1、BL0做了什么

        关看门狗

        初始化指令cache

        初始化栈

        初始化堆

        初始化块设备复制函数

        设置SoC时钟系统

        复制BL1到内部IRAM (16KB)

        检查BL1的校验和

        跳转到BL1去执行

4、如何在开发板上选择不同的启动方式

4.1、使用板载的eMMC启动(在SD卡的通道0上)

        开发板收到默认就是从eMMC启动,内部预先烧录了Android。

4.2、从SD卡的通道2启动

        可以使用外置SD卡从SD2通道启动,但这需要先破坏板载的eMMC中的android镜像。破坏方法见九鼎官方的裸机教程文档《x210v3开发板裸机教程.pdf》中2.5.2节(P19)。

        OMpin设置和SD0启动一样。

4.3、USB调试模式

 

你可能感兴趣的:(ARM,arm开发)