阿里云IOT-C-SDK系列(2)快速体验:移植+示例C代码

本文介绍了阿里云IoT-C-SDK的两种移植方法,适用于Ubuntu环境。第一种方法利用SDK自带的编译系统,通过修改HAL_OS_linux.c、配置功能、编译和运行示例代码。第二种方法涉及源码抽取,通过make menuconfig选择功能,执行extract.sh脚本,然后在自己的工程中实现HAL接口并编译。文章详细阐述了每个步骤,适合开发者快速体验和移植SDK。
摘要由CSDN通过智能技术生成

阿里云IOT-C-SDK系列(1)概述:移植流程、程序框架、代码目录

 在上一篇文章我们分析了C-SDK的移植流程一级程序框架, 为了快速的体验一下这个移植流程,本文按照上篇文章提供2 种移植方式分别举例如何移植。官方的快速 移植案例为:Quick_start, 我对移植案例进行整理和修改,为了快速的体验,我们使用ubuntu来运行示例程序,原因是SDK中已经提供了HAL_XXX接口函数的实现。

   移植环境:

   SDK版本:v3.0.1

   程序运行环境:ubuntu18.04.2    64bit

   物联网设备类型:高级版+物模型,物模型使用SDK提供的 \src\dev_model\examples\model_for_examples.json, 具体如何使用,物联网的文档中有详细的说明。

  在阿里云物联网上创建的自己设备四元组(具体内容做了隐藏):

{
  "ProductKey": "xxxxxxxxxxx",                        //隐藏
  "ProductSecret":"xxxxxxxxxxxxxxxx"                 //隐藏
  "DeviceName": "20190810001",                  
  "DeviceSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  //隐藏
}

 

一、使用SDK自带的编译系统进行移植

1、修改源码中 wrappers/os/ubuntu/HAL_OS_linux.c  

  由于我们选择的是物联网高级版+物模型,所以将我们在阿里云上创建的产品设备的四元组信息填到上图的位置,这里可能会有一个疑惑:难不成以后每次 移植都要这么改,那岂不是很不灵活,答案:否,SDK提供了设备四元组设定的API函数,这里只是为了快速的体验,因为SDK的编译系统会默认编译该文件和 linkkit_example_solo.c  示例代码。

2、在源码目录下,执行 make  menuconfig。

    注意必须是Ubuntu 16 版本以上。如果版本不够,可以在Windows下执行相应的脚本,执行该命令的目的是 选择 我们要使用的 SDK中的 功能,毕竟SDK支持的功能很多,我们不需要全都选择。如下图所示:

   SDK中默认就是物联网设备 高级版+物模型,所以这里其实不用做任何修改,直接save就可以了,然后就会在目录下生成make.setting,其中罗列了我们选择的功能。这个make.setting尽量不要自己编写,还是用make menuconfig比较方便,也不容易出错,make.setting不仅仅是为了让我们检查我们选择了那些功能,它更是 “提取脚本extract.sh”的输入文件,提取脚本根据make.setting中选择的内容,提取对应功能的源码,输出到output的eng下。

3、执行 make 命令。

    SDK自带的编译系统(gcc)会对整个源码进行编译,编译完成后,会显示编译了哪些文件,选择了哪些功能,以及各功能的ROM、RAM等所需大小,如下图所示:

make 指令还会自动运行extract.sh ,将我们选择的功能对应的源码抽取到 output/eng目录下,所以 执行make 后会有下面几个结果:

(1)编译 我们选择的功能对应的代码。

(2)执行extract.sh,将我们所选的功能的相关代码抽取到output目录 下。

(3)生成库文件 output/release/lib ,对于我们有用的就是

          libiot_sda.a  -- iot 核心软件功能静态库。

          libiot_hal.a   -- iot HAL层 静态库,可以理解为底层硬件驱动接口驱动,这里使用的默认Ubuntu对应的HAL案例。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值