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/ 目录。