QUICK START / FIRMWARE BUILD

固件编译

本节介绍编译固件的常规流程。开始编译之前,请确认已完成上一节的环境搭建。固件编译同样提供命令行脚本和 VS Code 插件两种方式,可任选其一。

方式一:命令行脚本

项目配置与编译

先选择与目标芯片、开发板匹配的 defconfig,然后配置并编译:

imde list-defconfigs
imde use-defconfig g32s10 g32s10_v1_mini_defconfig
imde configure
imde build
imde use-defconfig 会把选择结果写入 SDK 根目录的 .config;imde configure 生成 CMake / Ninja 构建配置;imde build 构建默认目标,并自动同步配置、在需要时自动执行 configure,因此日常改动后通常只需要重新执行 imde build。如果不想使用 IMDE,也可以直接执行 cmake --preset default 和 cmake --build --preset default。

常用编译参数

需要指定并行任务数、构建目标或查看实际执行的命令时:

imde build -j8                  # 指定并行任务数
imde build --target <目标名>     # 只构建指定目标
imde build --verbose            # 打印实际执行的子命令

修改配置后重新编译

通过 menuconfig 调整配置并保存后,重新编译即可:

imde menuconfig
imde build

生成固件

编译完成后,固件和各阶段产物位于 SDK 根目录的 build/artifacts/,也可以用 IMDE 直接查看:

imde artifacts
build/
|—— artifacts                        --> 默认的固件输出目录
|   |—— g32s10_v1.bin                --> 可直接烧录的固件镜像
|   |—— g32s10_v1.elf                --> 带符号信息的 ELF,用于调试定位
|   |—— g32s10_v1.map                --> 链接映射表
|   |—— g32s10_v1.disasm             --> 反汇编结果,带源码行信息
|   |—— g32s10_v1.dump               --> 反汇编结果,纯指令列表
|   |—— g32s10_v1_prelink.elf        --> 预链接 ELF,用于生成 dump 与 disasm
|   |—— g32s10_v1_prelink.map        --> 预链接映射表
|—— CMakeCache.txt                   --> CMake 配置缓存
|—— build.ninja                      --> Ninja 构建脚本
|—— compile_commands.json            --> 编译数据库,供 IDE 跳转与补全

方式二:VS Code 插件

用 VS Code 打开 SDK 工程后,在命令面板里执行下面的命令即可完成同样的操作,编译产物同样输出到 build/artifacts/。

常用命令

IMDE: Select Defconfig         --> 选择并写入工程 defconfig
IMDE: Configure                --> 生成或更新构建目录
IMDE: Build                    --> 构建当前 SDK 工程
IMDE: FullClean & Build        --> 清理后重新编译
IMDE: Menuconfig               --> 终端 Kconfig 配置界面
IMDE: Show Artifacts           --> 查看构建产物
IMDE: View Map                 --> 交互式内存映射
IMDE: Show Status              --> 查看配置与构建状态
插件侧边栏的 IMDE 视图会显示构建状态和最近一次操作结果;命令与脚本一一对应,两种方式可以混用,读写的是同一份 .config 和 build/ 目录。