接入平台须运行 FreeRTOS,芯片和开发板不限于某一家厂商。本章说明如何取得匹配的 SDK 并写入设备授权。
获取匹配的 SDK
把下面的信息发给接入团队。不清楚架构或编译参数时,提供开发板和工具链名称即可开始确认。
| 信息 | 示例 |
|---|---|
| 芯片和系统 | 芯片型号、CPU 架构、FreeRTOS 版本与配置 |
| 蓝牙与 Wi-Fi | 无线芯片、蓝牙栈名称,是否能开热点 |
| 屏幕 | 1024×600、横屏、RGB565 |
| 功能 | 控车;大屏投屏 + HUD,或无法投屏的小屏 HUD |
| 资源与车辆接口 | 可用 RAM / Flash,CAN 或串口 |
SDK 以静态库、公开头文件、示例和文档交付。静态库是预编译代码,需要匹配芯片、系统和编译方式;换平台时重新确认接入包。
每台设备写入什么
在管理后台登记设备型号并签发设备授权,按产线流程写入开发板的专用存储。
| 材料 | 用途 | load_license 输出 |
|---|---|---|
.motolic |
这台设备的授权文件 | 512 字节原始内容 |
| 硬件标识 | 确认授权属于这台设备 | 最多 64 字符,末尾加 \0 |
| 可信公钥 | 验证授权文件没有被篡改 | 65 字节 P-256 公钥,首字节 0x04 |
公钥从 SDK 提供方的可信渠道取得。硬件标识必须与签发时一致。每台设备单独保存授权,不把设备凭据放进通用固件或日志。
接入已有 FreeRTOS 工程
- 将接入包的
include目录加入头文件搜索路径,应用包含moto_freertos/terminal.h。 - 按交付清单链接静态库及其依赖,保持 CPU 架构、编译器 ABI 与 FreeRTOS 配置一致。具体库名、链接顺序和编译选项以目标平台接入包为准。
- 实现
moto_terminal_port的硬件回调,初始化存储、随机源和时钟,再从 FreeRTOS 应用任务创建并启动 SDK。 - 用开发板已有工具链编译、烧录。升级工具链、切换芯片或修改关键系统配置后,重新确认静态库兼容性。
完整启动顺序见首次连接。接入包按平台匹配,同一份二进制不能直接用于所有开发板。
绑定信息怎么保存
设备授权说明“这是什么设备”;绑定记录说明“哪个手机拥有控制权”。两者分开保存。
实现 read_pairing、write_pairing,将 SDK 给出的字节原样保存在可掉电保存的存储中,例如 Flash 分区或平台的键值存储。
- 没有记录时,读取成功并输出长度
0;记录损坏或读取失败时返回错误。 - 写入必须完整提交,持久化成功后才返回
0。 - 创建 SDK 前初始化存储;不要在启动失败时直接擦除绑定。
同时提供 random(安全随机数)和 now_ms(线程安全的单调毫秒计时)。若目标接入包已提供某项平台适配,按包内说明复用。
普通断连、重启保留绑定。解除绑定使用 APP 的解绑流程。
功能在哪里开启
后台的设备型号配置决定开放哪些功能;固件负责实现对应驱动。moto_terminal_get_status() 返回的 enabled_capabilities 是当前生效的功能列表。
蓝牙能连上但某个功能不可用时,先核对后台型号配置,再核对固件适配。返回首次连接。
