|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
版本:0.1 | 日期:2026-07-03 | 路径: platforms/components/xtiny/xt_platform_version/
xt_platform_version 是 xtiny 平台版本查询模块,只提供一个函数—— xt_platform_get_version 。运行时调用即可获得编译时自动注入的 Git 版本字符串,用于日志记录、固件上报、OTA 版本比对等场景。
设计理念: 零配置,全自动 。用户无需手动维护版本号——构建系统在编译时通过 git describe 和 git rev-parse 自动生成版本头文件,注入到二进制中。
无外部依赖。不包含任何头文件( xt_platform_version_defs.h 由构建系统自动生成)。
版本字符串由构建系统在编译时注入版本字符串,格式为 "<tag>-<hash>" :
| 场景 | 版本字符串示例 | 说明 |
|---|---|---|
| 打 tag 的正式版本 | v01.02-3d08ea4a | 当前 HEAD 匹配 vxx.yy 格式的 tag |
| 无 tag 的开发版本 | unknown-3d08ea4a | 当前 HEAD 无匹配 tag,但 git 可用 |
| git 不可用 | unknown-unknown | 构建环境无 git 或源码不在仓库中 |
构建时从 git 元数据自动生成版本字符串并注入编译产物,无需手动维护版本号。
以下为函数签名大纲,完整的参数说明、返回值、注意事项请查看 xt_platform_version(平台版本号) 。
| 函数签名 | 说明 |
|---|---|
| const char *xt_platform_get_version(void) | 获取平台版本字符串,返回静态常量指针,无需释放 |
无用户配置宏。版本号完全由构建系统根据 git 元数据自动生成。
| 反模式 | 问题 | 正确做法 |
|---|---|---|
| 对返回值调 free | 返回的是静态常量区指针,释放会导致崩溃 | 直接使用,无需释放 |
| 缓存返回值到局部变量 | 字符串常量不会变,但无坏处 | 每次调用 xt_platform_get_version 即可 |
| 依赖版本字符串格式解析 | 格式可能随构建系统调整 | 仅当不透明字符串使用,不要解析内部结构 |
| 行为 | 说明 |
|---|---|
| git 不可用时返回 unknown-unknown | 离线构建或非 git 环境的兜底值 |
| tag 匹配规则为 vxx.yy | 版本号须为两位点分数字(如 v03.05 ) |
| 返回值指向只读内存 | 跨线程安全,无需加锁 |
| 每次调用返回同一地址 | 内部实现为常量字符串,可反复调用 |