首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—Linux应用开发手册

创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—Linux应用开发手册

原创
作者头像
创龙科技Tronlong
发布2025-09-25 11:42:31
发布2025-09-25 11:42:31
1100
举报

前 言

创龙科技研发的评估板需配套专项开发案例实现功能开发。为助力开发者快速上手,本文提供 Linux 与 Python 两类开发案例,详细讲解各案例功能、硬件连接、操作命令及关键代码,同时说明案例编译与运行环境配置要点,帮助开发者高效完成评估板应用开发与功能验证。

如需重新编译Linux常用开发案例,请先参考《Debian系统使用手册》文档正确安装、编译LinuxSDK,构建适配评估板的交叉编译工具链。然后将对应案例src目录拷贝至Ubuntu工作目录下,在src目录执行如下命令配置交叉编译工具链,并执行make命令进行案例编译。编译完成后,将在当前目录下生成可执行文件。

Host# export PATH=/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/extra-tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin:$PATH

Host# make CC=aarch64-linux-gnu-gcc

图 1
图 1

Linux常用开发案例

led_flash案例

案例功能

本案例通过向评估底板用户可编程指示灯LED设备节点反复交替写入1、0数值,实现LED闪烁效果。LED点亮与熄灭时间均为0.5s。

程序流程如下图所示。

图 2
图 2

LED设备节点为"/sys/class/leds/user-ledX/"目录下的brightness。

图 3
图 3

操作说明

将本案例bin目录下的可执行程序led_flash拷贝至评估板文件系统,并在可执行程序所在目录执行如下命令运行程序,即可看到评估底板LED以0.5s的时间间隔进行闪烁。同时,串口终端打印系统全部LED设备信息和程序当前控制的LED设备信息。

Target# ./led_flash -help

Target# ./led_flash -n 2

图 4
图 4

关键代码

(1)预定义LED数组。程序由此数组获取LED信息,数组信息必须为系统已有LED信息,否则程序运行报错。

图 5
图 5

(2)LED亮灭操作和时间间隔。

图 6
图 6

key_demo案例

案例功能

本案例通过监听用户输入按键USER1(KEY4)、USER2(KEY5)的状态,检测按键事件。

案例将获取按键事件后进行按键键值匹配,再进行事件处理,程序流程如下图所示。

图 7
图 7

操作说明

本次测试以用户输入按键USER1(KEY4)示例进行测试,如需测试用户输入按键USER2(KEY5),请修改对应的设备节点。

将本案例bin目录下的可执行程序key_demo拷贝至评估板文件系统,在可执行程序所在目录执行如下命令运行程序,串口终端将打印提示信息。再按下评估板用户输入按键USER1(KEY4),程序将检测到按键事件,并打印按键状态信息。

Target# ./key_demo -help

Target# ./key_demo -d /dev/input/event6

图 8
图 8

关键代码

(1)定义按键。

图 9
图 9

(2)监听按键事件。

图 10
图 10

(3)循环监听。

图 11
图 11

can_echo案例

案例功能

本案例实现通过绑定一个CAN总线接口用于接收数据,当CAN端口接收到数据后,将数据重新发送到CAN总线接口。

程序流程如下图所示。

图 12
图 12

操作说明

请使用USB-CAN分析仪(型号:广成科技USBCAN-II FD)连接评估板CAN0 SPI0或CAN1 SPI0任一接口至PC机USB接口,硬件连接如下图所示。

本次测试以CAN0 SPI0接口(设备节点为:can0)为例进行演示。如需测试CAN1 SPI0接口,请将设备节点修改为can1。

图 13
图 13

评估板CAN0 SPI0接口与USB-CAN分析仪的连接关系如下表所示。

请参照《调试工具安装》文档安装GCAN Tools调试软件。在PC端打开GCANTools软件,选择设备类型,然后点击“打开设备”。根据USB-CAN分析仪实际硬件连接,选择CAN1或CAN2。等待软件检测到设备后,设置波特率为"1000K",然后点击“确定”,如下图所示。

图 14
图 14

进入GCAN Tools软件发送界面,取消"CAN FD"选项,USB-CAN分析仪连接成功后将会显示Connected状态,如下图所示。

图 15
图 15

评估板启动进入评估板文件系统,执行如下命令配置CAN0 SPI0接口波特率为1Mbps,并启动CAN0总线。

Target# ip link set can0 down

Target# ip link set can0 type can bitrate 1000000

Target# ip link set can0 up

图 16
图 16

