下载阿里云IOT–SDK
git clone https://github.com/maxlicheng/iotkit-embedded.git
进入SDK目录
cd iotkit-embedded
三元参数位置,或保持默认
/home/cheng/aliyunprj/iotkit-embedded/wrappers/os/ubuntu
vi HAL_OS_linux.c
选择平台,尝试编译x86
make reconfig
3
编译
make
运行
./output/release/bin/mqtt-example
x86平台的编译正常,执行文件运行无报错,则可以进行arm平台的移植
交叉编译器安装
注意,交叉编译器尽量与内核文件系统的编译版本移植。
若之前有安装过,或有残留,需要先卸载
sudo apt remove gcc-arm-linux-gnueabihf
sudo apt remove –auto-remove gcc-arm-linux-gnueabihf
安装arm-linux-gcc
sudo apt-get install -y gcc-arm-linux-gnueabihf
查看arm-linux-gcc版本
arm-linux-gnueabihf-gcc -v
新建一个arm-linux配置文件
vi tools/board/config.arm-linux.demo
文本内容
注意:-前面必须要空两格
CONFIG_ENV_CFLAGS = \
-D_PLATFORM_IS_LINUX_ \
-Wall \
-DNO_EXECUTABLES
CONFIG_ENV_LDFLAGS = \
-lpthread -lrt
OVERRIDE_CC = arm-linux-gcc
OVERRIDE_AR = arm-linux-ar
OVERRIDE_LD = arm-linux-ld
CONFIG_wrappers :=
确认配置文件
make reconfig
3
无报错,进行编译
make
编译正常,将ubuntu HAL 拷贝为 arm-linux
原来有arm-linux文件夹则删除
rm -rf wrappers/os/arm-linux
拷贝
cp -r wrappers/os/ubuntu/ wrappers/os/arm-linux
删除HAL_UART_linux.c文件
rm wrappers/os/arm-linux/HAL_UART_linux.c
查看
tree -A wrappers/os/arm-linux/
屏蔽wrappers 选项
vi tools/board/config.arm-linux.demo
第15行
# CONFIG_wrappers :=
执行配置
make reconfig
3
编译
make
编译正常,删除config.arm-linux.demo 里面的 -DNO_EXECUTABLES语句, 即可编译可运行程序
vi tools/board/config.arm-linux.demo
文本内容
注意:-前面必须要空两格
CONFIG_ENV_CFLAGS = \
-D_PLATFORM_IS_LINUX_ \
-Wall \
CONFIG_ENV_LDFLAGS = \
-lpthread -lrt
OVERRIDE_CC = arm-linux-gcc
OVERRIDE_AR = arm-linux-ar
OVERRIDE_LD = arm-linux-ld
#CONFIG_wrappers :=
执行配置
make reconfig
3
编译
make
查看输出文件,检查编译的可执行文件是否正常
ls output/release/bin/
file output/release/bin/*
将生成的可执行文件拷贝到TF卡
把TF卡插入到开发板并挂载,运行mqtt-example无报错,完成移植,则可以进行自定义功能调试和编写
如果文章对您有帮助,欢迎移至上方按钮打赏博主;
博主,您好,按照此方法配置,最终output/release/bin没有生成可执行文件,这个会是什么原因