0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3576 单板机 C/Python/MQTT 应用开发手册(一)

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2026-04-20 13:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前 言

本文档为Linux应用开发的指引文档,提供Linux应用开发环境、开发流程等说明,以及对平台关键技术及其支持情况进行简要介绍。

当前应用开发支持情况如下表所示。

wKgZPGnlwHSAZM3gAAATitv-aT4953.png

在完成开发环境搭建后,可参考本文的“Linux常用开发案例”章节熟悉基本的应用开发流程,然后可参考如下文档进行产品应用开发。

(1)图形界面开发:参考《图形用户界面(GUI)开发手册》,其中包含Qt和LVGL的开发指引;

(2)视频图像处理开发:参考《视频图像处理开发手册》;

(3)Docker开发:参考《Docker开发手册》,主要介绍Docker安装、构建镜像与下载镜像等;

(4)NPU开发:参考《NPU开发手册》,主要演示基于NPU的案例开发;

(5)ROS2开发:参考《ROS2开发手册》,主要演示ROS系统(版本:ROS2 Humble)使用说明;

(6)Modbus开发:参考《Modbus应用开发手册》,主要介绍Modbus协议开发案例。

开发环境

Windows开发环境:Windows1064bit、Windows764bit

Linux开发环境:VMware16.2.5、Ubuntu22.04.564bit

系统版本:Tronlong-Desktop 22.04(类Ubuntu)、Linux-6.1.115、U-Boot-2017.09

sysroot:RK3576-Tronlong-Desktop-22.04-sysroot-[版本号].tar.gz

应用开发交叉编译工具:gcc-11-aarch64-linux-gnu_11.4.0-1ubuntu1~22.04cross1_amd64.tar.gz

备注:本文基于2GByte LPDDR4X、16GByte eMMC配置单板机进行演示。

术语表

为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

wKgZPGnlwOGAJnoqAAA_BPA1u6Q955.png

注意事项

无特殊说明情况下,本文默认从eMMC启动系统,使用DEBUG作为调试串口,使用HDMI显示屏作为显示输出。

1开发环境搭建说明

1.1安装应用开发交叉编译工具链

本文主要提供适配应用开发的交叉编译工具链安装方式,包括网络安装、本地安装,请根据实际环境选择其中一种方式进行安装。

(1)通过网络安装

Host# sudo apt update

Host# sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

wKgZPGnlwX-AeFfuAAKKbOsrHpI901.png图 1

wKgZO2nlwYCAAnm7AAGgT3rMD54062.png图 2

安装完成后,可执行如下命令查看交叉编译工具链版本号。

Host# aarch64-linux-gnu-gcc --version

Host# aarch64-linux-gnu-g++ --version

wKgZPGnlwZGANr7HAADJTnw7wck395.png图 3

可以看到交叉编译工具版本为11.4.0即为安装成功,同时交叉编译工具链默认安装在"/usr/bin/"目录下。

Host# ls /usr/bin/aarch64-linux-gnu-*

wKgZO2nlwZiAEVY_AAFhx7183Sc614.png图 4

(2)本地安装

我司提供的交叉编译链压缩包位于产品资料“4-软件资料LinuxTools”目录下,请将其拷贝至上位机Ubuntu系统任意路径,执行如下命令进行安装。

Host# tar -zxf gcc-11-aarch64-linux-gnu_11.4.0-1ubuntu1~22.04cross1_amd64.tar.gz

Host# sudo dpkg -i ./*.deb

wKgZPGnlwbaAdhkvAAHcOuJ9Kfk186.png图 5

wKgZO2nlwauAWeM4AADPgs0yEd0034.png图 6

安装完成后,可执行如下命令查看具体版本号。

Host# aarch64-linux-gnu-gcc --version

Host# aarch64-linux-gnu-g++ --version

wKgZPGnlwZGANr7HAADJTnw7wck395.png图 7

可以看到交叉编译工具版本号为11.4.0即为安装成功,同时应用交叉编译工具链默认安装在"/usr/bin/"目录下。

Host# ls /usr/bin/aarch64-linux-gnu-*

wKgZO2nlwZiAEVY_AAFhx7183Sc614.png图 8

1.2安装sysroot

我司提供的sysroot压缩包主要包含应用开发时所需的库(常用开发库、Qt库等),适用于Linux系统应用开发。

请将产品资料“4-软件资料LinuxLinuxSDK”目录下的sysroot压缩包拷贝至上位机Ubuntu系统"/home/tronlong/RK3576/"目录。执行如下命令,将其解压,解压完成后会在当前目录下生成一个"sysroot"目录和environment文件,"sysroot"目录包含sysroot相关文件。

