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

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

3天内不再提示

实习大学生如何在Purple Pi OH鸿蒙开发板下调试Android串口

触觉智能 2024-05-14 08:32 次阅读

开源鸿蒙硬件方案领跑者触觉智能

本文适用于Purple Pi OH在Android固件后串口的开发与使用。触觉智能的Purple Pi OH鸿蒙开源主板,是华为Laval官方社区主荐的一款鸿蒙开发主板。

71de3f94-1189-11ef-9118-92fbcf53809c.png

722de68e-1189-11ef-9118-92fbcf53809c.jpg

该主板主要针对学生党,极客,工程师,极大降低了开源鸿蒙开发者的入门门槛,具有以下几点优势:

支持开源鸿蒙/Linux /Andriod 11/麒麟,兼容树莓派 ;

四核A55,最高1.8G主频 Mali G52-2EE GPU ;

支持OpenGL/CL/Vulkan/1T NPU/8MISP ;

支持TensorFlow/MXNet/PyTorch/Caffe ;

支持1*千兆以太网、3*USB2.0、1*USB3.0、3*UART、2*SPI、2*I2C、28*GPIO、1*MIPI DSI、1*HDMI ;

支持OpenHarmony3.2/4.0/4.1版本,开放SDK源代码 ;

活跃的开发者社区, 更多牛人在线威廉希尔官方网站 支持 ;

超小尺寸,极致性价比,只需249元 ;


1、介绍今天的文章主题是分享与探讨关于Purple Pi OH开发板烧写Android 11固件后串口的开发与使用。基于嵌入式开发的步骤,每个模块的开发与使用前都需要测试其单独工作时的状态是否正常。因此我们通常上来就会直接使用USB TO TTL串口模块(下文称CH340)连接Purple Pi OH开发板的RX、TX引脚,然后使用PC机的串口调试助手对其进行收发数据。


2、PC直连Purple Pi OH测试串口

接下来我将详细介绍PC通过CH340连接Purple Pi OH开发板后测试串口是否正常,若此方法您已使用并且还是无法打开串口,可以跳过此小段直接看后续的方法。

2.1

CH340驱动安装

在连接CH340模块至电脑时,很多新手甚至老鸟都会遇到很多奇奇怪怪的问题,基本最终的表现都是“设备管理器”中无法正常显示CH340所在的端口,如下图所示:

72b03b3e-1189-11ef-9118-92fbcf53809c.png

现在我来分享如何排查PC无法识别CH340的可能问题:

1.驱动未安装:当“设备管理器“显示未知设备并且图标上带有黄色感叹号时,我们首先需要检查我们的PC机是否安装了CH340对应的驱动,安装方法如下:

a)下载CH340驱动安装软件,一般在网上一检索就可以下载到72daaa22-1189-11ef-9118-92fbcf53809c.png,我们双击打开后,页面如下图所示:

72f19a2a-1189-11ef-9118-92fbcf53809c.png

b) 安装之前先点击卸载,这是为了防止电脑之前有驱动残留的数据,卸载完毕后我们再点击安装即可。

2. CH340模块本身损坏:CH340插入USB口时,模块本身会有红色PWR灯亮起,若不亮可能是模块本身损坏。

3. 扩展坞或PC主板USB口损坏:如果上述的方法无法解决,我们也应该考虑是否是扩展坞或者PC主板USB口损坏,此时我们需要更换USB口甚至更换另一台PC机插入排查是不是这个问题。

4. 开发板连接着CH340导致无法识别:导致这种现象的原因有很多种,可能是您使用开发板给CH340提供了错误的供电,当供电不稳定或者电流不足有可能会导致CH340无法正常工作,因此我们通常只连接CH340和开发板的GND、Tx、Rx引脚。还有可能是开发板硬件资源与CH340有冲突导致无法识别。甚至是开发板电路设计问题,即没有按照CH340规范来设计电路等原因。


2.2硬件连接

1.将CH340插入PC机USB口,打开“设备管理器”

2.在设备管理器列表中,找到“端口 (COM & LPT)”类别,展开它。你应该能看到一个标记为“USB-SERIAL CH340”(或类似名称)的设备,旁边会显示它的 COM 端口号,比如 COM6。

730a920a-1189-11ef-9118-92fbcf53809c.png

若成功显示,即代表CH340模块正常。

3.接下来我们需要将CH340的RX和TX分别连接在PurplePiOH开发板的TX和RX脚上,在连接时可以根据背后丝印来判断是否连接正确。PurplePiOH开发板串口节点/dev/ttyS0引脚位置,如下图 所示:

731f9df8-1189-11ef-9118-92fbcf53809c.png

至此我们的硬件连接就完成了,接下来可以开始软件测试串口步骤。


2.3软件测试

1.第一步我们首先需要进入PurplePiOH开发板的命令行终端,可以通过ADB连接到其中。ADB的使用方法可以参考触觉智能官网产品资料中的4.2章节,链接如下:

