Leo*_*ssi 13 embedded embedded-linux u-boot
这个是与u-boot相关的基本问题.
为什么u-boot代码会重新定位?
好吧,如果u-boot正在从NOR闪存或引导ROM空间执行,但是如果它从SDRAM运行,为什么它必须再次重新定位呢?
小智 5
这个问题经常出现.有时也有好的答案.
我同意在开发过程中将构建加载到SDRAM很方便.这对我有用,我一直这样做.我在flash中有一些特殊的启动代码,它不启用MMU /缓存.对于我的u-boot构建,我在flash和ram构建之间切换CONFIG_SYS_TEXT_BASE.我经常以这种方式运行我的开发构建.
实际上,处理MMU /缓存的重新初始化将是一件非常重要的事情.U-Boot从简单性中获益于IMO,因为遗漏了类似的东西.
Denx的技术负责人表达了他的观点.IIRC他的其他职位的措辞比那个更强.我觉得他不喜欢重复自己的印象.
更新:为什么要重新安置.RAM中的内存访问速度比来自ROM的速度快,如果目标没有指令缓存,这尤其重要.从RAM执行允许闪存重新编程; 另外(更小)它允许软件断点带有"陷阱"指令; 它也更像目标的正常操作模式,因此,如果从RAM中读取突发信息,则会在早期启动时看到故障.