关于程序运行 IROM、IRAM
前两天,看到一题目,经查资料有所了解,但是还是有疑问,还请耐心指点个方向。。。
题目大意是在下列选项中,三星的ARM的s5pv210的芯片可以执行程序的存储器有那些?
a、IROM
b、IRAM
c、nand flash
d、SDRAM
给的答案是a、b、d
我个人理解应该是b、d,IRAM不是只读的吗?怎么能运行程序呢?程序的运行不是需要大量快速的读写吗?(其实,个人感觉可以执行程序的只有那几个寄存器,只当题不严谨吧)
个人理解,IROM固化的程序的程序应该也是读到IRAM再进寄存器执行的,但题目的意思好像IROM里的程序是直接读到寄存器执行的。。。
身边没相关书籍,这么细的东西,网上查了好久都不得法。。。
求指点。。。 RAM?ROM
[解决办法]
(1)BL0:是指S5PV210的iROM中固化的启动代码
作用:初始化系统时钟,设置看门狗,初始化堆和栈,加载BL1
(2)BL1:是批在iRAM自动从外扩存储器(nand/sd/usb)中拷贝的uboot.bin二进制文件的头最大16K代码
作用:初始化RAM,关闭Cache,设置栈,加载BL2
(3)BL2:是指在代码重定向后在内存中执行的uboot的完整代码
作用:初始化其它外设,加载OS内核
(4)三者之间的关系:(Interal ROM固化代码)BL0将BL1(bootloader的前16KB--BL1)加载到iRAM;BL1然后在iRAM中运行将BL2(剩下的bootloader)加载到SDRAM;BL2加载内核,把OS在SDRAM中运行起来,最终OS是运行在SDRAM(内存)中的。
[解决办法]
楼上果然给力,佩服