ARM裸机——x210的启动方式

2019-04-13 21:24发布

x210的启动方式一.基本概念1.内存SRAM静态内存 特点:容量小 价格高 不需要软件初始化 上电就可以使用DRAM动态内存 特点:容量大 价格低 不能上电就工作 需要软件进行一定的初始化2.外存NorFlash 容量小 可以通过总线的方式直接连接到CPU CPU上电后就可以访问 一般作为启动介质NandFlash 和硬盘一样容量大 不能以总线的方式连接 上电后不能直接读取 需要进行一定的初始化操作单片机:一般内存需求量小 而且希望开发简单 适合使用SRAM
嵌入式系统:内存需求量大 而且没有NorFlash
PC机:内存需求量大 而且软件复杂 适合使用DRAM单片机 很小容量的NorFlash+很小容量的SRAM
嵌入式系统:因为NorFlash很贵 直接用外接大量的Nand+外接大容量的DRAM+SoC内置的SRAM 开机CPU特殊设计直接将外部的Nand中的代码放入到SRAM中 直接运行 初始化外部Nand和DRAM210启动方式:外接大量的Nand+外接大容量的DRAM+SoC内置的SRAM 开机CPU特殊设计直接将外部的Nand中的代码放入到SRAM中 直接运行 初始化外部Nand和DRAM
但是更复杂 210内置一块SRAM(iRAM)和一块内置的NorFlash(iROM) 210启动过程:
1.CPU上电后先从内部IROM中读取预先设置的代码(BL0) 这段代码有一些基本的初始化(CPU时钟、看门狗......) 但是不能负责初始化外接的DRAM 因为DRAM不同 启动代码不同 只能初始化SoC内部的东西 然后通过开关选择启动方式 然后从相应的外部存储器中去读取第一部分启动代码(BL1,大小为16K)到内部的SRAM中 
2.从SRAM运行读取到的启动代码 负责初始化Nand 初始化DRAM 初始化板卡 然后将OS从Nand中读取到DRAM中,然后运行
思路:因为外部启动代码不定 把启动代码分为两半 BL1和BL2 协同工作完成启动 BL1负责初始化DRAM和NandFlash 将BL2读取到IRAM然后运行  从IRAM运行BL2 BL2初始化DRAM 然后启动OS 启动过程结束.