嵌入式技术分享

Embedded Technology Sharing

阿里云mqtt iot在嵌入式Linux上的移植

《阿里云mqtt iot在嵌入式Linux上的移植》
下载阿里云IOTSDK
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
《阿里云mqtt iot在嵌入式Linux上的移植》

编译
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
《阿里云mqtt iot在嵌入式Linux上的移植》

新建一个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
《阿里云mqtt iot在嵌入式Linux上的移植》

无报错,进行编译
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/
《阿里云mqtt iot在嵌入式Linux上的移植》

屏蔽wrappers 选项
vi tools/board/config.arm-linux.demo

15
# CONFIG_wrappers :=
《阿里云mqtt iot在嵌入式Linux上的移植》

执行配置
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无报错,完成移植,则可以进行自定义功能调试和编写

如果文章对您有帮助,欢迎移至上方按钮打赏博主;

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注