ARM处理器启动流程———S3C2440、S3C6410、S5PV210
S3C2440
支持从norflash和nandflash启动。
Nandflash不参与统一编址,CPU总是从编址的0地址处取指令执行,为了实现从nandflash启动,S3C2440芯片从在CPU启动的时候,首先将nandflash前面4kB的内容复制到芯片中的叫做stepping stone的sram中,steppping stone只有4KB大小,4KB的代码会完成一些硬件初始化的工作,并且将nandflash中剩余部分的代码复制到SDRAM中去,这部分代码包括bootload的剩余代码或者还有内核代码,并在内存中执行。S3C2440内存是从0x30000000地址开始的,也就是BANK6.
S3C6410
启动方式:norflash启动(但6410开发板并没有norflash)、oneNAND启动、MODEM启动、IROM(Internal ROM)启动(包括SD卡启动和NANDFLASH启动)。在0地址处是一个映射区域,当从IROM启动的时候,IROM的内容会映射到这一区域,CPU从这里开始取映射到此处的指令。
地址布局:
InternalROM从0x08000000-0x0BFFFFFF、stepping stone从0x0C000000-0x0FFFFFFF、内存从0x50000000开始。
启动流程:
选择从IROM启动,开发板上电之后,IROM被映射到0地址处,CPU取IROM中第一条指令。在IROM中有芯片厂商固化好的软件BL0,BL0会进行一些硬件的初始化,还会将放在nandflash中的BL1(8K)拷贝到stepping stone运行,BL1会将NANDFLASH中剩余的BL2拷贝到SDRAM中运行,从而完成整个bootload的运行。
S5PV210
启动方式:I-ROM启动,其中包括SD卡启动、NANDFLASH启动、USB启动、串口启动。
地址分布:
IROM从0xD0000000-0xD000FFFF的64KB的空间
IRAM(steppingstone)0xD0020000-0xD0037FFF的96KB空间。
0地址处采用映射模式,通过跳线选择映射设备。
内存从0x2000000-0x3FFFFFFF,512MB内存空间。
启动流程:
处理器上电之后,IROM会被映射到0地址处,CPU从IROM中取第一条指令。固化在IROM中的BL0会进行硬件的初始化工作,之后BL0会将NANDFLASH中BL1拷贝InternalRAM(垫脚石,96KB),之后BL1拷贝剩余的BL2到垫脚石中。BL1和BL2都有最大空间容量,BL1最大不超过16KB,BL2最大不超过80KB,一般BL1只会进行代码复制工作,16KB空间足够,如果BL2超过了80KB,可以将超过80KB的部分拷贝到内存中。
- Keil MDK破解过程详解[18年05月20日 11:11]
- STM32F407之模拟I2C(二)之24C128[18年05月20日 12:18]
- STM32F1使用I/0模拟I2C接口[18年05月20日 12:17]
- STM32模拟I2C程序[18年05月20日 12:13]
- STM8S 模拟I2C程序[18年05月20日 12:14]
- 普通IO口模拟实现I2C通信及应用解析[18年05月20日 12:12]