A20平台要调试GPS模块,A20源码已经集成了GPS模块,只需要在此基础上做小幅度的修改即可。
1、首先修改软件中GPS设备文件 需要确定GPS模块的硬件接口通信方式。本项目中GPS采用串口通信方式,连接串口UART3,需要在
lichee\tools\pack\chips\sun7i\configs\android\wing-n71j\sys_config.fex
中将UART3的配置正确。
[uart_para3]
uart_used = 1
uart_port = 3
uart_type = 2
uart_tx = port:PH00<4><1><default><default>
uart_rx = port:PH01<4><1><default><default>
项目中uart3只用到了2根线,RX和TX
扩展:
RX就是表示接到到的字节数,RX是Receive(接收) 的缩写
TX就是表示发送的字节数,TX是Transmit(传送)的缩写
2、修改gps.c中设备信息
#define GPS_Serial_Name "/dev/ttyS3"
int gps_opentty(GpsState *state)
中open设备文件修改为对应的设备文件
state->fd = open( GPS_Serial_Name, O_RDWR | O_NOCTTY | O_NONBLOCK);
这样就可以读取到串口设备的数据了。其工作原理是,GPS设备上电就会自动的发送数据,软件要去读取正确的设备文件中的数据,所以配置上只需要修改设备文件即可。
3、编译打包img,烧到板子上测试。测试时通过
#define LOG_TAG "gps_xxx"
Logcat –s gps_xxx 获取到打印信息,若打印如下提示
could not open gps serial device /dev/ttyS3 permission denied
这一步可以找硬件量一下电压,看看设备是否已经工作了。
代表权限不够,需要修改设备节点的权限,修改地址:
/android/device/softwinner/wing-n71j/ init.sun7i.rc中增加
chmod 0777 /dev/ttyS3
4、权限文件解决,开机后,可以查看设备有无数据
su下cat /dev/ttyS3
若有如下提示则GPS硬件软件都通
5、下载一个gps测试的apk进行测试。
安装打开应用,需要在设置中将位置信息设置为准确度高,GPS,WLAN和移动网络估测位置,若获取不到位置信息,可以尝试连接一根天线,或者将设备拿到解决户外的地方,屋子里面对获取位置有重大影响
总结:
调试硬件驱动
1、首先确认硬件连接的问题,排除硬件设备方面产生的影响
2、调试软件,驱动一般是厂商提供,主要是修改部分地方即可。
3、测试,自己找方法测试
多思多想