【假设你要引用。请阅读所有,这里是我的为期两天的过程只是一个记录】


skyeye安装:ubuntu12.0432 llvm2.8 skyeye1.3.3

http://blog.chinaunix.net/uid-26963688-id-3267351.html

当中有几处是错误的,改动后的不带图的步骤例如以下:

Ubuntu 12.04 LTS 32bit 1G DRAM 2 cores + skyeye-1.3.3_rel.tar.gz

开发编译环境准备:

首先安装skyeye的依赖包

sudo apt-get install libgtk2.0-dev pkg-config libatk1.0-dev libpango1.0-dev libfreetype6-dev libglib2.0-dev libx11-dev binutils-dev libncurses5-dev libxpm-dev autoconf automake libtool python-dev llvm

安装步骤:

1. 解压源文件:tar xvf skyeye-1.3.3_rel.tar.gz 安装的这个版本号的skyeye并不能正确执行,主要是执行ucos4skyeye的时候会出现skyeye.conf的配置信息不对的现象。换成了

2. 配置skyeye:./configure (在解压后的目录中)

3. 编译第三方文库:make lib -j2(用两个核)

4. 编译skyeye:make -j2

5. 安装skyeye库文件:make install_lib

6. 安装skyeye:make install

7. 执行skyeye:在opt/skyeye/bin文件夹下:./skyeye_main.py

8. 測试hello world应用程序:

     首先切换到/opt/skyeye/testsuite/arm_hello文件夹下

     然后执行:/opt/skyeye/bin/skyeye_main.py -e arm_hello,进入skyeye命令行模式

     然后执行start命令,执行arm_hello应用程序

     终端将打印架构信息。同一时候探出串口窗体

     终端中执行run命令。串口会不停的打印出helloworld


当中过程中须要下载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

这时就在本机的12345port开启了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://blog.csdn.net/htttw/article/details/7226754

当中包括了能够帮助理解基本步骤和文件作用的信息
http://www.cnblogs.com/ahuo/archive/2012/08/27/2658133.html
这些包括GDB和arm-elf-gdb关系和编译时间差

版权声明:本文博客原创文章。博客,未经同意,不得转载。

skyeye安装+arm-elf-gdb安装+模拟s3c44b0x+执行ucos4skyeye的更多相关文章

  1. Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

    一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install gcc-arm-linux-gnueabi 前提是你的Ubuntu系统版本是官网支持的最新的版本, ...

  2. Ubuntu12.4 64位 安装 arm linux gcc 4.3.2

    一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...

  3. 【转】Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

    原文网址:http://www.cnblogs.com/muyun/p/3370996.html 一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install ...

  4. gdb安装

    1.卸载原有gdb  以root用户登录  1.1 查询原有gdb包名,执行命令: rpm -q gdb  1.2 卸载原有gdb包,假设gdb包名为gdb-7.0-0.4.16,执行命令:rpm - ...

  5. CentOs下安装gcc/g++/gdb

    使用yum安装gcc:yum install gcc即可.使用:which gcc 查看是否安装成功 使用yum安装g++:yum install gcc-c++ 即可.使用:which g++ 查看 ...

  6. learning docker steps(9) ----- arm linux docker 安装

    参考:https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1 想要在arm linux上安装docker ...

  7. Laravel 安装mysql、表增加模拟数据、生成控制器

    参考中文网教程: 安装mysql.表增加模拟数据 http://www.golaravel.com/post/2016-ban-laravel-xi-lie-ru-men-jiao-cheng-yi/ ...

  8. Oracle Solaris 10下gdb安装(附安装包)

    文章目录 1. 背景说明 2. gdb相关包 3. gdb安装 3.1 上传资源 3.2 解压 3.3 安装 3.4 环境变量 4. 位数确认 5. 验证可用性 1. 背景说明 本文承接Oracle ...

  9. Genymotion模拟器安装ARM架构编译应用失败解决方案

    我们在安装一些应用到Genymotion模拟器会提示:adb: failed to install xx.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: ...

随机推荐

  1. c++重载ostream的实现

    #include <iostream> using namespace std; class Point{ public: Point(int _x = 0, int _y = 0, in ...

  2. MATLAB——scatter的简单应用

    scatter可用于描绘散点图. 1.scatter(X,Y) X和Y是数据向量,以X中数据为横坐标,以Y中数据位纵坐标描绘散点图,点的形状默认使用圈. 样例: X = [1:10];  Y = X ...

  3. A股市场暴跌背后的三大元凶?

    周一两市低开低走,盘中空方连续打压股指,大盘一路下行,沪指2000点关口告急,收于1963.24点,跌幅超过了5%.行业板块全线溃败.银行.证券领衔大幅杀跌,板块跌幅一度超过5%:继上周五中国石油A股 ...

  4. zoj1940(三维广搜)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=940 分析:三维其实就是六个方向地搜索,思维清晰且细心点,很快就AC了 ...

  5. Java LinkedBlockingQueue和ArrayBlockingQueue分析

    LinkedBlockingQueue是一个链表实现的堵塞队列,在链表一头增加元素,假设队列满.就会堵塞.还有一头取出元素.假设队列为空.就会堵塞. LinkedBlockingQueue内部使用Re ...

  6. 【译】ASP.NET MVC 5 教程 - 9:添加新字段

    原文:[译]ASP.NET MVC 5 教程 - 9:添加新字段 在本节中,我们将使用Entity Framework Code First 数据迁移功能将模型类的改变应用到数据库中. 默认情况下,当 ...

  7. 【Java探索道路安全系列:Java可扩展的安全架构】一间:Java可扩展的安全体系结构开始

    笔者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...

  8. PHP实现队列(Queue)数据结构

    队列(Queue),是一种特殊的先进先出线性表,其只能在前端进行删除操作(一般称为出队),在后端进行插入操作(一般称为入队).进行删除操作的端称为队头,进行插入操作的端称为队尾.队列,是按照先进先出或 ...

  9. mysql事务、触发器、视图、存储过程、函数

    存储过程: procedure 概念类似于函数,就是把一段代码封装起来, 当要执行这一段代码的时候,可以通过调用该存储过程来实现. 在封装的语句体里面,可以用if/else, case,while等控 ...

  10. Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

    原文:Learning Cocos2d-x for WP8(9)--Sprite到哪,我做主 工程文件TouchesTest.h和TouchesTest.cpp 相关素材文件 事件驱动同样适用于coc ...