本文共 1339 字,大约阅读时间需要 4 分钟。
介绍S3c2440、S3c6410、S5pv210这三种芯片的启动方式,地址布局,启动流程
启动方式:nor flash启动(2MB);nand flash启动(256MB)
地址布局:左边的图为选用nor flash启动时的地址布局,右边的图为选用nand flash启动时的地址布局。
当ARM处理器上电后,处理器会从0地址处取第一条指令,即从0地址处开始运行。当选用nand flash启动时,0地址是BootSRAM,该区域也称为stepping stone(垫脚石)。 启动流程:当选用nand flash启动时,处理器会自动将nand flash中最前端的4kb内容拷贝到stepping stone中,进而运行这4kb内容。这4kb bootloader任务除了硬件初始化外,还需要将nand flash中剩余的bootloader拷贝到内存中。当处理器结束运行stepping stone中的4kb bootloader后会跳转到内存中运行剩余的bootloader。 从图中可以看出内存SDRAM的初始地址为0x30000000.启动方式:
从图中可以看出,启动方式包括①SROM(nor flash启动)②OneNAND(一种特殊的nand flash)③MODEM④IROM(包含有SD卡启动,nand flash启动)
通过设置引脚可设置启动方式 地址布局(一部分):0地址处是Booting Device Region,是一个镜像区域。即当选择IROM启动时,该镜像区域会将IROM映射到镜像区域。选择SROM启动、OneNAND启动时也是相同道理。
启动流程:当选择从nand flash启动时,IROM区域会被映射到镜像区域,因此处理器会从IROM取第一条指令开始运行。IROM中存放的是生产厂商固化好的代码,该代码称为BL0.该代码的作用除了初始化硬件外,还包括将nand flash中最前端的8kb内容(BL1)拷贝到stepping stone中运行,BL1会将剩余的bootloader(BL2)拷贝到SDRAM中。当运行完BL1后,会跳转到SDRAM运行BL2。
启动方式:IROM启动、USB启动、串口启动
地址布局:0地址处是Boot area,是一个镜像区域
启动流程:当选择nand flash启动时,IROM区域会被映射到镜像区域,因此处理器会从IROM取第一条指令开始运行。IROM中存放的是生产厂商固化好的代码(BL0),该代码除了初始化硬件外,还将nand flash中的BL1拷贝到IRAM(internal SRAM)中运行。BL1的作用是将BL2拷贝到IRAM或者SDRAM中,至于是拷贝到IRAM还是SDRAM取决与BL2的大小。
ps:2440和6410中只是逻辑上区分BL1和BL2,产生的bin文件只有一个,也就是说BL1和BL2都在同一个bin文件中。但210不同,210采用的是新版本的uboot,产生的BL1和BL2位于单独的bin文件中;BL1最大为16kb;若BL2不大于80kb,则可以将BL2拷贝到IRAM中,否则就拷贝到SDRAM。