移植概述

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

整体框架

C Link SDK支持在不同操作系统或硬件平台上运行,是因为C Link SDK与系统或硬件平台相关的操作,都被抽象为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进行配置,配置页面如下所示:

    image.png

您可参考基于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自带的编译系统时,您需要:

    1. 准备一台Linux 的开发主机, 安装Ubuntu16.04 64bits或以上版本。

    2. 运行make menuconfig 命令配置功能点。

    3. tools/board 目录下新增自己的硬件平台描述文件,进行交叉编译配置。

    4. 运行make reconfig 选择自己的平台。

    5. 运行make,产物是已经交叉编译好的 libiot_sdk.a,在output/release/lib目录下。

    了解编译系统和交叉编译的更多信息。请参见基于Make的编译系统说明基于Make的交叉编译示例

  • 抽取SDK的代码文件加入到用户的开发环境编译。

    KEIL、IAR开发工具无法使用make,需要将SDK中的功能代码抽取出来加入工程进行编译。代码抽取以及编译过程如下:

    1. 准备一台 Linux 的开发主机,安装Ubuntu16.04 64bits;或者准备一台Windows的开发主机。

    2. 运行make menuconfig命令(Ubuntu)或者config.bat 脚本(Windows)配置需要使用到的SDK功能点。

    3. 运行extract.sh脚本(Ubuntu)或者extract.bat脚本(Windows)根据被选择的功能点抽取代码。

    4. 您选中的SDK功能相关的代码将被放置在output/eng目录下。

    5. 您可将output/eng下的代码添加到开发工具的项目中进行编译。

    更多信息,请参见基于代码抽取时的移植过程