前两天自己花钱买了块友善之臂的Mini6410开发板,国庆假期已经过去6天了,已经休息得有点饱和了,还是拿出来玩玩吧!之前之所以买这个Mini6410,一方面是便宜,另外一方面是这个板子可以跑Android。
之前只是在验货的时候跑过一次Android,也没有怎么玩,虽然接触Linux多年,但是对Java和Android还是一点不懂。这两天看了看《JAVA核心技术》和《Android Essential》,也算有了些了解,感觉在很多概念上和VC编程还是挺相似的。不过对于我这种做驱动的人来讲,还是把程序先跑到开发板上才是正道。
用的程序还是比较简单的Helloworld,只有一个Activity,一个TextView和EditText,这样比较简单,不太可能引入目标板上不能运行的包。
启动Android,连接到USB,PC上竟然一点反应也没有,仔细看了一下Log,发现有“android init”,不过跟踪了一下源码,printk了几个Log发现原来在s3c_udc_otg.c中usb_gadget_register_driver的时候返回了错误,错误的原因是有些函数在注册的时候并没有提供,估计友善的人也没怎么用过这个东西,不然不会发现不了。USB的代码要修改起来需要费点时间,估计一时半会搞不懂。
可是后天就要上班了,还是走其它途径吧,想到了是否可以用TCP/IP,其实我强烈怀疑USB的ADB走的可能也是TCP/IP。Mini6410在运行Android的时候以太网默认是关闭的,首先打开它并配置IP地址:
ifconfig eth0 up
ifconfig eth0 192.168.1.13
然后就可以ping开发板了
在PC上使用adb就可以连接开发板了:
adb connect 192.168.1.13
远程返回:
connected to 192.168.1.13:5555,其中5555是默认的端口,此时就已经连接上了开发板上的adbd守护程序了,使用netstat可以看到连接的状况
此时可以使用
1)adb shell 操作开发板,其实就相当于一个telnet,可以执行各种shell命令
2)使用adb install helloworld.apk安装程序,安装完以后在菜单里面就会多出一个helloworld的图标了,不过在install之前要把目标板的/data目录和/data/app目录都设置成777的权限,就是都可以执行和读写,不然在PC端会返回错误: INSUFFICIENT_STRORAGE,不知道为何返回这个错误
3)adb push 和adb pull上载和下载文件
点击菜单中的helloworld就可以运行了,其实后来发现好像只要把helloworld.apk放在/data/app下面就可以了,不用adb也行,但是Mini6410竟然连命令cp都没有,看到.apk在SD卡里面也没办法,叹!这个实验对我的最大震撼在于Java的可移植性,在PC上编译的结果在ARM开发板上就可以直接运行,想起那些使用MiniGUI的日子,真是相当的痛苦啊。
阅读(2142) | 评论(4) | 转发(0) |