嵌入式程序为什么需要boot
嵌入式程序为什么需要boot
比如linux ARM 还有DSP
以前搞DSP ,网上说片上只有1kb空间用来放应用程序,说一般程序都大于1kb,所以需要引导,写一个bootloader将应用程序从flash中拷贝到片上、。。。。。。。
但是,感觉无厘头啊,像嵌入式板子的话,我个人觉得一般都是上电直接将程序从flash拷贝到sdram或者ddr,
然后运行就可以了,什么片上1kb的空间,难道还要从sdram或者ddr拷贝到片上1kb?
看了dsp的bootloader特别强调这个片上1kb空间,但是arm的boot好像就没说这个,好像更多的功能是初始化设备啥的。毕业论文
所以对boot的作用有点迷惑了,我的理解是,就是上电直接把flash中存放的程序拷贝到sdram或者ddr上面,这个过程叫做boot,拷贝到内存之后,程序自己就运行了。大家怎么看啊
不同型号的ddr需要不同的配置参数以及时钟,这个需要boot控制的。nor flash可以直接片上执行,不需要配置就可以寻址(已经映射到soc的地址空间),但为什么不需要配置就不是很清楚了,没具体研究过。
也就是说,刚上电的时候,连ddr和sdram都是不能使用的,只能先将从flash拷贝出来的boot代码放在
片上1kb的空间上运行,片上1kb的程序完成对ddr配置之后,就可以放心使用ddr的大内存了,这样就可以
比较自由的将程序从flash上拷贝到ddr运行了,至于为什么flash不用配置,我想应该是由板子启动方式确定的,不需要配置吧。