本文介绍在移植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进行配置,配置页面如下所示:
您可参考基于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
下的代码添加到开发工具的项目中进行编译。
更多信息,请参见基于代码抽取时的移植过程。