Skip to main content
该 SDK 设计为可在嵌入式平台和操作系统之间移植。要将 SDK 移植到新平台,请按照以下步骤操作。
请以 platform/linux/ 中的 Linux 参考实现作为可运行的起点。对于基于 RTOS 的平台,将互斥锁和事件映射到您的 RTOS 原语(例如 FreeRTOS 的 SemaphoreHandle_t、Zephyr 的 k_mutex)。

实现平台层

创建平台目录

在 platform/ 下创建一个新目录(例如 platform/my_platform/),包含两个文件:

平台类型(ecod_platform_types.h)

定义 SDK 使用的平台特定类型:
Linux 参考实现使用 pthread_mutex_t 作为互斥锁,并使用一个包装了 pthread_mutex_t + pthread_cond_t + bool 标志的结构体来表示事件。请根据您平台的 RTOS 或操作系统原语进行调整。

平台实现(ecod_platform_<name>.c)

实现 ecod_sdk_platform.h 中声明的所有函数。它们分为以下几类:

初始化

实现启动函数以分配平台资源:

时钟与计时

实现这些函数,为 SDK 提供单调时钟和阻塞式延时:

日志记录

实现这些函数以将 SDK 日志输出路由到您平台的日志系统:

内存(仅当启用 EC_USE_HEAP 时)

在启用堆分配时实现 malloc 和 free 包装函数:

互斥锁

使用您平台的互斥原语实现这些函数:

事件

用于线程间同步的可等待信号:

串行通信

实现这些函数,处理原始串行或 USB HID I/O:

网络(仅在使用网络桥接时)

实现这些函数以使 SDK 能够访问 TCP 套接字:

更新构建系统

修改 configure.ac 和 Makefile.am 以包含您的平台:

测试集成

使用演示应用程序验证目标平台上的功能:
有关详细的移植指南,请参阅 platform/ecod_sdk_platform.h。