嵌入式发烧友 发表于 2021-8-24 11:20:04

「含关键代码」基于AM3352/AM3354/AM3359的Linux开发案例分享

本帖最后由 嵌入式发烧友 于 2021-8-24 13:53 编辑

目录1. tl_led_flash案例1.1 案例功能1.2 操作说明1.3 关键代码2. tl_key_test案例2.1 案例功能2.2 操作说明2.3 关键代码3. tl_uart_rw案例3.1 案例功能3.2 操作说明3.3 关键代码
遇到不少人新手小白问,前辈能不能分享几个Linux应用开发案例?之前一直都是在用win开发,现在想要尝试用Linux做开发等等一系列的问题。
应广大用户朋友需求号召,今天给大家分享基于创龙科技的TL335x-EVM(
AM3352/AM3354/AM3358/AM3359)ARM Cortex-A8架构的一系列开发板,详细讲解Linux的应用开发案例,分别涵盖了tl_led_flash案例、tl_key_test案例、tl_uart_rw案例、tl_can_echo案例、tl_devmem_rw案例、tcp_udp_demos案例、Python开发案例等等。如需重新编译Linux常用开发案例,请将对应案例src目录复制到Ubuntu工作目录下,进入src目录执行如下命令加载Linux Processor SDK环境变量,并执行make命令进行案例编译。编译完成后,将在当前目录下生成可执行文件。
Host# source /home/tronlong/ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05/linux-devkit/environment-setupHost# make
如需重新编译Linux常用开发案例,请将对应案例src目录复制到Ubuntu工作目录下,进入src目录执行如下命令加载Linux Processor SDK环境变量,并执行make命令进行案例编译。编译完成后,将在当前目录下生成可执行文件。Host# source /home/tronlong/ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05/linux-devkit/environment-setupHost# makehttps://p3.toutiaoimg.com/img/pgc-image/c615a5b3c3304c81bdc5b3f872a17783~tplv-obj.jpg
图 1
Linux常用开发案例1、 tl_led_flash案例1.1案例功能本案例通过向评估底板用户指示灯LED设备节点反复交替写入1、0数值,实现LED闪烁效果。LED点亮与熄灭时间均为0.5s。程序流程如下图所示:https://p6.toutiaoimg.com/img/pgc-image/ab99bc2e75004043ae631a7c97913af0~tplv-obj.jpg
​图 2LED设备节点为“/sys/class/leds/user-ledX/”目录下的brightness。https://p26.toutiaoimg.com/img/pgc-image/7662fc1b7b0640c8a159f860583ac783~tplv-obj.jpg
​图 31.2操作说明将本案例bin目录下的可执行程序tl_led_flash复制到评估板文件系统,并在可执行程序所在目录执行如下命令运行程序,即可看到评估底板LED以0.5s的时间间隔进行闪烁。同时,串口终端打印系统全部LED设备信息和程序当前控制的LED设备信息。Target# ./tl_led_flash -helpTarget# ./tl_led_flash -n 3https://p3.toutiaoimg.com/img/pgc-image/3d5d19d0c0774967a711661805217e44~tplv-obj.jpg
​图 41.3关键代码
[*]预定义LED数组。程序由此数组获取LED信息,数组信息必须为系统已有LED信息,否则程序运行报错。
https://p26.toutiaoimg.com/img/pgc-image/610a1ae925b44ffb8f2cdae72b5d7cc0~tplv-obj.jpg
​图 52.LED亮灭操作和时间间隔。https://p9.toutiaoimg.com/img/pgc-image/58f8ae3c530e49f7b2c7156b65199d15~tplv-obj.jpg
​图 62、tl_key_test案例2.1案例功能本案例通过监听用户按键KEY5设备节点状态,检测按键事件。程序流程如下图所示:https://p26.toutiaoimg.com/img/pgc-image/930f0f60f6634925a7f7ab569c44c259~tplv-obj.jpg
​图 7用户按键设备节点为“/dev/input/event1”。获取按键事件后进行按键键值匹配,再进行事件处理。2.2操作说明将本案例bin目录下的可执行程序tl_key_test复制到评估板文件系统,在可执行程序所在目录执行如下命令运行程序,串口终端将打印提示信息。再按下评估板用户按键KEY5,程序将检测到按键事件,并打印按键状态信息。Target# ./tl_key_test -helpTarget# ./tl_key_test -d /dev/input/event1https://p3.toutiaoimg.com/img/pgc-image/9964ad6233c341c1ae16941e8ae2ac2b~tplv-obj.jpg
​图 82.3关键代码1.定义按键。https://p5.toutiaoimg.com/img/pgc-image/5b6cb70b59b241a785b16245dae6db80~tplv-obj.jpg
​图 92.监听按键事件。https://p6.toutiaoimg.com/img/pgc-image/08bd703aef94472287bcbdbe56a1ea86~tplv-obj.jpg
​图 103.循环监听。https://p26.toutiaoimg.com/img/pgc-image/93bbefdcde344fa2bb49bee64f1a1d55~tplv-obj.jpg
​图 113tl_uart_rw案例3.1案例功能本案例主要实现串口读写功能。程序流程如下图所示:https://p26.toutiaoimg.com/img/pgc-image/3ca210bc0ded43fdbdcf472492b89da0~tplv-obj.jpg
​图 12RS232、RS485串口设备节点分别为“/dev/ttyS0”、“/dev/ttyS1”。串口初始化时将设置波特率、模式、数据位、停止位等参数。通过设备文件描述符对串口进行读写操作。3.2操作说明使用RS232交叉串口母线、USB转RS232公头串口线,将评估板的RS232串口连接到PC机的USB接口,如下图所示。
https://p26.toutiaoimg.com/img/pgc-image/6e450a56763a4821b47001470b2e4df1~tplv-obj.jpg
​图 13将本案例bin目录下的可执行程序tl_uart_rw复制到评估板文件系统,进入可执行程序所在目录,执行如下命令查看程序参数信息。Target# ./tl_uart_rw -h
https://p6.toutiaoimg.com/img/pgc-image/9a2e60fe658843ae96742a4acfb1ae47~tplv-obj.jpg
​图 14执行如下命令进行RS232串口数据读操作。Target# ./tl_uart_rw -d /dev/ttyS0 -r -s 8打开产品资料“4-产品资料\Tools\Windows\”目录下的串口调试工具SerialDebug.exe,打开PC机设备管理器,确认RS232串口COM端口号,并按照下图步骤进行操作或设置,从串口调试工具往RS232串口发送数据。调试串口终端将会打印从RS232串口读取到的数据。
https://p6.toutiaoimg.com/img/pgc-image/357ccacbfb284a20831c4a7034b8be0f~tplv-obj.jpg
​图 15
https://p5.toutiaoimg.com/img/pgc-image/ce53f937bf724db9adb2200b1604ce4e~tplv-obj.jpg
​图 16执行如下命令进行RS232串口数据写操作,数据已在程序中定义。串口调试工具将会打印从RS232串口接收的数据。Target# ./tl_uart_rw -d /dev/ttyS0 -w -s 8https://p5.toutiaoimg.com/img/pgc-image/b92448e6df4140c48ca4bd73783227c7~tplv-obj.jpg
​图 17https://p6.toutiaoimg.com/img/pgc-image/a808bef55adf401a84c911fc7089e79c~tplv-obj.jpg
​图 18
使RS232转RS485模块、USB转RS232公头串口线,将评估板的RS485串口连接到PC机的USB接口,如下图所示。
https://p6.toutiaoimg.com/img/pgc-image/fefe9cf991e34851be5adad418d06113~tplv-obj.jpg
图19
RS232转RS485模块与评估板上RS485串口连接方法如下:
[*]RS232转RS485模块485+端子,连接评估板RS485串口A端子。
[*]RS232转RS485模块485-端子,连接评估板RS485串口B端子。
[*]RS232转RS485模块GND端子,连接评估板RS485串口GND端子。
执行如下命令进行RS458串口数据读写操作。RS485串口测试步骤与现象与RS232类似,命令中的设备节点由ttyS0改成ttyS1即可。Target# ./tl_uart_rw -d /dev/ttyS1 -r -s 8 //RS485串口数据读操作Target# ./tl_uart_rw -d /dev/ttyS1 -w -s 8 //RS485串口数据写操作3.3关键代码
[*]串口初始化函数。
https://p26.toutiaoimg.com/img/pgc-image/194857814d574f74bdf9922e7db7f80f~tplv-obj.jpg
​图 202.串口读写函数。https://p6.toutiaoimg.com/img/pgc-image/777906177cec4466aa6b7f0d467d6b30~tplv-obj.jpg
​图 21
https://p6.toutiaoimg.com/img/pgc-image/85e502b006dd4a96848e29e180daaf00~tplv-obj.jpg
​图 22
3.回环测试。https://p3.toutiaoimg.com/img/pgc-image/0be544a3347140a9a0c1b5e47377994b~tplv-obj.jpg
​图 23
4.相关逻辑。
https://p3.toutiaoimg.com/img/pgc-image/be5802afef1047da93ba483f54a27db7~tplv-obj.jpg
​图 24
由于开发案例篇幅过长,给大家分为多个版本,今天先讲tl_led_flash案例、tl_key_test案例、tl_uart_rw案例。感兴趣的朋友,欢迎点赞评论区留言和我探讨!

页: [1]
查看完整版本: 「含关键代码」基于AM3352/AM3354/AM3359的Linux开发案例分享