https://industio.yuque.com/mdtih8/gyzv1h/uecrhad89197uh01?singleDoc#aOLed

2.第二步我们进入到命令行后,使用”su”切换为root身份,通过执行“dmesg | grep tty”命令查看系统启动时识别到的串口设备,再使用stty命令检查和设置串口参数,例如”stty –F /dev/ttyS0 115200”将串口节点波特率设置为115200.

7370edca-1189-11ef-9118-92fbcf53809c.png

3.第三步我们打开SSCOM或者类似的串口调试助手,选择“设备管理器“中识别到的COM口,配置波特率为刚刚使用stty命令设置的波特率,同时设置数据位、停止位、校验位以及流控制参数分别为8,1,None,None,随后点击打开串口,如下图所示:

738bdba8-1189-11ef-9118-92fbcf53809c.png 

4.如果此时一切顺利,我们便可以通过SSCOM与PurplePiOH开发板互相收发串口信息,发送数据使用指令”echo “test” > /dev/ttyS0”,查看开发板接收到的数据使用”cat /dev/ttyS0”,此时SSCOM发送数据到开发板,开发板会将串口数据回显至SSCOM,如下图所示:

739ba254-1189-11ef-9118-92fbcf53809c.png 

2.4其他常见问题

1.数据呈现乱码或者”\0\0\0…”:波特率设置不对,使用stty修改开发板串口节点波特率后再次尝试。

2.怎么查看串口节点:通过命令”ls /dev/tty*”查看设备串口节点,通过硬件规格书或者使用手册查询开发板串口引脚或端口位置。

3.设备节点无法操作:通过”ls –l /dev/tty*”查看是否权限不足,通过su切换管理员后使用”chmod 666 /dev/ttyS0“修改文件读写权限。

4.用户使用自己的app无法打开串口节点:先查看自己的app是否在Android11的版本被支持,也有可能app不扫描这个节点名称,可以重新找一个串口助手查看是app问题还是串口节点问题(可以使用Google开源SerialPort)。或者查看串口是否被占用,尝试打开其他串口设备节点。

3、Android 11 SELinux功能

若上述操作无法解决串口无法被访问的问题,我们就需要查看SELinux是否对我们的访问做了限制,接下来我将分享SELinux的概念和处理方式。

3.1SELinux简介

在基于Android的设备上,SELinux(Security-Enhanced Linux)是一种安全模块,用于强化访问控制策略。SELinux可以通过强制访问控制(MAC)来限制应用程序和系统进程对系统资源的访问。

3.2SELinux阻止串口被访问的情况

1.没有正确的SELinux政策:如果SELinux政策没有为访问特定串口的进程或应用程序明确授权,那么访问会被阻止。需要相应的SELinux上下文或标签(如userial_device:s0)允许对应用程序或进程访问串口。

2.SELinux处于Enforcing模式:当SELinux处于Enforcing模式时,它会强制执行所有的安全策略,并阻止任何违反这些策略的行为。如果串口设备的SELinux标签或访问控制列表(ACL)配置不正确,任何尝试访问这些设备的操作都会被阻止。此时我们可以使用“getenforce“命令直接检查SELinux的模式。

3.设备文件权限不足:串口通常作为设备文件(如/dev/ttyS0)存在于文件系统中。如果这些文件的SELinux标签设置不允许特定的访问(例如,某个应用需要读写权限但仅被授予了读权限),则访问会被拒绝。

3.3解决SELinux串口访问问题

要解决由SELinux导致的串口访问问题,可以采取以下步骤:

1.检查SELinux状态:使用“getenforce“命令查看SELinux的当前模式。如果是Enforcing,系统会强制执行所有策略。

2.查看和修改SELinux政策:使用”audit2allow”查看由于SELinux政策被拒绝的相关日志,以了解为什么访问被拒绝。根据需要调整或创建新的SELinux政策。这可能需要深入了解SELinux政策语言,并使用如semanage和semodule等工具。

3.临时切换到Permissive模式:作为临时解决方案,可以将SELinux设置为Permissive模式,这样SELinux不会阻止任何操作,但会记录所有违反政策的行为。可以使用“setenforce 0“命令来实现,如下图所示:

73aa06dc-1189-11ef-9118-92fbcf53809c.png

4.于安卓源码中关闭:修改安卓源码中device/rockchip/common/BoardConfig.mk 的BOARD_SELINUX_ENFORCING := false;

5.确保有适当的设备文件权限:确保应用或进程有正确的权限来访问串口设备文件。使用ls -l查看设备文件的权限和所有权。

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

    关注

    12

    文章

    3888

    浏览量

    126184
  • 串口
    +关注

    关注

    14

    文章

    1516

    浏览量

    74943
  • 开发板
    +关注

    关注

    25

    文章

    4639

    浏览量

    95323
