我是靠谱客的博主 无心小蘑菇,最近开发中收集的这篇文章主要介绍[阿里生活物联网平台]第一章:SDK(V1.6.0) Linux交叉编译成库,待使用关注嘉友创科技公众号阿里生活物联网平台SDK获取编译智能生活 SDK 的代码 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关注嘉友创科技公众号

阿里生活物联网平台SDK获取

生活物联网平台SDK(V1.6.0) 无AliOS Things的SDK(基于Link Kit V2.3.0)

如果您基于其他操作系统开发(例如Linux、FreeRTOS、Windows等),请选择该版本SDK。

我用linux方案

生活物联网平台SDK(V1.6.0)

下载后是这个样子的

解压以后是这样子的

 

编译智能生活 SDK 的代码

配置交叉编译器路径

文 件 build-rules/settings.mk 中 修 改 TOOLCHAIN_DLDIR := /home/mytoolchain  配 置 编 译 器 的 文 件 夹 所 在 的 路 径

进入SDK文件夹

打开settings.mk文件

vim build-rules/settings.mk

修改settings.mk文件:配置编译链的绝对路径.把原来的注释掉,输入自己的路径,注意其中的/

#原来的
#TOOLCHAIN_DLDIR := $(OUTPUT_DIR)/compiler
#自己的
TOOLCHAIN_DLDIR := /home/book/imx6ull-sdk/ToolChain/gcc-linaro-7.4.1-2019.02-i686_arm-linux-gnueabihf/

 

打开funcs.mk文件

vim build-rules/funcs.mk

修改funcs.mk文件:配置编译链的相对路径.添加arm-linux-gnueabihf-gcc及bin,不要乱回车,不能有空行

define Relative_TcPath
( 
    case $(1) in 
        xtensa-lx106-elf-gcc ) 
            echo "gcc-xtensa-lx106-linux/main/bin" ;; 
        arm-none-eabi-gcc ) 
            echo "gcc-arm-none-eabi-linux/main/bin" ;; 
        arm-linux-gnueabihf-gcc ) 
            echo "bin" ;; 
    esac 
)
endef

 

增加 config 文件

参 考 src/board/文 件 夹 里 面 的 config 增 加 一 个 自 己 的 config

我新建一个config.linux.imx6配置文件,内容如下:

注意:命名,其中的linux,需要再src/ref-impl/hal/os/下建立linux文件夹,里面的内容和路径下的ubuntu一直,因为我的是linux板子.

否则libsdk.o会有很多借口未定义的错误.

CONFIG_ENV_CFLAGS = 
    -D_PLATFORM_IS_LINUX_ 
    -Wall 
    -DNO_EXECUTABLES 

CONFIG_ENV_LDFLAGS = 
    -lpthread -lrt 

CROSS_PREFIX := arm-linux-gnueabihf-

CONFIG_wrappers :=

编译链的前缀,很重要

 

编译SDK

先 执 行 make clean, 然 后 执 行 make reconfig 选 择 上面的 配 置文件config.linux.imx6,第3个

输入3,回车

编译:make

 

 

成功

如 果 没 有 编 译 错 误 生 成 的 文 件 在 output/release 文 件 夹 下 面 ,用 户 将 库 文 件 output/release/lib/libiot_sdk.a 链 接 到 自 己 的 工 程 中 , 同 时 将目 录 output/release/include 下 面 的 头 文 件 放 置 到 自 己 的 工 程 并 配 置 头 文 件 路径 , 在 用 户 的 应 用 程 序 中 include "iot_import.h"即 可 , 这 个 头 文 件 会 包 含 其 他SDK 的 头 文 件 , 注 意 如 果 修 改 了 文 件了config.linux.imx6  需 要 再 次 执 行make reconfig 才 能 生 效 。

 

结束

编译成功,不代表运行成功,等待运行测试教程!!

 

补充

写应用报错,需要注释掉make.setting中的FEATURE_AWSS_SUPPORT_DEV_AP=y,阿里给的回复是AP这个源码不开源,出错就注释掉.

#
# Configure FeiYan SDK Features
#

# FEATURE_LINK_VISUAL_ENABLE=y

#=========Basic Features==========
FEATURE_SRCPATH="."
FEATURE_MQTT_COMM_ENABLED=y
FEATURE_MQTT_AUTO_SUBSCRIBE=y
FEATURE_DEVICE_MODEL_ENABLED=y
FEATURE_OTA_ENABLED=y
FEATURE_DEV_BIND_ENABLED=y
FEATURE_SUPPORT_TLS=y
#Support unified service post
FEATURE_DM_UNIFIED_SERVICE_POST=y
#=========Basic Features==========

#=========User Config Features==========
FEATURE_ALCS_ENABLED=y

FEATURE_DEVICE_MODEL_GATEWAY=n

#
# AWSS Configurations
#
FEATURE_WIFI_PROVISION_ENABLED=y

FEATURE_AWSS_SUPPORT_SMARTCONFIG=y
FEATURE_AWSS_SUPPORT_ZEROCONFIG=y
#FEATURE_AWSS_SUPPORT_DEV_AP=y

# FEATURE_AWSS_SUPPORT_PHONEASAP=n
# FEATURE_AWSS_SUPPORT_ROUTER=n
#=========User Config Features==========

src/board/config.linux.imx6最终为

CONFIG_ENV_CFLAGS = 
    -D_PLATFORM_IS_LINUX_ 
    -Wall 
    -DNO_EXECUTABLES 

CONFIG_ENV_LDFLAGS = 
    -lpthread -lrt 

CROSS_PREFIX := arm-linux-gnueabihf-

src/ref-impl/hal/os/下建立linux文件夹

命名,其中的linux是src/board/config.linux.imx6名字中间的linux,需要在src/ref-impl/hal/os/下建立linux文件夹,里面的内容和路径下的ubuntu一直,因为我的是linux板子.

否则libsdk.o会有很多借口未定义的错误.

 

ubuntu如果想编译固件运行的话,必须是64位系统,2020.07.27

因为/lib/linux/libawss_security.a  这个库是64位系统编译的

最后

以上就是无心小蘑菇为你收集整理的[阿里生活物联网平台]第一章:SDK(V1.6.0) Linux交叉编译成库,待使用关注嘉友创科技公众号阿里生活物联网平台SDK获取编译智能生活 SDK 的代码 的全部内容,希望文章能够帮你解决[阿里生活物联网平台]第一章:SDK(V1.6.0) Linux交叉编译成库,待使用关注嘉友创科技公众号阿里生活物联网平台SDK获取编译智能生活 SDK 的代码 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部