Edit online

镜像烧录媒介及流程

4 Dec 2024
Read time: 3 minute(s)

SD 卡烧录

芯片支持从 SD 卡的 FAT32 文件系统启动。

要求与步骤
对芯片与板子的要求:
  1. 板子 SD 卡接口,并且使用 SDMC1

  2. 芯片没有烧录 跳过 SD 卡的 eFuse

对 SD 卡的要求:
  1. SD 卡要求只有一个分区

  2. SD 卡格式化为 FAT32 文件系统,注意不是 exFAT、或者 FAT16

  3. SD 卡最好为专用卡,里面不要放置太多其他文件

执行步骤:
  1. 拷贝在编译输出目录 (images) 下的两个文件到 SD 卡 FAT32 文件系统的 根目录

  2. 确保 bootcfg 文件的名字为 bootcfg.txt

  3. 将 SD 卡插入板子,重新上电,即可从 SD 卡启动到 Tiny_SPL,并执行烧录。

  4. 烧录完成时,需要拔出 SD 卡,然后重新上电启动。

注: 烧录完成平台并不会主动重启,以防重复进入 SD 卡烧录模式。在 BootLoader 的配置中,勿开启 Enable the interrup to fSDMC,否则可能导致烧录阶段无法识别到 SD 卡。
编译配置

SDK 提供的配置,默认关闭该功能。这里进行配置使能以及注意项的说明。

SPI NAND/NOR 方案

使能 SDFAT32 烧录功能,只需要在 BootLoader 的 menuconfig 中勾选配置:

Bootloader options
    Upgrading
        [*] Upgrading by SD Card
            (1)   SDMC controller id for SD Card        # 对应板卡的 SDMC 控制器

开启 SD 卡烧录功能后,编译完成生成的 bootloader.aic 文件大小不能超过 126K,若超过则可以关闭以下配置来减小 CODE SIZE。

  1. AIC_BOOTLOADER_CMD_SPI_NAND

  2. AIC_BOOTLOADER_CMD_MTD

  3. AIC_BOOTLOADER_CMD_MEM

U 盘升级

芯片支持通过 U 盘的 FAT32 文件系统进行升级。

要求与步骤
对芯片与板子的要求:
  1. 板子使用 USB 接口。

  2. 芯片烧录过镜像,且镜像支持 U 盘升级

对 U 盘的要求:
  1. U 盘只有一个分区。

  2. U 盘格式化为 FAT32 文件系统,注意不得使用 exFAT 或者 FAT16 系统。

  3. 最好为专用 U 盘,且未放置其他文件。

执行步骤:
  1. 在编译输出目录 (images) 中,将两个文件拷贝到 U 盘 FAT32 文件系统的根目录。

  2. 确保 bootcfg 文件的名字为 bootcfg.txt

  3. 将 U 盘插入板子,重新上电,启动过程中则会自动检测 U 盘是否插入,检测到后进入烧录模式进行升级。

  4. 烧录完成时,需要拔出 U 盘,然后重新上电启动。

注: 烧录完成平台并不会主动重启,以防重复进入 U 盘烧录模式。
编译配置

SDK 提供的配置,默认关闭该功能。这里进行配置使能以及注意项的说明。

SPI NAND/NOR 方案

使能 SDFAT32 烧录功能,只需要在 menuconfig 中勾选配置项 AICUPG_UDISK_ENABLE 即可:

Bootloader options  --->
    aicupg setting  --->
        [*] aicupg udisk upgrade on

同时设置 AICUPG_USB_CONTROLLER_MAX_NUM=1。可用的最大 USB HOST 控制器数量,根据实际芯片平台进行设置。

开启 U 盘烧录功能后,编译完成生成的 bootloader.aic 文件大小不能超过 126K,若超过则可以关闭以下配置来减小 CODE SIZE。

  1. AIC_BOOTLOADER_CMD_SPI_NAND

  2. AIC_BOOTLOADER_CMD_MTD

  3. AIC_BOOTLOADER_CMD_MEM

注意事项

在打包镜像前,需要确保 target/<IC>/<Board>/pack 目录下的 image_cfg.json 文件中 device_id 与存储介质所使用的控制器 id 所对应。

例如 eMMC 存储介质使用的控制器为 SDMC0,则应该将 device_id 的值设为 0, 如果 eMMC 存储介质所使用的控制器为 SDMC1,则应该将 device_id 设为 1。

烧录器烧录

本节演示使用硕飞 SP328 烧录器进行烧录的详细流程和步骤,以 D13x 平台的镜像烧录为例。关于烧录器的更多使用方法,可参考官方使用文档以及软件使用文档。如使用软件使用文档,可在启动 SOFI SP32 软件后,点击软件菜单 [帮助] - [查看帮助] 进行阅读。
  1. 在 SDK 根目录执行 scons --menuconfig 打开配置界面进行如下配置:

    Application options  --->
                                [*] Generate burner format image
                            
  2. 编译完成后,在编译输出目录 (images)/burner 下找到烧录器烧录所使用到的镜像,例如 d13x_demo88-nand_page_2k_block_128k_v1.0.0.bin

  3. 新建一个项目。


    burner_make_new_project

    1. 新建项目示例

    烧录器具有自动识别芯片的功能,点击软件菜单 芯片 > 识别芯片型号,选择芯片类型然后点击开始检测,若识别失败,则手动选择芯片型号。

    点击软件菜单 文件 > 新建项目 - [] , 软件将弹出芯片型号选择对话框, 请根据芯片型号选择匹配的型号;

  4. 点击按钮 加载数据…,选择前面准备好要烧录的镜像文件。


    burner_load_file

    2. 加载烧录文件
  5. 项目设置页,进行如下设置:


    burner_project_setting

    3. 项目设置
  6. NAND Flash 烧录设置,仅烧录 NAND 时需要配置,否则可略过。

    点击按钮 NAND Flash 烧录选项,进行如下设置:


    burner_project_nand_setting

    4. NAND Flash 烧录设置
  7. 运行项目,进行烧录。

    点击自动单次即可开始烧录,右侧会显示烧录信息。烧录完成后,即可取下芯片焊接至对应平台进行上电验证。


    burner_project_run

    5. 项目运行
  8. 分区烧录模式,仅 NAND Flash 烧录设置有所不用,其它操作步骤不变。

    导入分区表

    点击NAND Flash 烧录选项,坏块处理方式选择分区模式,点击图标选择输出目录(images)/burnerimage_part_table.bin 文件,完成分区表导入。


    burner_project_import_part_table

    6. 导入分区表