ARM处理器启动流程

S3C2440:

  从nandflash启动的时候,上电之后,硬件自动将nandflash里bootloader的前4K代码复制到stepping stone(0地址)中,这4K的代码除了负责一些硬件初始化,还负责将bootloader剩下的代码复制到内存0x3000 0000中,然后4K运行完之后跳转到内存中继续运行剩下的bootloader,最后引导操作系统启动。

 

S3C6410:

  s3c6410中零地址是一个映射区域(位于0地址),6410可实现从SDRAM,IROM(包含SD卡启动和nandflash启动)中启动,从什么地方启动,就将其映射到映射区域中。

  从nandflash启动的时候,上电之后,首先运行irom中的代码(可以看做是0地址),irom中的代码是硬件厂商固化好的,这些代码主要负责一些硬件的初始化,还负责将bootloader中的前8K代码复制到stepping stone中(第一阶段),在stepping stone中这8K代码运行完之后还将剩余的bootloader复制到内存0x5000 0000中运行(第二阶段),最终引导操作系统启动。

 

S5PV210

  与6410相似,0地址处也是一个映射区域,从nandflash启动实际是从irom启动。

  从nandflash启动的时候,上电之后,首先运行irom中的代码(可以看做是0地址),irom中的代码是硬件厂商固化好的,这些代码主要负责一些硬件的初始化,还负责将bootloader中的第一阶段代码(BL1---16K)复制到stepping stone(96K)中,然后将BL2(一般容量为80k)复制到stepping stone中,此时若stepping stone中还装不下bootloader,则继续将剩余的bootloader复制到内存中运行,最后引导操作系统启动。

你可能感兴趣的:(ARM处理器启动流程)