备注:sysroot压缩包版本以实际情况为准。

Host# tar -zxf rk3576-Tronlong-Desktop-22.04-sysroot-v1.0.tar.gz

wKgZO2nlwiGAWGJOAAChvyHDOu4635.png图 9

执行如下命令,设置交叉编译工具链和sysroot环境变量。

备注:由于Linux应用开发与Linux系统开发使用不同的交叉编译工具链,因此执行如下命令完成应用开发环境变量配置后,当前Terminal命令行终端将不再适用U-Boot、内核开发。如需进行U-Boot、内核开发,请另行打开一个Terminal命令行终端。

Host# source /home/tronlong/RK3576/environment

Host# export

wKgZO2nlwi2AT_hrAAG3NO-qJ1c423.png图 10

wKgZPGnlwi2ATJ52AADqGHAr3xw370.png图 11

2GDB调试说明

GDB为GNU推出的经典命令行调试工具,在Linux系统下广泛使用。它功能强大,能让开发者单步执行程序、逐过程或逐语句调试,自由跳入或跳出函数,还能按条件设置断点,实时查看变量值,精准定位程序问题。

GDB支持多种语言,包括汇编、C/C++、D、Fortran、GO、Objective-C、OpenCL等。此外,它有远程调试模式,在嵌入式系统调试中优势明显。借助TCP/IP协议及专有通信协议,可让调试程序的主机与运行程序的目标机跨设备协作,高效完成调试任务。

2.1调试环境搭建

在RK3576工作目录下执行如下命令,创建gdb-test目录并安装GDB调试工具。

Host# mkdir gdb-test

Host# sudo apt install gdb gdbserver gdb-multiarch -y

wKgZPGnlwnWATy1wAAGQV_BcjDM036.png图 12

2.2演示程序创建与编译

执行如下命令,进入gdb-test目录并新建一个GDB调试演示程序。

Host# cd gdb-test

Host# vi test.c

wKgZO2nlwn6AVK9UAAAjHSc5cp0087.png图 13

输入以下内容:

#include

void show() {

printf("shown");

}

int main(int argc, char *argv[])

{

int arr[4] = {1, 2, 3, 4};

int i = 0;

for (i = 0; i < 4; i++) {

printf("arr[%d]: %dn", i, arr[i]);

}

show();

return 0;

}

wKgZO2nlwpCAcgmrAABhAUijDGk012.png图 14

执行如下命令,进行程序编译,编译完成将会生成test可执行程序。

Host# aarch64-linux-gnu-gcc -g test.c -o test

备注:编译时需添加-g参数,生成的可执行文件才带有调试信息。

wKgZPGnlwpmAXOgaAABRk_kvnNU058.png图 15

请将单板机与PC机连接至同一个路由器,使用Type-C线将单板机的DEBUG调试串口连接至PC机,然后将单板机上电启动。将编译后的test可执行文件拷贝至单板机系统任意目录下。

Target# lstest

wKgZO2nlwqCARzP8AAAEHyp_58Y312.png图 16

2.3调试程序运行

执行如下命令,查看虚拟机的IP地址。

Host# ifconfig

wKgZO2nlwq2AZOeiAAE0n9ogsow459.png图 17

在单板机系统test文件所在路径下,执行如下命令运行gdbserver程序,开启监听。

备注:192.168.13.36为虚拟机的IP地址;1234为连接的端口号(自行设置);test为将要进行调试的程序。

Target# gdbserver 192.168.13.36:1234 test

wKgZPGnlwreATJ31AAAKhPPldE0727.png图 18

在虚拟机系统test文件所在路径下,执行如下命令使用GDB调试工具进行调试。

Host# gdb-multiarch test

wKgZO2nlxJuANBuqAAD6SB9anFg079.png图 19

执行如下命令,连接单板机。192.168.13.58为单板机的IP地址,请以实际情况为准。

(gdb) target remote 192.168.13.58:1234

wKgZPGnlxKOACErNAADw8RolsfY655.png图 20

同时,单板机DEBUG调试串口打印连接成功的相关信息。

wKgZPGnlxKyAW8K9AAAPcugTnXk584.png图 21

2.4程序调试

本章节主要演示GDB调试的几个常用命令的使用方法。

2.4.1list命令

用于列出源码,简写:l。

wKgZO2nlxLSAD__RAABM6BP5p_M454.png图 22

2.4.2break命令

用于设置断点,简写:b。

分别在main函数和第11行设置断点。