将本案例bin目录下的可执行程序can_echo拷贝至评估板文件系统,进入可执行程序所在目录,执行如下命令查看程序参数信息。

Target# ./can_echo --help

图 17
图 17

执行如下命令绑定CAN SPI0接口,并接收由GCAN Tools发出的数据,然后将接收到的数据重新发送出去。在GCAN Tools中输入数据并点击发送按钮,可看到有两帧数据,一帧是发送数据,另一帧是接收数据。

Target# ./can_echo -v can0

图 18
图 18
图 19
图 19
图 20
图 20
图 21
图 21

可按"Ctrl + Z"暂停程序,并执行如下命令退出程序。

Target# killall -9 can_echo

图 22
图 22

关键代码

(1)使用socket监听CAN接口。

图 23
图 23

(2)将从CAN接口接收到的数据重新发送出去。

图 24
图 24

tcp_udp案例

案例功能

本案例主要实现客户端(client)与服务端(server)的文本数据相互收发功能。本案例包含4个程序:

(1)tcp_server:TCP服务端测试程序。

(2)tcp_client:TCP客户端测试程序。

(3)udp_server:UDP服务端测试程序。

(4)udp_client:UDP客户端测试程序。

程序流程如下图所示。

图 25 TCP通信
图 25 TCP通信
图 26 UDP通信
图 26 UDP通信

服务端和客户端程序均可在评估板、PC机Ubuntu系统上运行。本章节采用评估板本地回环测试,即服务端与客户端程序均在评估板上运行,通过127.0.0.1进行本地回环测试,无需经过路由器。案例bin目录下的4个文件均为ARM端可执行程序。

操作说明

将本案例bin目录下的4个可执行程序拷贝至评估板文件系统。

在Ubuntu中执行如下命令使用OpenSSH登录评估板文件系统,如下图所示。

Host# sudo ssh root@192.168.13.19 //192.168.13.19为评估板IP地址,请根据实际情况修改

图 27
图 27

(1)TCP通信测试

在可执行程序所在目录执行如下命令,分别在评估板运行TCP服务端和客户端程序。2233为服务端程序指定的端口号,客户端程序端口号参数需与服务端程序一致。

Target# ./tcp_server 2233 //TCP服务端命令

Host# ./tcp_client 127.0.0.1 2233 //TCP客户端命令

程序执行后,客户端将会连接服务端。在服务端(Target)输入字符串"Tronlong",按下回车键即可在客户端显示对应内容。在客户端(Host)输入字符串"Hello Tronlong",按下回车键即可在服务端显示对应内容,如下图所示。

图 28 TCP服务端
图 28 TCP服务端
图 29 TCP客户端
图 29 TCP客户端

(2)UDP通信测试

在可执行程序所在目录执行如下命令,分别在评估板运行UDP服务端和客户端程序。2233为服务端程序指定的端口号,客户端程序端口号参数需与服务端程序一致。

Target# ./udp_server 2233 //UDP服务端命令

Host# ./udp_client 127.0.0.1 2233 //UDP客户端命令

程序执行后,客户端将不会自动连接服务端。服务端在收到客户端信息前无法得知客户端的存在,因此需要客户端先向服务端发送信息。

在客户端(Host)输入字符串"Tronlong",按下回车键即可在服务端显示对应内容。在服务端(Target)输入字符串"Hello Tronlong",按下回车键即可在客户端显示对应内容,如下图所示。

图 30 UDP客户端
图 30 UDP客户端
图 31 UDP服务端
图 31 UDP服务端

如需在PC机Ubuntu系统运行服务端或客户端程序,请将案例src源码目录拷贝至Ubuntu工作目录。进入源码目录后执行make命令,即可在当前目录下生成x86端可执行程序。在不同终端运行服务端或客户端程序的命令类似,但127.0.0.1需使用服务器IP地址替代。

Host# make

图 32
图 32

关键代码

以TCP通信程序为例。

(1)tcp_client.c

注意源码中的struct sockaddr_in、socket、connect、fgets、send、recv等数据结构和系统调用的使用。

(2)tcp_server.c

注意源码中的struct sockaddr_in、socket、connect、fgets、send、recv、bind、listen、accept等数据结构和系统调用的使用。

由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前 言
  • Linux常用开发案例
    • led_flash案例
      • 案例功能
      • 操作说明
      • 关键代码
    • key_demo案例
      • 案例功能
      • 操作说明
      • 关键代码
    • can_echo案例
      • 案例功能
      • 操作说明
      • 关键代码
    • tcp_udp案例
      • 案例功能
      • 操作说明
      • 关键代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档