Edit online

固件处理

离线烧录烧录 eFuse 的固件要有一些特殊的操作以提示烧录板烧录结果:

烧录板配置

烧录板的配置应遵循尽量简洁的原则,按下面步骤配置烧录板:
  1. 通过 bm 命令打开 BootLoader 的配置界面。

  2. Board options 界面打开如下配置项,其他配置项可以关闭。

    • Uart0

    • Using SPI0

    • Using SDMC1

    • Using DMA

    • Using WRI

    • Using RTC

    • Using Watchdog

    • Using Efuse/SID

    • Using Syscfg: 打开

    • Using Syscfg: 同时打开 SiP Flash Enable 和 SYSCFG LDO1X enable

  3. BootLoader options > Upgrading 中打开 Upgrading by SD Card

GPIO 控制

由于 GPIO 默认为低电平,无需进行预控制操作,直接在代码中进行逻辑处理即可。具体代码修改如下:

  • PA4 为烧录成功指示灯,显示绿灯

  • PA5 为烧录失败指示灯,显示红灯

--- a/application/baremetal/bootloader/main.c
+++ b/application/baremetal/bootloader/main.c
@@ -147,6 +147,28 @@ int main(void)
    console_init();
    console_set_usrname("aic");

+   int pin_ok;
+   int pin_fail;
+
+    pin_ok = hal_gpio_name2pin("PA.4");
+    hal_gpio_set_func(GPIO_GROUP(pin_ok), GPIO_GROUP_PIN(pin_ok), 1);
+    hal_gpio_direction_output(GPIO_GROUP(pin_ok), GPIO_GROUP_PIN(pin_ok));
+    hal_gpio_set_value(GPIO_GROUP(pin_ok), GPIO_GROUP_PIN(pin_ok), 0);
+
+    pin_fail = hal_gpio_name2pin("PA.5");
+    hal_gpio_set_func(GPIO_GROUP(pin_fail), GPIO_GROUP_PIN(pin_fail), 1);
+    hal_gpio_direction_output(GPIO_GROUP(pin_fail), GPIO_GROUP_PIN(pin_fail));
+    hal_gpio_set_value(GPIO_GROUP(pin_fail), GPIO_GROUP_PIN(pin_fail), 0);
+
+    int result = console_run_cmd("efuse_spienc");  // 加上此句,examples_bare/test-efuse/efuse_burn_spienc_key_cmd.c
+
+    if(result  == 0)
+        hal_gpio_set_value(GPIO_GROUP(pin_ok), GPIO_GROUP_PIN(pin_ok), 1);
+    else
+        hal_gpio_set_value(GPIO_GROUP(pin_fail), GPIO_GROUP_PIN(pin_fail), 1);
+
+    return 0;
+