全部产品
云市场

移植概述

更新时间:2019-03-18 16:27:48

SDK结构说明

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

image.png | left | 666x277

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进行配置,配置页面如下所示:

image.png | left | 579x293

可以参考基于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下的代码添加到开发工具的项目中进行编译

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