Home

cubie.cc CubieBoard中文论坛

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

安卓APP如何操作Cubieboard2的GPIO口

[复制链接]

1

主题

0

好友

299

积分

中级会员

Rank: 3Rank: 3

贡献
63
金钱
105
威望
63
买家信用
卖家信用
积分
299
发表于 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的确切路径以及如何让修改后的配置生效。再次感谢!

回复

使用道具 举报

31

主题

8

好友

6196

积分

论坛元老

Rank: 8Rank: 8

贡献
1188
金钱
2332
威望
1188
买家信用
卖家信用
积分
6196
发表于 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。

看您的熟悉程度了。



要联系我的:   mickey_shi@outlook.com
回复

使用道具 举报

1

主题

0

好友

299

积分

中级会员

Rank: 3Rank: 3

贡献
63
金钱
105
威望
63
买家信用
卖家信用
积分
299
发表于 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 提供的方法也没活过来,愁啊!大神知道如何恢复不?
回复

使用道具 举报

31

主题

8

好友

6196

积分

论坛元老

Rank: 8Rank: 8

贡献
1188
金钱
2332
威望
1188
买家信用
卖家信用
积分
6196
发表于 2017-1-2 12:49:10 |显示全部楼层
星悬_月 发表于 2017-1-1 22:50
感谢回复,我现在基本上有思路了。我发现gpio_sunxi.ko已经注册,只要修改.fex文件就好了。但是通过drago ...

sorry,毕竟cb2是我2013年玩的...后续就未再玩了
要联系我的:   mickey_shi@outlook.com
回复

使用道具 举报

1

主题

0

好友

299

积分

中级会员

Rank: 3Rank: 3

贡献
63
金钱
105
威望
63
买家信用
卖家信用
积分
299
发表于 2017-1-2 15:00:27 |显示全部楼层
醉月 发表于 2017-1-2 12:49
sorry,毕竟cb2是我2013年玩的...后续就未再玩了

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

使用道具 举报

31

主题

8

好友

6196

积分

论坛元老

Rank: 8Rank: 8

贡献
1188
金钱
2332
威望
1188
买家信用
卖家信用
积分
6196
发表于 2017-1-2 20:00:50 |显示全部楼层
星悬_月 发表于 2017-1-2 15:00
没关系,我自己找到方法救活了。就是镜像中的sys_config.fex不能改,改完再烧到板子里就挂了,又得重烧官 ...

莫非格式、范围不对?
要联系我的:   mickey_shi@outlook.com
回复

使用道具 举报

1

主题

0

好友

299

积分

中级会员

Rank: 3Rank: 3

贡献
63
金钱
105
威望
63
买家信用
卖家信用
积分
299
发表于 2017-1-3 08:36:39 |显示全部楼层
醉月 发表于 2017-1-2 20:00
莫非格式、范围不对?

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

使用道具 举报

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

Archiver|手机版|邮件群发|cubie.cc---深刻的嵌入式技术和应用讨论中文社区 ( 粤ICP备13051116号-1  

GMT+8, 2017-8-23 10:22 , Processed in 0.031683 second(s), 7 queries , Apc On.

Powered by Discuz! X2.5 Licensed

© 2001-2012 Comsenz Inc. | Style by Coxxs

回顶部