移植概述
本文介绍在移植C Link SDK过程中,需要实现的系统依赖接口及函数说明。
整体框架

C Link SDK支持在不同操作系统或硬件平台上运行,是因为C Link SDK与系统或硬件平台相关的操作,都被抽象为HAL函数。因此,设备商在开发产品时,不仅需要调用SDK的API实现产品业务逻辑,还需要实现SDK依赖的HAL函数。
设备商下载SDK之后,进行如下操作:
步骤一:配置或裁剪SDK功能
成功下载SDK之后,您可通过SDK提供的配置工具对SDK进行配置或裁剪。
-
SDK为Windows环境提供的代码配置工具是SDK根目录下的
config.bat。 -
在Linux环境下,在SDK的根目录使用
make menuconfig对SDK进行配置,配置页面:Main Menu Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] *** Configure C-SDK for IoT Embedded Devices *** [*] PLATFORM_HAS_STDINT (NEW) [*] PLATFORM_HAS_DYNMEM (NEW) [ ] PLATFORM_HAS_OS (NEW) [*] FEATURE_MQTT_COMM_ENABLED (NEW) MQTT Configurations ---> [ ] FEATURE_DYNAMIC_REGISTER (NEW) [*] FEATURE_DEVICE_MODEL_ENABLED (NEW) Device Model Configurations ---> [ ] FEATURE_SUPPORT_TLS (NEW) [ ] FEATURE_ATM_ENABLED (NEW) <Select> < Exit > < Help > < Save > < Load >
您可参考基于Make的编译系统说明了解各个配置选项。
SDK默认使用同步通信机制与设备上的TCP/IP协议栈交互,如果目标硬件平台的TCP/IP协议栈是异步方式(例如Nucleus),需要将SDK配置为使用异步协议栈。更多信息,请参见SDK的同步与异步通信。
步骤二:实现HAL函数
根据选择的功能不同,您需要实现的HAL函数也有区别,在相应功能的开发文档中将会有相关需要实现的HAL函数的描述。
步骤三:调用SDK提供的API实现产品功能
您可参考C Link SDK下的各功能开发说明文档了解编程细节,基于SDK中提供的示例代码实现产品功能。
步骤四:编译SDK
将SDK移植到目标嵌入式平台有两种方式:
-
当开发环境为Linux时,使用SDK自带的编译系统。
如果使用Linux作为开发环境,可以直接使用SDK自带的编译系统对SDK进行编译。使用SDK自带的编译系统时,您需要:
-
准备一台
Linux的开发主机, 安装Ubuntu16.04 64bits或以上版本。 -
运行
make menuconfig命令配置功能点。 -
在
tools/board目录下新增自己的硬件平台描述文件,进行交叉编译配置。 -
运行
make reconfig选择自己的平台。 -
运行
make,产物是已经交叉编译好的libiot_sdk.a,在output/release/lib目录下。
了解编译系统和交叉编译的更多信息。请参见基于Make的编译系统说明 和基于Make的交叉编译示例。
-
-
抽取SDK的代码文件加入到用户的开发环境编译。
KEIL、IAR开发工具无法使用make,需要将SDK中的功能代码抽取出来加入工程进行编译。代码抽取以及编译过程如下:
-
准备一台
Linux的开发主机,安装Ubuntu16.04 64bits;或者准备一台Windows的开发主机。 -
运行
make menuconfig命令(Ubuntu)或者config.bat脚本(Windows)配置需要使用到的SDK功能点。 -
运行
extract.sh脚本(Ubuntu)或者extract.bat脚本(Windows)根据被选择的功能点抽取代码。 -
您选中的SDK功能相关的代码将被放置在
output/eng目录下。 -
您可将
output/eng下的代码添加到开发工具的项目中进行编译。
更多信息,请参见基于代码抽取时的移植过程。
-