QUICK START / CODE ACQUISITION

代码获取

Sunflower SDK 仓库托管于 GitHub 服务器中,为开源代码。本节描述了如何从对应的仓库地址中下载源代码。

从 Git 仓库获取 SDK

git clone https://github.com/trevisy/IMDE-Sunflower.git

通过网络下载代码

通过网络下载的方式可直接下载 SDK 包,详细步骤如下:

GitHub 仓库下载 ZIP 入口

代码结构说明

Sunflower SDK 根目录

图: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 跳转与补全