收藏 人收藏

    评论

    相关推荐

    【触觉智能 Purple Pi OH 开发板体验】+1、开箱体验

    感谢eefans和厂家的板卡体验活动,有幸体验Purple Pi OH 开发板,对标树莓派4B的一款国产开发板
    的头像 发表于 07-23 14:03 1396次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>开发板</b>体验】+1、开箱体验

    【触觉智能 Purple Pi OH 开发板体验】+ 熟悉PurplePiOH编译固件

    Purple Pi OH 开发板鸿蒙使用体验。熟悉了软硬件环境,烧写固件。搭建了固件开发环境,
    的头像 发表于 07-26 16:01 1348次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>开发板</b>体验】+ 熟悉PurplePiOH编译固件

    【触觉智能 Purple Pi OH 开发板体验】+2、烧录debian固件体验

    厂家为Purple Pi OH 提供了多种系统。
    的头像 发表于 07-27 09:05 843次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>开发板</b>体验】+2、烧录debian固件体验

    【触觉智能 Purple Pi开发板试用】+初始Purple Pi开发板

    器,则会见到有虚拟的串口出现,见图5所示。图5 虚拟串口既然有串口,在没有显示器件的情况下,它能带来怎样的输出信息呢?打开串口调试工具,咋啥
    发表于 12-03 23:06

    [触觉智能 Purple Pi OH开发板体验]一.开箱初体验

    [触觉智能 Purple Pi OH开发板体验]开箱篇 一.前言 感谢电子发烧友平台和触觉智能科技提供的开发板,很兴奋能成为试用者之一。这块
    发表于 07-28 20:44

    【触觉智能 Purple Pi OH 开发板体验】检测Android系统的完备性

    利。 百度搜索“电子发烧友”有效,直接使用主页中的谷歌搜索则搜索不到网页,看来国内还是用不了谷歌的搜索引擎。 接下来再来看看Purple Pi OH装载Android系统时的音视频编解
    发表于 09-10 17:23

    华为开发者分论坛HarmonyOS学生公开课-大学生如何学习鸿蒙

    2021华为开发者分论坛HarmonyOS学生公开课-大学生如何学习鸿蒙
    的头像 发表于 10-24 10:05 1734次阅读
    华为<b class='flag-5'>开发</b>者分论坛HarmonyOS<b class='flag-5'>学生</b>公开课-<b class='flag-5'>大学生如</b>何学习<b class='flag-5'>鸿蒙</b>

    Purple Pi OH开源主板通过 OpenHarmony 兼容性测评

    2023年3月31日,深圳触觉智能推出的Purple Pi OH开发板顺利通过 OpenHarmony3.14 Release版本兼容性测评。 本次OpenHarmony兼容性测评是保
    的头像 发表于 04-10 09:40 653次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>开源主板通过 OpenHarmony 兼容性测评

    Purple Pi OH Android11 ROOT方法

    为了让应用程序可以直接调用su执行系统命令和获取root权限,本文基于Purple Pi OH主板的Android SDK,介绍如果修改和编译一个root版本的
    的头像 发表于 06-25 09:49 610次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>Android</b>11 ROOT方法

    Purple Pi OH Android11 ROOT方法

    为了让应用程序可以直接调用su执行系统命令和获取root权限,本文基于Purple Pi OH主板的Android SDK,介绍如果修改和编译一个root版本的
    的头像 发表于 06-30 14:59 497次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>Android</b>11 ROOT方法

    【触觉智能 Purple Pi OH 开发板体验】+初识紫色派

    Purple Pi OH智能主板是一款配置有Rockchip RK3566四核Cortex-A55处理器的开发板,其主频最高可达1.8GHz,LPDDR4/LPDDR4X 默认2GB
    的头像 发表于 07-25 08:57 1024次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>开发板</b>体验】+初识紫色派

    Purple Pi OH 开发板体验:固件开发+应用开发

    触觉智能 Purple Pi OH 开发板体验的开发环境,介绍了设备端和应用端的基本知识点
    的头像 发表于 08-04 10:52 646次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>开发板</b>体验:固件<b class='flag-5'>开发</b>+应用<b class='flag-5'>开发</b>

    Purple Pi OH 开发板体验:应用开发的问题

    本文使用触觉智能 Purple Pi OH 开发板开发鸿蒙应用,遇到问题并解决一部分,目前cod
    的头像 发表于 08-11 19:17 500次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>开发板</b>体验:应用<b class='flag-5'>开发</b>的问题

    【触觉智能 Purple Pi OH 开发板体验】+ 两款Purple Pi的对比

    先前曾使用过Purple Pi,此次又见到了Purple Pi OH,就对这两款产品进行简单的对比。
    的头像 发表于 08-17 10:11 1133次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>开发板</b>体验】+ 两款<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b>的对比

    适合大学生鸿蒙开发板-Purple Pi OH之安装Docker

    介绍本文基于purple-pi-oh系列主板演示Linux系统安装Docker,方法适用于RK3566全系列产品。本教程将指导你在基于RK3566的LInux系统上安装Docker。Docker是一
    的头像 发表于 05-10 08:32 223次阅读
    适合<b class='flag-5'>大学生</b>的<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发板</b>-<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>之安装Docker