工欲善其事必先利其器,之前做WinCE开发时,经常写一些小工具以提高开发调试的效率,如WinCE驱动调试助手、WinCE串口调试助手、WinCE6.0寄存器访问工具、WinCE远程桌面助手和S3C2410 IIC调试助手等,虽然有些功能不算完善,但在实际工作中还是发挥了一些作用。现在搞Android开发,基本不用自己造轮子了,Linux下有瑞士军刀美称的Busybox就足以处理大多数问题。
今天就以测试一个字符设备驱动为例简单介绍下BusyBox的使用。
Busybox官网下载地址:http://www.busybox.net/downloads/binaries/
Android安装Busybox的方法及步骤可参考:http://omappedia.org/wiki/Android_Installing_Busybox_Command_Line_Tools
本例中主要使用了Busybox的hexdump的功能,将从字符设备中读取的数据按照16进制数据帧的方式显示出来,具体过程请看下图。
调试过程中使用到的命令如下:
adb remount adb push E:\busybox /system/bin busybox --install /system/xbin cat /dev/bonovo_key | hexdump -v -e '"[" 6/1 "%02x " "]\n"' echo -n "\x22\x01\x12\x02\x00\x00" > /dev/bonovo_key echo -n "\x22\x00\x12\x02\x00\x00" > /dev/bonovo_key
说明:bonovo_key是一个字符设备,专门处理按键信息,支持从串口设备获取远端MCU发过来的按键信息,也可以由上层应用写入按键信息,然后统一上报给按键处理的应用。利用echo、cat,配合Busybox的hexdump,不用自己编写测试应用就可以验证驱动,真爽!本例只是牛刀小试,Busybox更多强大功能有待发掘。不怕做不到,就怕想不到,各位看官发挥你们的想象力吧!