xt-sdk 文档
v1.0.3
xt-sdk 嵌入式 SDK API 参考
Toggle main menu visibility
载入中...
搜索中...
未找到
发布说明
v1.0.3 (2026-06-26)
不向后兼容的变更
xt_fs 彻底删除,强制迁移到 xt_vfs。
v1.0.2 中
xt_fs.h
仅标记 deprecated,现在已完全删除(
7e34fbb
、
dc7c50a
)。
任何
#include "xt_fs.h"
将编译失败,必须改为
#include "
xt_vfs.h
"
。
xt_fs_init()
(无参)→
xt_vfs_init
(&cfg)
,需传入
xt_vfs_config_t
配置结构体。
xt_fs_flush(fd)
+
xt_fs_sync(fd)
合并为
xt_vfs_fsync(fd)
。
所有类型、宏前缀从
xt_fs_*
/
XT_FS_*
改为
xt_vfs_*
/
XT_VFS_*
(见迁移指南)。
XT_FS_IS_VALID_FD
/
XT_FS_IS_VALID_DIR
宏删除,不再需要(VFS Core generation 自动校验)。
宏默认值变化:
XT_VFS_PATH_MAX
(256→128)、
XT_VFS_MAX_FILES
(16→8)、
XT_VFS_MAX_DIRS
(8→4),如需更大值通过编译宏覆盖。
**迁移指南**:完整映射表见
components/xt_vfs/xt_fs_migration.md
:1-261
。核心步骤:
全局替换
xt_fs_
→
xt_vfs_
、
XT_FS_
→
XT_VFS_
。
xt_fs_init()
改为:
c
xt_vfs_config_t
cfg = { .max_mounts = 4, .max_files = 16, .max_dirs = 8, .max_threads = 4 };
xt_vfs_init
(&cfg);
添加后端挂载(Windows 平台由
xt_platform_preinit
自动完成)。
int32_t fd
→
xt_vfs_fd_t
fd
(类型兼容,建议用新类型名)。
**Linux 模拟器**:原
platforms/linux/simulator/src/xt_fs.c
(880 行)已删除,Linux 平台通过
xt_platform_preinit
+
xt_vfs_native(原生文件系统)
提供默认 VFS 后端。
xt_task
API 返回值变更。
xt_task_setup()
从
void
改为
xt_err_t
(
components/xt_task/xt_task.h
:107
),目前始终返回
XT_EOK
。
xt_task_start()
从
void
改为返回
xt_task_t
*
(
xt_task.h
:119
),分配失败返回
NULL
。
xt_task_timer_handler()
完全移除——task 定时器管理已内聚到
xt_timer2
回调机制。
struct
xt_task
内部字段变化:移除
wait_timeout
、
timer_active
,新增
xt_timer2_t
timer
——直接访问 task 内部字段的代码将编译失败。
新增
xt_task_is_running(xt_task_t *task)
查询任务是否在运行(
xt_task.h
:138
)。
新增
xt_task_sys_reset()
重置所有任务状态(仅测试用)(
xt_task.h
:146
)。
xt_task_call_subtask
宏分配失败时不再挂起父任务(
break
跳出),旧依赖"失败也挂起"的行为受影响。
HAL spilcd 接口重构。
三个配置函数弃用并降级为空宏桩(
platforms/components/xtiny/xt_hal/xt_hal_spilcd.h
:195-198
):
xt_hal_spilcd_set_spi_bidir()
→ 空宏
xt_hal_spilcd_set_dcx_mode()
→ 空宏
xt_hal_spilcd_set_dummy_cycles()
→ 空宏
xt_hal_spilcd_setup()
现在根据
dcx_pin
和
sdi_pin/sdo_pin
参数自动判断 3 线/4 线模式,不再需要显式调用上述三个配置函数。
新增
xt_hal_spilcd_set_freq(lcd_id, freq_hz)
设置 SPI 时钟频率(
xt_hal_spilcd.h
:143
),lm620 平台支持 13/26/39/52 MHz 四档。
**迁移指南**:删除对已弃用三个函数的调用,在
xt_hal_spilcd_setup()
中正确传入引脚号,并显式调用
xt_hal_spilcd_set_freq()
设置频率。
SDK 基础能力
Windows Simulator Backtrace 打印。
崩溃时自动输出调用栈到
backtrace_dump.txt
(
platforms/windows/components/platform_entry/backtrace.c:1-145
)。
基于 SEH +
dbghelp.dll
动态加载实现,支持 x86_64 和 i386。
xt run
完成后自动解析 dump 文件,终端打印函数名和文件行号(
platforms/windows/xt_hook.py:151-243
)。
使用
addr2line
和
objdump
进行地址到符号的转换。
xt_log assert 回调注册机制。
新增
xt_assert_cb_t
回调类型(
platforms/components/xtiny/xt_log/xt_log.h
:42
)。
新增
xt_assert_set_callback(cb)
注册回调(
xt_log.h
:71
),
cb=NULL
取消注册。
xt_assert_failed()
在打印错误消息前先调用注册的回调(Windows/Linux 均已实现)。
使用场景:在 assert 触发时执行自定义日志记录、状态快照或安全关闭流程。
xt_platform_preinit 自动挂载组件。
Windows 和 Linux 平台均提供此组件(
platforms/windows/components/xt_platform_preinit/
、
platforms/linux/components/xt_platform_preinit/
)。
platform_entry/main.c
在
xt_main()
前自动调用
xt_platform_preinit()
,完成 VFS 初始化 + native 后端挂载到根目录
"/"
。
用户无需手动
xt_vfs_init
/
xt_vfs_mount
,启动后直接
xt_vfs_open
("/xxx.txt", ...)
即可使用。
构建依赖自动包含
xt_vfs(虚拟文件系统)
和
xt_vfs_native(原生文件系统)
。
xt_vfs_native 提升为跨平台组件。
从测试目录
tests/xt_vfs/
迁移到
components/xt_vfs_native/
(1600 行实现),同时支持 Windows 和 Linux。
全 POSIX 化改造:基于 CRT(
fopen
/
fread
/
fwrite
)和 POSIX 标准接口(
stat
/
opendir
/
readdir
/
truncate
/
statvfs
等),仅
native_statfs
保留 Windows 平台分支。
提供
xt_vfs_native_create(base_path)
/
xt_vfs_native_destroy(ctx)
/
xt_vfs_native_cleanup(ctx)
管理接口。
可通过
xt_vfs_native_root
选项配置默认根目录。
set_area 使用 XT_SOC_ALIGN 对齐缓冲区。
LCD 示例中栈上的
uint16_t buf[2]
改为
XT_SOC_ALIGN(XT_SOC_CACHE_LINE_SZ) uint16_t buf[2]
。
lm620 DMA 控制器要求传输缓冲区必须 32 字节对齐,避免数据传输异常。
组件清单
components/xt_task
**基于
xt_timer2
/ xt_event v2 重构**:定时器管理从主动轮询迁移到被动回调模式(
248e318
)。
内嵌
xt_timer2_t
替代旧的
wait_timeout
/
timer_active
字段,通过
_xt_task_timer_cb
回调自动唤醒。
xt_task_setup
改为幂等——多次调用安全,不会重置运行中任务。
xt_task_call_subtask
增加分配失败检查,失败时
break
而非挂起父任务。
XT_TASK_BEGIN/END
宏抑制
-Wimplicit-fallthrough
编译器警告。
xmake.lua 新增配置选项:
xt_task_timer2_pool_size
(默认 0)和
xt_task_timer2_use_pool
(默认 0)。
新增 631 行模块文档(
components/xt_task/xt_task.md
),覆盖数据结构、API 参考、宏参考、事件/超时协作、父子任务机制、典型用法。
components/xt_vfs
xt_fs 的替代组件,在 v1.0.2 基础上完全承接文件系统职责。
迁移指南
components/xt_vfs/xt_fs_migration.md
(261 行),提供逐函数、逐类型、逐宏的完整映射表。
测试扩展
tests/xt_task
新增 51 项单元测试(
xt_main.c:1806
行),覆盖 9 大分组:基本生命周期(10)、delay(5)、wait_event(5)、wait_until(8)、subtask(6)、并发多任务(4)、边界异常(5)、定时器/事件集成(5)、事件+超时竞争(3)。
使用自定义 tick 精确控制时间推进,
run_until_idle()
辅助函数安全阀 1000 轮防死循环。
tests/xt_vfs_basic
新增 42 项 VFS 基础功能验证测试(
xt_main.c:1098
行),覆盖 init/deinit(2)、open/close(8)、read/write(3)、seek/tell(4)、stat/fstat(3)、remove/rename(3)、mkdir/rmdir(3)、目录操作(6)、truncate(3)、access/sync/statfs/fsync(4)、错误处理(3)。
VFS 初始化由
xt_platform_preinit
自动完成,测试中无需手动 mount。
tests/xt_vfs
测试扩展至 70 项(7 组配置),新增 CWD 相对路径、utime、strerror/errno、挂载点灵活性等测试分组。
7 组配置覆盖:默认全功能(70 项)、静态内存(22)、最小裸机(20)、相对路径(73)、裸机无锁(22)、堆模式无目录(62)、极小资源(22)。
测试格式统一。
xt_event(事件管理)
、
xt_event_and_timer
、
xt_fal(Flash 抽象层)
、
xt_timer(软件定时器)
、
xt_timer2
五个测试文件统一使用
@name/@{}
doxygen 分组格式。
移除旧的
/* === [...] === */
section 分隔符,与
xt_vfs(虚拟文件系统)
/
xt_task
格式保持一致。
xt_timer(软件定时器)
修复预存编译问题:补
xt_timer.h
include +
xt_task
依赖。
支持的平台
windows/simulator
新增
backtrace.c
:崩溃调用栈捕获与打印(145 行)。
新增
xt_platform_preinit
组件:自动 VFS 初始化与挂载(Windows / Linux 均支持)。
新增
xt_vfs_native(原生文件系统)
组件(现为跨平台组件,位于
components/xt_vfs_native/
):基于 POSIX + CRT 的 VFS 原生后端。
xt_log.c
新增 assert 回调实现。
xt_hal_spilcd.c
删除三个已弃用函数的桩实现。
simulator/xmake.lua
移除
add_deps("xt_fs")
。
xt_hook.py
新增 backtrace 解析函数(77 行新增)。
backtrace.c
抑制 GetProcAddress 类型转换警告(
-Wcast-function-type
)。
linux/simulator
**平台目录重构为与 Windows 一致的组件化架构**(
9389454
):
引入
components/
组件目录,每个组件独立子目录(含
xmake.lua
+ 源文件)。
组件包括:
cmsis_os2
、
platform_entry
、
xt_hal(HAL 驱动总入口)
(12 个 HAL 桩)、
xt_log
、
xt_mem(内存管理)
、
xt_mobile(蜂窝网络)
、
xt_ota(OTA 升级)
、
xt_platform_preinit
、
xt_safe(安全功能)
、
xt_soc
。
simulator/xmake.lua
改为组件聚合模式,通过
includes
引入
components/
并聚合为
xt_core
静态库。
新增
configs.lua
(声明
has_cmsis_os2
)、
xt_hook.py
(Linux 适配版,支持
info
/
greet
/
run
/
after_build
task)。
新增
xt_platform_preinit
组件,通过
platform_entry/main.c
在
xt_main()
前调用,完成 VFS 初始化 + xt_vfs_native 后端挂载到
"/"
。
toolchain.lua
对齐 Windows:新增
set_sdkdir
、
set_bindir
、指针 cast 抑制 flag(
-Wno-int-to-pointer-cast
)。
顶层
xmake.lua
对齐 Windows:去除
xt_sdk_platform
phony target。
从 Windows 复制
xt_soc.h
(1032 行完整引脚定义)和 7 个缺失 HAL stub(
dac
/
i2c
/
pin_mux
/
pwm
/
rtc
/
spi
/
uart
)。
所有 HAL 源文件对齐至 Windows stub 风格(
xt_hal_core(核心驱动)
/
adc
/
pm
/
spilcd
)。
保留 Linux 特有实现:
cmsis_os2_posix.c
(POSIX pthread 模拟 RTOS)、
xt_mobile.c
额外 7 个函数。
删除
simulator/src/xt_fs.c
(880 行),Linux 平台暂无默认 VFS 后端。
示例清单
examples/platform_specific/lm620/lcd_st7735_deepsleep
新增深度睡眠唤醒 LCD 完整演示(583 行),演示 PSM DPM 框架下的 LCD 恢复流程。
支持 PD(掉电)和 AON(常电)两种引脚模式切换验证。
包含详尽的 RGB565_SWAP 异常说明和 DPM 修复方案文档。
examples/platform_specific/lm620/
目录重命名
e837n-adckey
→
e837n_adckey
lcd-st7735
→
lcd_st7735
lcd-st7789
→
lcd_st7789
统一使用下划线命名规范,避免与 xmake target 名称中的连字符混淆。
examples/platform_specific/lm620/lcd_st7735
适配 HAL spilcd 接口重构:删除
set_dcx_mode
/
set_dummy_cycles
/
set_spi_bidir
调用,改用
xt_hal_spilcd_setup()
传入引脚 +
xt_hal_spilcd_set_freq()
。
新增频率循环切换演示(每 100 帧切换 13/26/39/52 MHz),验证
set_freq
接口。
set_area
栈缓冲区改为
XT_SOC_ALIGN
对齐。
examples/platform_specific/lm620/lcd_st7789
set_area
栈缓冲区改为
XT_SOC_ALIGN
对齐。
examples/platform_specific/lm620/audio_dev
适配 xt_fs → xt_vfs 迁移:
xt_fs_*
调用改为
xt_vfs_*
,新增
xt_vfs_init
(&cfg)
+ 挂载。
examples/platform_specific/lm620/audio_test
test_record_to_file.c
/
test_tts_to_file.c
适配 xt_fs → xt_vfs 迁移。
examples/system/xtiny
example_main.c
迁移到 xt_timer2/xt_event v2 API:定时器改用
xt_timer2_setup/start/handler
,主循环改用返回值分支逻辑。
xapp_timer1_cb
签名适配
xt_timer2_cb_t
类型。
v1.0.2 (2026-06-18)
不向后兼容的变更
xt-cli 作为独立仓库。
xt-cli 已迁移到独立 PyPI 包,安装方式变更。
旧安装方式
pip install tools/xt-cli
不再可用。
**迁移指南**:
pip uninstall xt-cli
pip install xt-cli
新增
.xt-sdk-version
文件(
V1.0.2
),xt-cli 通过此文件识别 SDK 版本。
xt-cli 的文档(产品定义、设计文档、hook 规范、开发流程等)已从
docs/tools/
移除,完整文档见独立仓库。
Hook 脚本导入方式变更。
旧方式:
from xt_cli.models import BuildContext
、
from xt_cli.hooks import run_lifecycle_hook
(子模块深路径导入)。
新方式:
import xt_cli
后通过
xt_cli.BuildContext
、
xt_cli.run_lifecycle_hook
访问。
如果你的工程有自定义 hook 脚本(
xt_hook.py
),需要更新导入方式。
xt_core 组件彻底重组,拆分为多个独立组件。
components/xt_core/
目录已完全移除,原内容分散到以下独立组件:
components/xt_std/
—— 标准库(
xt_error(错误码)
、
xt_list(链表)
、
xt_rb
、
xt_crc(CRC 校验)
、
xt_bit(位操作)
、
xt_macro(通用宏)
、
xt_types(类型定义)
、
xt_utils(工具函数)
)。
components/xt_task/
—— 事件/定时器/协程框架(
xt_event(事件管理)
、
xt_timer(软件定时器)
、
xt_timer2
、
xt_task
)。
components/xt_sys_event/
—— 系统事件适配层(GPIO/UART 中断 → xt_event 转换)。
platforms/components/xtiny/
—— 平台接口层(HAL、FS、LOG、MEM、OTA、MOBILE、WIFISCAN、SAFE 等头文件)。
#include "
xtiny.h
"
仍然有效,但其内部包含已变化:
旧
xtiny.h
包含所有实现头文件(
xt_event(事件管理)
、
xt_task
、
xt_timer(软件定时器)
等)。
新
xtiny.h
仅含平台接口声明,task/event/timer 需通过
#include "
xt_task.h
"
单独引入。
旧头文件路径(如
#include "
xt_error.h
"
)在新组件下仍有效,因为
标准工具库
的
add_includedirs
设为
public
。
构建系统:SDK 组件默认不编译,由平台显式启用。
所有 SDK 组件通过
target()
包装函数声明,默认
set_default(false)
。
平台
xmake.lua
通过
add_deps(...)
显式启用所需组件。
用户工程中若直接依赖了某个组件,需要通过
add_deps
声明,否则该组件不会被编译。
xt_fs 已过时,推荐迁移到 xt_vfs。
platforms/components/xtiny/xt_fs/xt_fs.h
中所有 API 已标记
__attribute__((deprecated("Please use
xt_vfs(虚拟文件系统)
instead.")))
。
新工程应使用
components/xt_vfs/
提供的虚拟文件系统 API。
xt_vfs 支持多后端挂载、两级锁、fd generation 防悬空等能力,API 与 xt_fs 不完全一致,需要适配。
xt_event v2 升级——event_id 类型变更。
xt_event_id_t
从
uint8_t
(最多 256 个事件 ID)扩展为
uint32_t
。
xt_event_subscribe
等 API 返回值从
uint8_t
变更为
xt_err_t
(
int32_t
)。
SDK 基础能力
XT_SDK_ENV
初始化顺序调整。
环境变量初始化提前到语言/编译选项设置之前,方便平台
toolchains.lua
使用(
c672852
)。
平台预设 xmake 配置支持。
平台可通过
platforms/<target>/configs.lua
声明能力(如
has_cmsis_os2
)。
新增
scripts/configs_to_macro.lua
,自动将平台配置转为全局 C 宏(如
HAS_CMSIS_OS2=1
)。
新增
.xt-sdk-version
标记文件。
根目录
.xt-sdk-version
记录当前 SDK 版本号,供 xt-cli 识别。
组件清单
components/xt_socket
新增跨平台 socket 抽象组件,统一 Windows/Linux/lwip 的 socket API。
提供
xt_socket_setup()
/
xt_socket_cleanup()
平台初始化。
xt_socket_read()
/
xt_socket_write()
内联封装,含 EINTR 重试。
消除
read
/
write
宏污染问题。
支持非阻塞模式设置、错误码查询、
select
兼容宏。
components/xt_vfs
新增虚拟文件系统组件,替代已过时的
xt_fs
。
支持多后端同时挂载(如
/flash
=LittleFS,
/sd
=FatFS,
/ram
=RAMFS)。
两级锁设计:全局锁保护元数据,每挂载点独立锁保护 I/O。
fd generation 编码机制,防止 use-after-close。
编译期特性裁剪:线程安全、工作目录、目录操作均可选。
提供 35 个公开 API,覆盖文件操作、目录操作、路径管理、错误信息。
components/xt_task
包含
xt_event(事件管理)
(事件发布订阅)、
xt_task
(协程调度)、
xt_timer(软件定时器)
/
xt_timer2
(定时器)。
**xt_event v2 核心升级**:
event_id 从
uint8_t
扩展为
uint32_t
。
去重匹配订阅:相同
(event_id, event_cb)
对去重,仅更新
user_data
。
dispatch 上下文栈:支持最多 5 层嵌套 dispatch。
队列快照机制:回调中 publish 的新事件在下次 handler 才处理。
跨帧 unsubscribe:嵌套 dispatch 中安全取消外帧事件订阅。
OS 亲和性支持(
XT_EVENT_OSAFFINITY_ENABLE
)。
**xt_timer v1 升级**:
UID 保护:timer_id 编码
(uid << 8) | slot
,防止 use-after-free。
三态状态机(IDLE/ARMED/FIRING),解决"回调中 restart"竞态。
Magic 校验检测内存踩踏。
xt_timer_stop
安全宏:stop 后自动将用户变量置为
XT_TIMER_INVALID_ID
。
**xt_timer2 全新对象化定时器**:
new/delete 对象化 API,用户管理内存。
三阶段 handler:快照摘取 → 回调执行 → remain 计算。
自定义 tick 模式(
xt_tick2_inc/set/get
),方便单元测试。
内存池支持(
XT_TIMER2_USE_POOL
),预分配数组避免动态分配。
FREE_MAGIC 防护,double-free 安全。
有符号差值回绕安全。
components/xt_std
标准库组件,从原
xt_core
中独立。
包含:
xt_error(错误码)
(错误码)、
xt_list(链表)
(双向/单向链表)、
xt_rb
(环形缓冲区)、
xt_crc(CRC 校验)
(~20 种 CRC 算法)、
xt_bit(位操作)
(位操作)、
xt_macro(通用宏)
(工具宏)、
xt_types(类型定义)
(基础类型)、
xt_utils(工具函数)
。
components/xt_sys_event
系统事件适配层,桥接 HAL 中断到 xt_event 系统。
GPIO 中断通过
xt_event_publish(XT_GPIO_INT)
分发到用户回调。
UART RX/TX 完成事件通过类似机制桥接。
components/xt_unity
新增 port 层对接(
xt_unity_port.h
/
xt_unity_port.c
)。
Unity 测试输出通过
xt_printf
重定向,支持整行缓冲刷新。
新增
add_deps("xt_core")
依赖。
components/xt_board
新增音频 I2S Codec 板级配置。
xt_board_e837n_v01.h
:新增 10 个 I2S 引脚宏(MCLK/WS/SCK/DIN/DOUT 及对应 Pin Mux)。
xt_board_simulator.h
:新增对应占位宏。
components/xt_fal
在目录重组中误删后恢复(
e4cee00
)。
更新依赖关系。
platforms/components/xtiny
新增平台接口层,集中管理所有 xtiny 接口头文件。
xtiny.h
重构为纯接口聚合头,不再包含实现组件。
新增
xt_platform_get_version()
接口声明。
各子模块头文件(
xt_mem.h
、
xt_log.h
、
xt_ota.h
、
xt_mobile.h
、
xt_wifiscan.h
等)从原
xt_core
迁移至此。
xt-cli 独立化
tools/xt-cli/
目录完全移除,约 40 个文件、12000 行代码迁移到独立仓库。
docs/tools/
下 8 个 xt-cli 相关文档全部移除。
Hook 脚本导入方式从深路径子模块导入改为顶层
import xt_cli
。
修复独立仓库后 hook 加载失败的问题(
1b64e84
)。
支持的平台
windows/simulator
目录结构重构为组件化:
src/
+
include/
→
components/
(每个组件独立目录,含
xmake.lua
)。
组件包括:
cmsis_os2
、
platform_entry
、
xt_fs
、
xt_hal(HAL 驱动总入口)
(14 个 HAL 桩)、
xt_log
、
xt_mem(内存管理)
、
xt_mobile(蜂窝网络)
、
xt_ota(OTA 升级)
、
xt_safe(安全功能)
、
xt_soc
。
新增
configs.lua
声明
has_cmsis_os2
能力。
xt_hook.py
适配独立仓库导入方式。
linux/simulator
移除
xt_soc.h
的冗余 include。
xt_ota.c
更新依赖。
示例清单
examples/network/socket_multi_platform
新增多平台 socket 综合示例(15 个 demo),演示
xt_socket(跨平台 Socket)
组件的跨平台能力。
tests/xt_event
测试用例大幅扩展(从基础测试扩展为 25+ 测试用例),覆盖 UID 保护、重入保护、嵌套 dispatch 等场景。
tests/xt_event_and_timer
新增事件与定时器联合测试(
xt_timer(软件定时器)
v1 测试)。
tests/xt_timer
新增定时器 v1 独立测试(18 测试用例)。
tests/xt_timer2
新增定时器 v2 独立测试(自定义 tick 模式、内存池、回绕安全等)。
tests/xt_fal
新增 Flash 抽象层测试。
tests/xt_vfs
新增虚拟文件系统测试和 RAMFS 后端示例。
examples/platform_specific/lm620/
音频示例重组:
audio
→
audio_dev
(音频设备层测试:codec 回环/播放/录制、DAC 播放)。
新增
audio_svc
(音频服务层测试:文件播放、TTS 播放,含音频数据镜像文件)。
新增
audio_test
(综合音频测试:监控、纯播、录制到文件、TTS 到文件等)。
lcd-st7735
/
lcd-st7789
示例简化,移除内联的 LCD 驱动文件(
xt_lcd_st7735.c/.h
、
xt_lcd_st7789.c/.h
、
xt_config.h
),改用组件化引用。
新增
xt_vfs(虚拟文件系统)
示例(lm620 平台 xt_vfs 使用示例)。
examples/peripherals/
所有外设示例(
adc
、
dac
、
gpio
、
i2c
、
pm
、
pwm
、
rtc
、
spi
、
uart
)更新依赖,适配
标准工具库
/
xt_task
替代旧
xt_core
。
examples/network/
socket
、
socket-nonblock
、
socket-reconnect
、
mobile
、
aliyun
示例更新依赖。
examples/storage/fs
移除过时的
xt_fs
示例。
examples/system/
cmsis_os2
、
log
、
xtiny
示例更新依赖。
examples/build_system/deps_demo
更新安装命令和依赖 hash。
xt_deps.jsonc
版本约束更新。
examples/build_system/hook_demo
更新 hook 脚本适配独立仓库导入方式。
v1.0.1 (2026-06-05)
不向后兼容的变更
xtiny_core 合并到 xt_core。
xtiny_core
不再作为 git submodule,所有代码直接放到
components/xt_core/
下。
不再需要
git submodule update --init --recursive
。
.gitmodules
已移除。
头文件路径:
#include "
xtiny.h
"
仍然有效(在
components/xt_core/
根)。
xt-cli 命令格式变更。
移除
--clean
/
--fullclean
参数,改为多 task 语法:
xt clean build
/
xt fullclean build
。
run
task 从 builtin 移除,改为平台 hook 实现(目前仅 Windows 平台支持
xt run
)。
配置文件名:
.xt_conf.jsonc
改为
xt_conf.jsonc
(首次运行自动迁移)。
xt-cli hook 签名统一为 5 参数。
handle(ctx, global_args, shared_args, self_args, unknown_args)
。
旧单参数签名不再兼容,hook 脚本需要更新。
SDK 基础能力
根
xmake.lua
默认编译模式设为
debug
(
set_defaultmode("debug")
)。
构建后自动复制
compile_commands.json
到 SDK 根目录。
新增
XT_SDK_BOARD
/
XT_SDK_CONFIG_HEADER
全局宏注入。
组件清单
components/xt_board
新增板级抽象组件,提供统一的板级配置接口(
xt_board.h
)。
支持多板定义:
e68_v01
、
e837n_v01
、
simulator
。
编译时必须指定
--board
参数或设置
XT_SDK_BOARD
环境变量。
components/xt_unity
集成 Unity v2.6.1 测试框架(MIT License)。
提供
unity.c
/
unity.h
/
unity_internals.h
。
components/xt_core
内部扩展。
components/audio/
—— 音频子系统:设备抽象层(
xt_audio_dev.h
)、驱动对接(
xt_audio_dev_drv.h
)、服务层(
xt_audio_svc.h
)、TTS(
xt_audio_tts.h
)、仲裁器(
xt_arb.h
)。
components/cmsis_rtos2/
—— CMSIS RTOS2 兼容层。
components/utils/
—— 工具集:CRC、环形缓冲区、位操作、链表等。
core/
—— 核心模块:事件(
xt_event(事件管理)
)、任务(
xt_task
)、定时器(
xt_timer(软件定时器)
)、错误码(
xt_error(错误码)
)。
hal/
—— HAL 接口扩展:ADC、DAC、I2C、I2S、PWM、RTC、SPI、SPI LCD、UART、WDT、GPIO、Pin Mux、PM、Timer 等。
新增 Flash 抽象层(
xt_fal(Flash 抽象层)
)、文件系统(
xt_fs
)、OTA(
xt_ota(OTA 升级)
)、安全(
xt_safe(安全功能)
)、移动网络(
xt_mobile(蜂窝网络)
)、Wi-Fi 扫描(
xt_wifiscan(Wi-Fi 扫描)
)等接口头文件。
xt-cli (v1.2.0)
Parser 架构重写。
移除 argparse subparsers,统一 parser 支持多 task 并行和参数任意位置。
分段解析:先预解析全局 option,再按 task 段解析。
--help
按作用域分类显示,标注
[builtin]
/
[platform/<name>]
/
[project]
。
Option 作用域系统。
7 种层级:全局 > builtin > platform > project shared > task 自身。
shared_args
独立 parser 预解析,传递给所有 task。
新增 task:
fullclean
(直接删除
.xmake
和
.build
目录)、
deps
(依赖管理)。
工程版本追踪管理系统。
xt build
自动生成/更新
xt_vers.jsonc
(已加入
.gitignore
)。
xt_deps.jsonc
声明版本约束,支持
>=
/
<=
/
>
/
<
/
==
/
!=
和 semver。
新增全局 option:
--dirty
、
--no-track
、
--strict
、
--sync-deps
。
xt deps --hash <path>
计算 SHA-256;
xt deps --update-deps-require
更新依赖版本。
xt config
无参数展示所有配置;支持
--board
全局/持久化。
支持的平台
windows/simulator
—— 新增 6 个 HAL 桩实现(DAC、I2C、Pin Mux、PWM、RTC、SPI)。
示例清单
examples/build_system/deps_demo
—— 依赖管理演示,含单元测试。
tests/xt_event
—— xt_event 模块单元测试。
examples/platform_specific/lm620/amr
—— AMR 编解码示例。
examples/platform_specific/lm620/audio-dev
—— 音频设备综合示例(仲裁、TTS、文件播放)。
lm620 示例重组:
test-*
→ 正式名称(
audio
、
cmd
、
mqtt
、
ota
、
wifiscan
等),源码从
src/
提升到示例根目录。
示例目录新增分类:
examples/peripherals/
(9 个外设)、
examples/network/
(socket 等)、
examples/storage/
(fs)。
v1.0.0 (2026-04-24)
SDK 基础能力
统一提供 SDK 构建入口。
使用根目录
xmake.lua
作为统一入口。
通过
XT_SDK_ROOT
、
XT_SDK_TARGET_PATH
、
XT_SDK_TOOLCHAIN
、
XT_SDK_PROJECT_PATH
组织构建上下文。
构建产物默认输出到工程目录自己的
.build/<platform>_<target>
目录。
提供组件化的公共能力。
应用工程、平台适配层、公共组件按目录解耦。
组件通过
add_deps(...)
建立依赖关系。
用户工程与 SDK 组件可以通过同名组件优先级机制协同工作。
支持的平台与目标
windows/simulator
linux/simulator
lm620/r4f4
版本信息能力
提供
xt_sdk_version(SDK 版本号)
组件。
XT_SDK_VERSION
提供字符串版本号。
XT_SDK_VERSION_NUM
提供数字版本号。
提供
XT_SDK_PLATFORM
、
XT_SDK_TARGET
及对应枚举宏。
提供
XT_SDK_GIT_VERSION
、
XT_SDK_IS_DIRTY
、
XT_SDK_PLATFORM_GIT_VERSION
、
XT_SDK_PLATFORM_IS_DIRTY
、
XT_SDK_IS_TAGGED
。
当前 SDK 版本以
components/xt_sdk_version/xt_sdk_version.h
中的版本定义为准。
版本信息支持三级优先:描述文件 > git > 默认值。
组件清单
components/a
最小组件示例。
用于演示 SDK 组件的基本声明方式与依赖组织方式。
components/cJSON
第三方 JSON 组件封装。
用于为 SDK 或应用工程提供 JSON 解析与生成能力。
components/xt_core
SDK 核心公共组件。
提供 xtiny_core 相关基础能力,例如任务、事件、定时器、通用工具和 hal_event 适配层。
是大多数应用工程和平台适配层依赖的核心基础组件。
components/xt_sdk_version
SDK 版本信息组件。
提供字符串版本号、数字版本号、平台/target 宏以及 git / dirty / tagged 相关宏。
供需要读取 SDK 构建期版本信息的组件或应用工程依赖使用。
示例清单
examples/get_started
入门示例目录。
用于提供最小可运行示例,帮助快速理解 SDK 的基本使用方式。
examples/build_system
构建系统示例目录。
用于演示应用工程、组件依赖、版本信息输出等构建相关能力。
examples/system
系统能力示例目录。
用于演示 RTOS / CMSIS / 系统接口等系统级能力。
examples/platform_specific
平台专项示例目录。
提供各平台外设与功能示例(ADC、Audio、GPIO、I2C、SPI、UART、LCD、FS、MQTT、OTA、Socket 等)。
当前包含 lm620 平台示例。
xt-cli
仓库内置
tools/xt-cli
,用于简化 SDK 配置、编译、清理和运行流程。
支持
build
/
clean
/
fullclean
内置命令,以及通过 hook 扩展的自定义 task。
支持 option 作用域:全局 > builtin/platform/project shared > task 自身,共 7 种层级。
Hook 按优先级加载:工程 > 平台 > 内置。
支持
before
/
after
生命周期 hook,用于在构建、清理、运行前后插入自定义逻辑。
xt-cli
现作为独立仓库维护,独立发布记录见其自身 RELEASE。
xt-sdk 文档
生成于
, 为 xt-sdk 文档使用
1.17.0