u-boot:搬迁

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中读取突发信息,则会在早期启动时看到故障.