QUICK START / CODE ACQUISITION
代码获取
Sunflower SDK 仓库托管于 GitHub 服务器中,为开源代码。本节描述了如何从对应的仓库地址中下载源代码。
从 Git 仓库获取 SDK
git clone https://github.com/trevisy/IMDE-Sunflower.git
通过网络下载代码
通过网络下载的方式可直接下载 SDK 包,详细步骤如下:
在 GitHub 上打开 Sunflower SDK 仓库,地址为:https://github.com/trevisy/IMDE-Sunflower。
在仓库主界面点击 Code 按钮。
在下拉菜单中选择 Download ZIP。

代码结构说明

图:Sunflower SDK 根目录
Sunflower SDK 中有以下重要的文件和目录,其分类和功能如下所述:
|—— cmake --> CMake 工具链、构建脚本与顶层构建入口 |—— code --> SDK 源码目录 | |—— bsp --> 板级支持包(BSP)与 pinmux 适配 | |—— common --> 通用组件(缓存、日志、错误码等) | |—— devices --> 设备初始化与器件适配 | |—— drivers --> HAL / LL 寄存器驱动 | |—— examples --> 各模块示例(driver / hal / ll / middleware) | |—— include --> 对外头文件,按分层组织 | |—— lib --> 基础库(ring_mem、ramdisk 等) | |—— middleware --> 中间件(音频、摄像头、文件系统等) | |—— os --> 操作系统适配(baremetal / freertos) | |—— soc --> SoC 启动、链接脚本与系统代码 | |—— third_party --> 第三方开源组件(FreeRTOS、lwIP、FatFS 等) | |—— CMakeLists.txt --> code 目录构建入口 | |—— Kconfig --> code 目录配置项 |—— config --> defconfig 配置目录 | |—— g32s10 --> G32S10 系列芯片与开发板配置 | |—— ... |—— docs --> SDK 内置文档 | |—— porting --> 移植说明与工具手册(含 IMDE CLI) |—— main --> 应用入口与启动代码 | |—— core_v1 --> V1 核的启动流程与主函数 |—— tools --> 构建工具目录 | |—— imde --> IMDE 命令行工具 |—— CMakeLists.txt --> 顶层构建入口 |—— Kconfig --> menuconfig 配置入口 |—— CMakePresets.json --> CMake configure / build preset 定义 |—— imde.json --> IMDE 工程描述(构建目录、defconfig 路径、产物与工具链)
三方代码目录
第三方开源组件统一放在 code/third_party/ 目录下,随 SDK 一起获取,不需要单独下载;某个组件是否参与编译,由该目录下的 Kconfig 控制。
code/third_party/ |—— freertos --> FreeRTOS 内核 |—— lwip --> lwIP 网络协议栈 |—— fatfs --> FatFS 文件系统 |—— yaffs --> YAFFS 文件系统 |—— opus --> Opus 音频编解码 |—— libmad --> MP3 解码库 |—— libsamplerate --> 音频重采样库 |—— af_resample --> 音频重采样组件 |—— notch_filter --> 陷波滤波组件 |—— Kconfig --> 三方组件开关 |—— CMakeLists.txt --> 三方组件构建入口
输出目录
执行配置和编译后,SDK 根目录会生成 build/ 作为构建输出目录,固件与调试文件集中在 build/artifacts/。该目录可以整体删除,或执行 imde fullclean -y 清理后重新编译。
build/ |—— artifacts --> 固件与调试文件输出目录 | |—— g32s10_v1.bin --> 可直接烧录的固件镜像 | |—— g32s10_v1.elf --> 带符号信息的 ELF,用于调试定位 | |—— ... --> 其余产物见“固件编译”一节 |—— generated --> 构建时生成的配置与堆栈符号 |—— libimde_*.a --> 各模块编译出的静态库 |—— CMakeCache.txt --> CMake 配置缓存 |—— build.ninja --> Ninja 构建脚本 |—— compile_commands.json --> 编译数据库,供 IDE 跳转与补全