【如果要参考,请先全部看完,这里只是记录我的两天的过程】
其中过程中需要下载llvm-2.8.tgz,下载地址:http://llvm.org/releases/2.8/llvm-2.8.tgz
解压后进入目录,执行下面脚本安装:
./configure
make【费时】
sudo make install
以上的可以正常完成这个自带的例子的运行,但是后来下载的skyeye-testsuite却不能正常运行
具体的现象是:
在uCLinux/s3c44box目录下不能够正常运行,显示的错误信息是bank相关的输出
后来查看网上的资料不能够得到正确的答案
然后在自己的ubuntu12.04 32bit 虚拟机上用apt-get install skyeye 安装了一个应该是1.2.x版本的skyeye,显示是成功安装了
输入skyeye也是能够进入skyeye中,但是对于skyeye-testsuite/uCLinux/s3c44b0x中却还是出现的和上面的一样的错误
所以还是没成功!
最后,是最后,按照http://blog.chinaunix.net/uid-20690340-id-1894428.html博主介绍的方法安装了skyeye-1.2.6(只是借鉴skyeye的安装)
替换掉了原来的已有的(1.3.3还是存在的,但是在terminal中输入skyeye时执行的是1.2.6)
这下在skyeye-testsuite中能够正常运行
在网上下载了ucos4skyeye也是能够正常运行里面的例子,真是太令人激动了!
但是直接运行usoc4skyeye/ucos_test的时候并没有像readme中说的那样会有一个任务供输入,一个任务供输出!
但是种种迹象表明的是这是可以正常运行的!!!
问题出在哪儿,我不知道了,我想到了gdb来调试,想看一下究竟是哪个地方没有正常运行起来。
这就引发了另一个让我纠结的问题:
arm-elf-gdb的安装。。。。
安装的过程是这样的:
http://blog.chinaunix.net/uid-15007890-id-2377453.html
下载gdb安装包:ftp://ftp.gnu.org/gnu/gdb/
tar jxvf gdb-7.0.tar.bz2
cd gdb-7.0
mkdir build-gdb
cd build-gdb
../configure --target=arm-elf
make
make install
其中应该会遇到gcc编译所有warning都按照error的make错误
这是因为现在的GCC的版本比较新的缘故(我的是4.6.3,自然也是遇到了这个问题)
不过我的解决方法并不是将GCC降级,而是将某个出错目录下的Makefile中的 -Werror去掉
这样就可以正常安装了
这个过程还是比较纠结的。
所以经过上面的两天的折腾,我得到了下面的平台信息:
【1】skyeye 1.2.6(源码安装,成功的标志是 在terminal任何路径下输入skyeye会出现skyeye信息)
【2】arm-elf-tools-20040427.sh
【3】arm-elf-gdb
然后我用这上面折腾好的工具调试下载的ucos4skyeye得到的是正确的结果:
http://blog.csdn.net/ranruoyu1003/article/details/6067175
要使用SkeyEye调试功能,可以在执行的时候加入-d参数,例如:
$skyeye -e hello -d
skyeye会提示
debugmode= 1, filename = skyeye.conf, server TCP port is 12345
这时就在本机的12345端口开启了gdb服务
这时在当前目录重新开一个终端程序
$arm-elf-gdb hello
(gdb) target remote 127.0.0.1:12345
Remote debugging using 127.0.0.1:12345
hello () at hello.c:23
23 }
(gdb)
同时原skeyeye段给出提示
Remote debugging using host:12345
这就说明已经连接上服务,可以开始调试了
【只是参照上面的步骤,我调试的是ucos4skyeye/samples/ucos_test】
http://www.cnblogs.com/ahuo/archive/2012/08/27/2658133.html
其中包含的是GDB和arm-elf-gdb的关系和编译时候的区别