我的ARM DS-5是5.19版的
用DS-GCC的编译链,将程序编译好后,我用RES模式准备单步调试;
爆出错信息如下
Preparing the debug session
# cd "/home/hehe/ads"# export LD_LIBRARY_PATH=".:/home/hehe/ads:$LD_LIBRARY_PATH"# gdbserver :5000 "/home/hehe/ads/helloworld" FATAL: kernel too oldSegmentation fault#
这是啥原因,我用飞思卡尔提供的gcc交叉编译链没问题,但唯一不好的地方就是那编译链是linux版的,在windows用不了
飞思卡尔提供的gcc是 gcc-4.6.2 glibc-2.13-linaro-multilib-2011.12
网上有人说是glibc版本跟linux核匹配问题,glibc限制了linux核最低可用版本
目前我那板子的BSP提供的核版本是3.0.35
如果我在windows下用ARM DS-5能否用起来,还有ARM DS-5的编译链就不能做成跟google NDK的编译链那样可以选gcc的版本和glibc的版本的吗?
是因为你的gdbserver和linux版本不兼容把?你的gdbserver是自己编译的吗?还是用的预编译好的?
DS5里面有至少两个工具链,可以用armcc,也可以用linaro的gcc工具链($DS5\sw\gcc),取决于你的配置。
gdbserver是在DS安装目录下面拷贝的,
经你这么说,我搜索了DS下所有目录,发现有三gdbserver,都弄到板子上usr/bin上面,但是很悲剧,结果都是一样
我拷贝的gdbserver目录:
C:\Program Files\DS-5\arm\gdbserver\linux\armhf
C:\Program Files\DS-5\sw\gcc\arm-linux-gnueabihf\debug-root\usr\bin
C:\Program Files\DS-5\sw\eclipse\dropins\plugins\com.arm.ds.collateral_5.19.0.20140715_153923\arm\gdbserver\linux\armhf
那比较确定是你用的gdbserver和你的目标板内核不兼容的问题。
由于内核版本和工具链不同,这种兼容问题是有可能的。
建议你最好还是去自己生成gdbserver进行调试。
如何编译与DS兼容的gdbserver,求教
在C:\Program Files\DS-5\arm\gdbserver\android\README.txt里面有详细的步骤。
网上也有多个参考,比如
DS-5教程-使用ARM DS-5模拟器进行开发调试 - 米尔科技
http://www.veryarm.com/648.html
有问题,找度娘!
MYIR - Make Your Idea Real 的教程写的不错,赞