adb shell 调试君正板子

来源:互联网 发布:全排列算法公式 编辑:程序博客网 时间:2024/05/17 08:42
今天接到一个任务,把现有的代码移植到君正的开发板上。

下面就开始吧。

1 首先,代码移植到君正上,需要交叉编译环境。
    需求方已经提供了交叉编译的tar包,直接在linux上解压缩。
    然后 指定
    CC=xxx.xxx.gcc
    CP=xxx.xxx.g++
    AR=xxx.xxx.ar
    (指到君正环境对应的 gcc,g++,ar)

然后开始执行编译脚本(代码很多,没脚本怎么行),生成对应于君正的相关库和可执行程序。

2 把开发板和电脑主机相连,安装驱动。
 我的这块开发板上有个电源开关,刚开始没打开,各种安装驱动失败。。。
 然后在设备管理器中找到新出现的设备,安装驱动,不必细说。

3 下面就是把第一步编好的代码放到君正板子上运行。

怎么copy上去呢?
刚插上的时候,我看到360手机助手的提示,说有新设备接入。本来还想着通过手机助手copy过去。后来知道不行,360助手各种安装不上驱动,算了,别想偷懒了,还是 用我们最常规的adb吧。

首先进入命令行(cmd)   
执行  adb devices,看设备是否已经链接好了。
提示 devices offline,,我这里重新插拔了一下,好了。

adb shell,进入君正的环境。
执行 ls,有很多乱码。看着烦人
alias ls='ls --color=never'
这样执行ls就不会有乱码了。

想创建一个目录试一下,
mkdir test
提示我:Read-only file System
mount ,发现当前我所使用的目录权限是 ro (Read-only)
发现有个tmp目录,这个目录的权限是 rw,可以创建文件了

然后copy代码到君正
adb push  xxx/yourApp  tmp/test,把要执行的程序copy到板子上。

使用adb push 发现,提示,没有adb这个命令。
原来我已经进入 adb shell的环境,要退出adb shell,在cmd下输入 adb push xxx.tar /tmp/test

4 copy完成后,开始执行程序。
./youApp
提示找不到一个依赖的库,
看来需要指定一下依赖库的路径
export LD_LIBRARY_PAHT=../../lib (你自己示例工程依赖的库)
之后再运行又提示 
error while loading shared libraries :libstdc++.so.6
刚看到这个报错,还以为是君正的环境上缺少这个库。
执行 find . -name libstdc++* ,发现是有这个文件的,

忽然想到,可能是LD_LIBRARY_PATH 这个定义的不对。
改成 export LD_LIBRARY_PAHT=../../lib:$LD_LIBRARY_PAHT
再执行,程序运行起来了。
(以后这里要注意了,添加LD搜索路径的时候,不能把以前的覆盖掉)

执行完,我想看一下我的日志文件。
执行 adb pull 命令,
结果每次我一执行这个命令,都会提示我 
device not found
然后我就发现,板子已经断开连接了。
然后没找到什么好的解决办法,只能断电重连。

再进入我刚才执行程序的路径,发现已经空空如也,悲剧了!!
可能是因为这个板子没有掉电也能保存的内存卡。
只能再执行一遍,后来再执行adb pull的时候,又犯老毛病了。
我了个擦。
咨询了一下相关的同事,说也经常遇见这样的情况。算了,不纠结了。

做到这里,已经可以验证,现有的代码可以移植到君正上,对方提供的交叉编译环境也是可用的。
时间紧迫,不纠结adb pull的问题了。
到此结束吧。






1 0