C语言Link SDK的结构如下图所示。

SDK被设计为可以在各种OS/硬件平台上运行,因此凡是与OS、目标硬件相关的操作都被抽象为HAL函数,设备商在开发产品时除了需要调用SDK的API实现产品业务逻辑外,还需要对SDK依赖的HAL函数进行实现。
设备商下载SDK之后,进行的操作步骤如下:
- SDK功能配置
- 进行HAL函数的实现
- 调用SDK提供的API进行产品功能实现
- 对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进行产品功能实现
可以参考“编程指南”下面的各个功能的开发说明文档了解编程细节,在SDK中也提供了一些代码示例,用户可以基于这些example进行产品功能实现。
SDK编译
将SDK移植到目标嵌入式平台有两种方式:
- 使用SDK自带的编译系统,当开发环境为Linux时使用。
- 抽取SDK的代码文件加入到用户的开发环境编译。
使用SDK自带的编译系统
如果使用Linux作为开发环境,可以直接使用SDK自带的编译系统对SDK进行编译。
使用SDK自带的编译系统时,您需要:
-
准备一台
Linux
的开发主机, 安装Ubuntu16.04 64bits
或以上版本。 -
运行
make menuconfig
命令配置功能点。 -
在
tools/board
目录下新增自己的硬件平台描述文件,进行交叉编译配置。 -
运行
make reconfig
选择自己的平台。 -
运行
make
,产物是已经交叉编译好的libiot_sdk.a
,在output/release/lib
目录下。
用户可以通过文档:基于Make的编译系统说明 了解编译系统如何使用
可参考文档基于Make的交叉编译示例了解交叉编译的过程
抽取代码加入用户的开发环境
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
下的代码添加到开发工具的项目中进行编译。
用户可参考文档基于代码抽取时的移植过程了解相关过程。