您的位置:首页 > 其它

全志H3平台应用层使用串口出现权限不够问题解决

2017-08-02 17:04 357 查看
  目前在使用全志H3完成一个项目,其中涉及到串口和下位机通信的问题,在应用层直接使用了Google开源的一个jni demo进行修改调试(google serial_port demo),应用界面如下:



 配置好串口通道和波特率之后,出现了”you dont have read/write permission to the serial port“的提示,平台只留下了一路串口,已经测试串口端口哈选择没有错误,而Android平台波特率也应该是115200,显然,这是因为权限不足导致。而且在测试的时候发现如果选择ttyS2的话就没有权限限制的问题,这证明ttyS2的权限是的打开的,但是ttyS0却没有设置。但幸好这个串口能够打印系统信息出来,那么通过secureCRT工具进入到设备去看看ttyS2 和ttyS0是个什么状态,果然,ttyS2是默认就能够读写的:



  而ttyS0的权限为:crw-----,设备很显然是不能够读写的,所以才出现了上述的提示,然后在这里手动修改了ttyS0的权限:chmod 777 dev/ttyS0然后再次通过串口应用demo进进行访问则ok了,这更加证明问题就在于此。那么如何去系统源码里面去修改默认读写权限呢?之前在使用Samsung 6818平台的时候有转过一篇文章:http://blog.csdn.net/zhaoqi2617/article/details/53392495 ,里面也提到了修改相应的init.rc文件,增加权限,但是平台不一样,相应的文件路径也完全不同,名称也可能不同,因此不可能直接搜索得到。但且本平台的ttyS2权限已经有修改过,因此随着这写线索去找ttyS2的权限配置肯定比全局搜索来的快很多,在android
目录下的方案文件夹下面,进入到自己的方案文件夹,可是并没有找到一个像样的.rc文件,搜索了一下ttyS2也没有找到相应的配置线索。于是退回到上一级目录,进入到公版的方案目录内,找到一个init.sun8i.rc的文件,打开后搜索,果然发现了ttyS2的权限配置:



  那么肯定要在这里添加ttyS0的权限了,依葫芦画瓢,即:chmod 0777 /dev/ttyS0。退出后保存,准备编译,但是!突然想到个问题,这个是在公版方案里面修改的,我编译的并不是公版方案,能够起作用吗?于是想到肯定在自己的方案目录里面有相应的文件调用或者配置,搜索了自己方案目录内的情况,在方案.mk文件里面有:include device/~~/dolphin-common.mk那么再去看看看dolphin-common.mk文件里面是否有定义:



     上图中在dolphin-common.mk文件当中已经对init.sun8i.rc进行了定义,因此反推回去,在common里面进行的配置是能够在自己的方案里面生效使用的。最后编译android部分,刷机。进入到dev/下查看uart0/ttyS0的权限已经变成默认可读写了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