【问题标题】:Uboot custom application images load from flashUboot 自定义应用程序映像从闪存加载
【发布时间】:2021-09-21 20:04:26
【问题描述】:

我有 2 个图像存储在闪存中的预定义地址中,这些图像是根据我可以在启动时测试的某些标准加载的。

有人可以建议一种使用 uboot 的工具(如 bootm 等)以编程方式启动任一映像的方法吗?或者指出这个过程的一个例子。

提前致谢。

【问题讨论】:

    标签: u-boot


    【解决方案1】:

    我假设你用来加载图像的任何方法都需要一个地址,所以在运行它之前设置它。 bootcmd为主入口,bootrun bootcmd基本相同。

    setenv flashload 'fooload $imageflashaddr $loadaddr'
    setenv setimageflashaddr 'if something; then setenv imageflashaddr xxx ; else setenv imageflashaddr yyy; fi'
    setenv bootcmd 'run setimageflashaddr && run flashload && bootm $loadaddr'
    

    u-boot 非常灵活;有很多方法可以做到这一点。这使用环境变量。您也可以从 C 代码或运行时加载的脚本文件执行此操作。


    如果你想用C代码来做,你可以编辑你的板子的C文件(通常在board/vendor_name/board_name.c。你可以定义一个board_late_init()(还有其他的钩子,但是这个通常是一个很好的起点). 您可以使用env_get()env_set() 设置您的地址,以便您的bootcmd 从不同的地方加载。

    【讨论】:

    • 感谢您的回复。我想使用 C 代码方法而不是 env vars。有例子吗?我正在使用 SPL 版本。
    猜你喜欢
    • 2011-03-13
    • 2019-11-07
    • 2016-11-01
    • 2016-03-20
    • 1970-01-01
    • 2011-01-22
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多