本页内容 1. 准备开发板和接入包2. 加入现有 FreeRTOS 工程3. 填写硬件接口4. 配置并启动 SDK5. 用手机确认接通
SDK / FreeRTOS

首次连接

在 FreeRTOS 工程中接入 SDK,连上 APP。

先完成一个结果:APP 能添加开发板,手机切换日夜模式时,仪表跟着变化。 导航和控车在接通后继续加入。

本指南使用 SDK 0.1.0 的 FreeRTOS 接口,不限定芯片品牌。开始前先确认与你的芯片、FreeRTOS 配置和工具链匹配的接入包。

1. 准备开发板和接入包

你需要:运行 FreeRTOS 且具备 BLE 通信的开发板、可显示配对码的屏幕、已安装无限骑行的手机,以及对应平台的 SDK 包。

每台设备还需要自己的 .motolic 授权文件、签发时使用的硬件标识和可信公钥,由 load_license 读取。设备授权说明。

2. 加入现有 FreeRTOS 工程

将接入包的头文件目录加入编译路径,按包内说明链接目标平台的静态库和依赖库。继续使用开发板原有的编译、烧录工具,不需要更换工程框架。

应用中主要接两部分:

部分 你要做什么
SDK 启动与事件任务 填写配置、启动 SDK、持续读取并分发事件
板级驱动 提供授权读取、存储、蓝牙、计时、随机数和屏幕接口

编译通过后,还需要接通这些驱动才能连接手机。

3. 填写硬件接口

在 moto_terminal_config.port 中填写下列回调。port 就是 SDK 调用你的硬件功能时使用的接口表:

回调 你要实现的操作
load_license 读出本机授权、硬件标识和公钥;成功返回 0
read_pairing / write_pairing 原样读取、持久化绑定记录;无记录时读出长度为 0
random 填满指定长度的安全随机字节
now_ms 提供线程安全、单调递增的毫秒计时
ble_send 复制数据到蓝牙发送队列,返回已接收字节数;暂忙返回 0
ble_close 请求断开指定的蓝牙连接

蓝牙驱动还需创建服务、开始广播,并转交连接和收包事件。UUID 与收发规则。屏幕驱动负责显示、清除四位配对码,以及切换日夜界面。

4. 配置并启动 SDK

下面是配置片段。board_fill_port 是你实现的辅助函数,用来填写上面的回调,不是 SDK API:

#include <moto_freertos/terminal.h>

moto_terminal_config c;
moto_terminal_config_init(&c);
board_fill_port(&c.port);
c.hardware_revision = "BOARD-REV1";
c.firmware_version = "1.0.0";
c.width = 1024;
c.height = 600;

宽高改成实际屏幕像素。首次验证连接时先保持 h264、mjpeg 关闭;大屏接入导航时再开启视频,同时保留 HUD。

从 FreeRTOS 应用任务按以下顺序启动:

  1. 初始化存储、随机源、时钟和硬件驱动。
  2. 调用 moto_terminal_create(&c, &terminal, &error);成功后调用 moto_terminal_start(terminal),每一步都检查返回值。
  3. 获取 SDK 广播数据并启动 BLE,允许手机连接。
  4. 用一个任务持续调用 moto_terminal_next_event,处理配对码和手机状态事件。耗时操作交给对应驱动任务。

用开发板原有工具编译、烧录并查看日志。启动失败时按常见问题排查。

5. 用手机确认接通

  1. 在 APP 登录,进入添加设备并搜索开发板。
  2. 输入仪表显示的四位 PIN,包括开头的 0。
  3. 添加成功后,切换 APP 日夜外观。
  4. 仪表收到 MOTO_EVENT_PHONE_STATE,按 e.data.phone.theme 切换屏幕主题。
  5. 重启开发板,确认已有绑定仍能连接。

接下来按产品需要接入控车与车况、导航投屏与 HUD、通知与通话。