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

SDK被设计为可以在各种OS/硬件平台上运行,因此凡是与OS、目标硬件相关的操作都被抽象为HAL函数,设备商在开发产品时除了需要调用SDK的API实现产品业务逻辑外,还需要对SDK依赖的HAL函数进行实现。

设备商下载SDK之后,进行的操作步骤如下:

  1. SDK功能配置
  2. 进行HAL函数的实现
  3. 调用SDK提供的API进行产品功能实现
  4. 对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下的代码添加到开发工具的项目中进行编译。

用户可参考文档基于代码抽取时的移植过程了解相关过程。