wKgZPGnlxL2AdPDjAAAxGDgWHtk323.png图 23

2.4.3info breakpoints命令

用于显示断点的状态,简写:infob。

wKgZPGnlxMSAAHC7AAA_BBbxtmw231.png图 24

2.4.4continue命令

用于恢复程序执行,简写:c。此命令使GDB恢复程序的执行,直至断点触发或程序结束。

wKgZO2nlxM2ALvpOAAFPV4UB2Ts455.png图 25

以上调试过程在第二个断点中,每输入一次c命令,将会依次打印arr[]数组的元素值,然后程序执行结束。同时,单板机DEBUG调试串口打印相关信息。

wKgZO2nlxNeAcxfiAAAY4WDNt7c480.png图 26

2.4.5print命令

用于打印变量或者变量地址,简写:p。

设置断点后,可依次打印当前变量i的值。

wKgZO2nlxN-AHuGAAAGgVLU1lu4095.png图 27

以上调试过程在每处断点中,使用print命令打印变量i的值。同时,单板机DEBUG调试串口打印相关信息。

wKgZO2nlxNeAcxfiAAAY4WDNt7c480.png图 28

2.4.6quit命令

退出GDB模式,简写:q。当程序调试完成后,使用quit命令退出GDB调试。

wKgZO2nlxO2Aaw3VAAAaTXFriwU166.png图 29


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单板机
    +关注

    关注

    1

    文章

    57

    浏览量

    18945
  • MQTT
    +关注

    关注

    5

    文章

    748

    浏览量

    25377
  • rk3576
    +关注

    关注

    1

    文章

    321

    浏览量

    1755
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于RK3576单板机的Modbus数据采集开发指南

    本文为创龙科技RK3576 单板机 Modbus 开发指南,基于 Modbus RTU 协议实现温湿度采集、数据打印与日志存储。包含硬件连接、参数配置、程序编译、板端运行与数据解析,支持
    的头像 发表于 05-16 13:52 176次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>单板机</b>的Modbus数据采集<b class='flag-5'>开发</b>指南

    RK3576单板机Docker镜像构建与容器运行手册

    本文为创龙科技RK3576 单板机 Docker 开发指南,涵盖 Docker 安装、本地仓库配置、ARM 架构镜像构建、容器拉取与运行管理。支持单 / 多镜像批量构建、本地仓库推送、容器资源监控与启停控制。创龙科技通过清晰命令
    的头像 发表于 05-16 13:50 1.3w次阅读
    ​<b class='flag-5'>RK3576</b><b class='flag-5'>单板机</b>Docker镜像构建与容器运行<b class='flag-5'>手册</b>

    RK3576单板机玩转ROS2:通信测试+编译部署全流程详解

    本文为创龙科技RK3576 单板机 ROS2 开发指南,涵盖 ROS2 Humble 环境搭建、节点通信测试、turtlesim 仿真及功能包编译部署。支持 Python/
    的头像 发表于 05-16 13:49 383次阅读
    <b class='flag-5'>RK3576</b><b class='flag-5'>单板机</b>玩转ROS2:通信测试+编译部署全流程详解

    RK3576 单板机 NPU 边缘 AI 开发手册

    本文为创龙科技RK3576 单板机 NPU 开发指南,介绍 NPU 硬件特性、RKNN 开发流程,包含 YOLOv5 目标检测与 DeepSeek LLM 大模型两大案例。覆盖模型加载
    的头像 发表于 05-09 10:50 139次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b> NPU 边缘 AI <b class='flag-5'>开发</b><b class='flag-5'>手册</b>

    RK3576 单板机高清视频图像处理开发实战手册(三)

    本文为创龙科技RK3576 单板机视频图像处理开发指南,详解视频输入输出、编解码、RGA2.5、GPU、NPU 等硬件架构。包含 GStreamer 硬解码 / 编码、RTSP 网络流、GigE
    的头像 发表于 04-29 09:49 322次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>高清视频图像处理<b class='flag-5'>开发</b>实战<b class='flag-5'>手册</b>(三)

    RK3576 单板机高清视频图像处理开发实战手册(二)

    本文为创龙科技RK3576 单板机视频图像处理开发指南,详解视频输入输出、编解码、RGA2.5、GPU、NPU 等硬件架构。包含 GStreamer 硬解码 / 编码、RTSP 网络流、GigE
    的头像 发表于 04-28 10:33 183次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>高清视频图像处理<b class='flag-5'>开发</b>实战<b class='flag-5'>手册</b>(二)

    RK3576 单板机高清视频图像处理开发实战手册

    本文为创龙科技RK3576 单板机视频图像处理开发指南,详解视频输入输出、编解码、RGA2.5、GPU、NPU 等硬件架构。包含 GStreamer 硬解码 / 编码、RTSP 网络流、GigE
    的头像 发表于 04-27 09:36 212次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>高清视频图像处理<b class='flag-5'>开发</b>实战<b class='flag-5'>手册</b>(<b class='flag-5'>一</b>)

    RK3576 单板机嵌入式 Qt 界面与多屏异显开发手册(三)

    本文为创龙科技RK3576 单板机 Qt GUI 开发指南,包含环境搭建、编译调试、GPU 加速、自启动配置及多屏显示方案。提供 Qt Creator 与命令行双开发模式,覆盖界面控制
    的头像 发表于 04-24 09:27 228次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>嵌入式 Qt 界面与多屏异显<b class='flag-5'>开发</b><b class='flag-5'>手册</b>(三)

    RK3576 单板机嵌入式 Qt 界面与多屏异显开发手册

    本文为创龙科技RK3576 单板机 Qt GUI 开发指南,包含环境搭建、编译调试、GPU 加速、自启动配置及多屏显示方案。提供 Qt Creator 与命令行双开发模式,覆盖界面控制
    的头像 发表于 04-22 10:08 1020次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>嵌入式 Qt 界面与多屏异显<b class='flag-5'>开发</b><b class='flag-5'>手册</b>(<b class='flag-5'>一</b>)

    RK3576 单板机 C/Python/MQTT 应用开发手册(二)

    本文为创龙科技RK3576 单板机应用开发指南,包含开发环境配置、GDB 调试、外设控制(LED/CAN/ 串口)、Python
    的头像 发表于 04-21 10:43 227次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b> <b class='flag-5'>C</b>/<b class='flag-5'>Python</b>/<b class='flag-5'>MQTT</b> 应用<b class='flag-5'>开发</b><b class='flag-5'>手册</b>(二)

    RK3576 单板机 LinuxSDK 开发与系统定制手册(二)

    本文为创龙科技RK3576 单板机 Linux 系统开发指南,涵盖 SDK 搭建、内核与引导程序开发、根文件系统修改、镜像打包、分区配置及硬件资源调优等全流程。提供命令实操、参数说明与
    的头像 发表于 04-16 15:39 1047次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b> LinuxSDK <b class='flag-5'>开发</b>与系统定制<b class='flag-5'>手册</b>(二)

    RK3576 单板机 LinuxSDK 开发与系统定制手册

    本文为创龙科技RK3576 单板机 Linux 系统开发指南,涵盖 SDK 搭建、内核与引导程序开发、根文件系统修改、镜像打包、分区配置及硬件资源调优等全流程。提供命令实操、参数说明与
    的头像 发表于 04-15 11:18 1079次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b> LinuxSDK <b class='flag-5'>开发</b>与系统定制<b class='flag-5'>手册</b>(<b class='flag-5'>一</b>)

    RK3576 单板机系统使用手册:配置、升级与组件安装指南(三)

    本文为创龙科技RK3576 单板机系统使用指南,全面覆盖系统基础配置、升级流程与组件安装。详解内存存储分区、网络静态 IP 配置、OTA/U 盘升级操作,以及常用开发组件部署方法。创龙科技以实操为核心,提供标准化步骤与命令示例,
    的头像 发表于 04-07 11:40 264次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>系统使用<b class='flag-5'>手册</b>:配置、升级与组件安装指南(三)

    RK3576 单板机系统使用手册:配置、升级与组件安装指南(二)

    本文为创龙科技RK3576 单板机系统使用指南,全面覆盖系统基础配置、升级流程与组件安装。详解内存存储分区、网络静态 IP 配置、OTA/U 盘升级操作,以及常用开发组件部署方法。创龙科技以实操为核心,提供标准化步骤与命令示例,
    的头像 发表于 04-03 11:39 1314次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>系统使用<b class='flag-5'>手册</b>:配置、升级与组件安装指南(二)

    RK3576 单板机系统使用手册:配置、升级与组件安装指南(

    本文为创龙科技RK3576 单板机系统使用指南,全面覆盖系统基础配置、升级流程与组件安装。详解内存存储分区、网络静态 IP 配置、OTA/U 盘升级操作,以及常用开发组件部署方法。创龙科技以实操为核心,提供标准化步骤与命令示例,
    的头像 发表于 04-02 10:46 357次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>系统使用<b class='flag-5'>手册</b>:配置、升级与组件安装指南(<b class='flag-5'>一</b>)