QUICK START / CODE ACQUISITION

代码获取

IMDE(Ingenic MCU Develop Environment)SDK 即将登陆 GitHub,为开发者提供更直接的源码获取、版本查看和后续更新入口。

即将上线:GitHub 仓库地址、源码获取方式和版本下载入口将在正式开放后发布,请关注后续更新。

代码结构说明

6EA1654E-D224-44F2-81C7-7E5BD309FA69.png

图:IMDE SDK 根目录结构

以下目录以工作区中的 proj/ 为根目录。IMDE SDK 的主要文件和目录如下:

|—— app                      --> 应用层,包含示例应用与独立 defconfig
|   |—— config               --> 应用配置,按芯片系列组织
|   |—— uvc_app              --> GC0308 + IMVF + UVC 应用示例
|   |—— CMakeLists.txt       --> 应用层构建入口
|   |—— imde-extension.json  --> IMDE 应用扩展描述
|   |—— Kconfig              --> 应用层配置入口
|—— cmake                    --> CMake 工具链、构建脚本与公共构建逻辑
|—— code                     --> SDK 源码目录
|   |—— bsp                  --> 板级支持包(BSP)与 pinmux 适配
|   |—— common               --> 通用组件(缓存、日志、错误码等)
|   |—— devices              --> 设备初始化与器件适配
|   |—— drivers              --> HAL / LL 寄存器驱动
|   |—— examples             --> 接口与系统示例(driver / hal / ll / freertos / v0)
|   |—— include              --> 对外头文件,按分层组织
|   |—— lib                  --> 基础库(fillcpy、ramdisk、ring_buffer、ring_mem 等)
|   |—— middleware           --> 中间件(音频、摄像头、文件系统等)
|   |—— os                   --> 操作系统适配(baremetal / freertos / posix)
|   |—— soc                  --> SoC 启动、链接脚本与系统代码
|   |—— third_party          --> 第三方开源组件(FreeRTOS、lwIP、FatFS 等)
|   |—— CMakeLists.txt       --> code 目录构建入口
|   |—— Kconfig              --> code 目录配置项
|—— components               --> 可选组件,通过 imde-extension.json 接入构建
|   |—— algorithm            --> TNPU 算法与模型组件
|   |—— imvf                 --> 可复用视频流运行时与示例
|   |—— jpeg_info            --> JPEG 信息写入、图片存储组件与示例
|   |—— CMakeLists.txt       --> 组件聚合构建入口
|   |—— imde-extension.json  --> IMDE 组件扩展描述
|   |—— Kconfig              --> 组件配置入口
|—— config                   --> defconfig 配置目录
|   |—— g32s10               --> G32S10 系列芯片与开发板配置
|—— docs                     --> SDK 内置文档
|   |—— api                  --> API 文档源文件
|   |—— porting              --> 移植说明与工具手册(含 IMDE CLI)
|—— main                     --> 启动代码与默认应用入口
|   |—— core_v0              --> V0 核启动与运行代码
|   |—— core_v1              --> V1 核启动与主要应用入口
|   |—— CMakeLists.txt       --> 启动与应用入口构建定义
|—— tools                    --> 构建工具目录
|   |—— imde                 --> IMDE 命令行工具
|   |—— secure_image         --> 安全镜像配置与签名工具
|—— CMakeLists.txt           --> 顶层构建入口
|—— Kconfig                  --> menuconfig 配置入口
|—— CMakePresets.json        --> CMake configure / build preset 定义
|—— imde.json                --> IMDE 工程描述(构建、配置、产物、工具链与扩展)

三方代码目录

第三方开源组件统一放在 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               --> 陷波滤波组件
|—— cjson                      --> JSON 解析库
|—— jpeg-turbo                 --> JPEG 软件编解码库
|—— newlib                     --> Newlib C 运行库
|—— tinyh264                   --> 轻量级 H.264 解码库
|—— 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 跳转与补全