为了方便调试通用代码,u-boot支持以应用程序方式运行,称为sandbox模式。
下面是在幽兰代码本上试验的基本步骤如下:

  1. 先下载主线代码:
    git clone https://github.com/u-boot/u-boot.git

  2. 安装依赖软件库
    sudo apt-get install libgnutls28-dev
    sudo apt-get install efitools
    sudo apt install libsdl2-dev

  3. 产生config
    make sandbox_defconfig

  4. 构建
    make all

顺利的话便会产生linux应用程序,名为u-boot

  1. 简单运行
    ./u-boot

  2. 带设备树,模拟终端界面运行
    ./u-boot -d u-boot.dtb -l

  3. 以gdb调试
    gdb –args ./u-boot -d u-boot.dtb -l

默认的看门狗时间太短,很容易溢出,可以修改下面这行代码将其禁止:

static int alarm_wdt_start(struct udevice *dev, u64 timeout, ulong flags)
{
struct alarm_wdt_priv *priv = dev_get_priv(dev);
unsigned int sec;

timeout = DIV_ROUND_UP(timeout, 1000);
sec = min_t(u64, UINT_MAX, timeout);

* priv->timeout_sec = sec100000; // effectively disable it by Raymond**

作者:Zhang Yinkui  创建时间:2025-01-26 15:09
最后编辑:Zhang Yinkui  更新时间:2025-03-06 14:11