CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 14722|回复: 6

安卓APP如何操作Cubieboard2的GPIO口

[复制链接]
发表于 2016-12-30 15:17:18 | 显示全部楼层 |阅读模式
小弟近日接触Cubieboard2,想编写安卓APP读板子指定GPIO口的状态,遇到如下问题,望大神们解答,感激不尽:

1. “android应用控制GPIO控制LED灯开发实例”的教程中提及的javalib.jar、android_os_Gpio.cpp和Gpio.java文件我在官方提供的android4.2版本的源码中并没有找到,请问能否提供这两个文件或下载地址?
2. 官方提供的通过GPIO调压的源码gpio-ctrl和cb-gpio-beta1.apk的ubuntuone下载链接已失效,请问能否提供这两个文件或下载地址?
3. 据“A20_script和GPIO开发说明书”中所说,sys_config.fex文件是打包到img中的,这是不是意味着,如果我想对某些GPIO口进行单独配置,是不是得在lichee\tools\pack\chips\sun7i\configs\android\sugar-cubiebard2\sys_config.fex修改[gpio_para]下的内容,重新编译内核源码,编译安卓源码,重烧安卓镜像至cubieboard2中才能使GPIO配置生效?
4. 我知道有个dragon工具可以读取img文件的配置文件sys_config.fex,我直接在该工具中修改配置并保存是否可行?
5. lichee\tools\linux-3.4\drivers\gpio\gpio-sunxi.c读取的配置文件是不是arch\arm\configs目录下的sun7ismp_defconfig文件?还是说是其他文件?sun7ismp_defconfig、sun7ismp_android_defconfig和cubieboard2_config有何区别?哪个才是配置GPIO的关键?

问题比较多,其实关键还是不知道sys_config.fex的确切路径以及如何让修改后的配置生效。再次感谢!

回复

使用道具 举报

发表于 2017-1-1 14:50:34 | 显示全部楼层
本帖最后由 醉月 于 2017-1-1 14:51 编辑

不清楚您对 kernel 部分是否熟悉,也不清楚您是否有了解过 hal 的东西。
其实,如果有兴趣,时间也不紧张的话,建议使用以下流程搞:
1. gpio_get_value()   该函数在 kernel 层可以获取 GPIO 的状态;
2. show()/store() 方法,可以将 kernel 层的东西,导出到 /sys/ 目录下,可以参看 kernel/driver/leds/leds-class.c 以及 /sys/class/leds/ 下的东西。
3. open / read / write   /sys/class/leds/ 下的所需要的节点即可
4. c 和 java 之间通过 jni 的方式,注册一批 native 方法,轻松如愿。

这里涉及到 GPIO 子系统、sysfs 系统、jni。

看您的熟悉程度了。



回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-1 22:50:35 | 显示全部楼层
醉月 发表于 2017-1-1 14:50
不清楚您对 kernel 部分是否熟悉,也不清楚您是否有了解过 hal 的东西。
其实,如果有兴趣,时间也不紧张的 ...

感谢回复,我现在基本上有思路了。我发现gpio_sunxi.ko已经注册,只要修改.fex文件就好了。但是通过dragon工具修改配置后,再使用phoenixsuit烧录固件居然直接挂掉了。使用http://forum.cubietech.com/forum ... &extra=page%3D1 提供的方法也没活过来,愁啊!大神知道如何恢复不?
回复 支持 反对

使用道具 举报

发表于 2017-1-2 12:49:10 | 显示全部楼层
星悬_月 发表于 2017-1-1 22:50
感谢回复,我现在基本上有思路了。我发现gpio_sunxi.ko已经注册,只要修改.fex文件就好了。但是通过drago ...

sorry,毕竟cb2是我2013年玩的...后续就未再玩了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-2 15:00:27 | 显示全部楼层
醉月 发表于 2017-1-2 12:49
sorry,毕竟cb2是我2013年玩的...后续就未再玩了

没关系,我自己找到方法救活了。就是镜像中的sys_config.fex不能改,改完再烧到板子里就挂了,又得重烧官方的镜像,郁闷中。。。
回复 支持 反对

使用道具 举报

发表于 2017-1-2 20:00:50 | 显示全部楼层
星悬_月 发表于 2017-1-2 15:00
没关系,我自己找到方法救活了。就是镜像中的sys_config.fex不能改,改完再烧到板子里就挂了,又得重烧官 ...

莫非格式、范围不对?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-3 08:36:39 | 显示全部楼层
醉月 发表于 2017-1-2 20:00
莫非格式、范围不对?

不可能的,我就把leds_para下的led_used改为0,重新保存了一下镜像。奇怪的是镜像大了2M,然后再烧录就不好使了,痛苦中。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-22 13:14 , Processed in 0.023930 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部