1、环境介绍
ubuntu版本:12.04
root@xumin:~# cat /etc/issue
Ubuntu 12.04.4 LTS \n \l
root@xumin:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.4 LTS
Release: 12.04
Codename: precise
skyeye版本:1.3.5
下载地址:
http://sourceforge.net/projects/skyeye/files/skyey e/skyeye-1.3.5/
安装前准备工作
1、apt-get install 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
2、python下载源码python2.7.6安装(记得要下载python 2.7版本的),下载地址:
http://www.python.org/download/
安装步骤为(python 2.7的安装对是否能成功安装skyeye有决定性作用):
1、解压python,并进入解压后的目录
2、./configure--prefix=/usr/
local
/python2.7
--enable-shared --enable-unicode=ucs2
注意:没有这个两个编译选项,你会发现有无穷无尽的错误在等着你解决,不过我仍然相信你乐于去解决。另外如果没有
3、make && make install
注意:python的内部是使用unicode来处理的,但是unicode的使用需要考虑的是它的编码格式有两种,一是UCS-2,它一共有65536个码位,另一种是UCS-4,它有2147483648g个码位。对于这两种格式,python都是支持的,这个是在编译时通过--enable- unicode=ucs2或--enable-unicode=ucs4来指定的。那么我们自己默认安装的python用的什么编码怎么来确定呢?有一个办法,就是通过sys.maxunicode的值来判断。进入python安装后的目录,找到执行python,然后./python
print sys.maxunicode
请手动输入上面的命令(因为我怕粘贴会导致一直稀奇古怪的错误!),如果输出的值为65535,那么就是UCS-2,如果输出是1114111就是UCS-4编码。
然后你需要将python的lib库导出,下面是方法:
vim /etc/ld.so.conf 加上include /usr/local/python2.7/lib 保存退出
然后/sbin/ldconfig
3、skyeye的安装
1、读安装步骤的INSTALL,不要擅作主张自己./configure && make && make install,而应该是
./configure --prefix=/usr/local/python2.7 && make lib && make && make install_lib && make install
中间出现任何报错有两个原因,一个是前面要装的依赖包没有安装,一个是python2.7没有安装ok 。
2、skyeye的使用
安装成功后,进入/opt/skyeye/testsuite/arm_hello,输入
skyeye -e 可执行文件名 -c skeeye.conf
会出现:
root@xumin:/opt/skyeye/testsuite/arm_hello# skyeye -e arm_hello -c skyeye.conf SkyEye 1.3.5
SkyEye is an Open Source project under GPL. All rights of different parts or modules are reserved by their author. Any modification or redistributions of SkyEye should not remove or modify the annoucement of SkyEye copyright.
Get more information about it, please visit the homepage http://www.skyeye.org.
Type "help" to get command list.
(skyeye) start
In create_uart_console
mmap DRAM, size=0x400000, return 0x1000000
1 core is initialized.
(skyeye) run
(running)stop
不要按照网上的某些人不合理的步骤如:
skyeye
start
run
如果你这样输入,会出现下面的错误。
[SkyEye Crashed]. Please report the following output to skyeye-developer@lists.sourceforge.net.
In bus_read, Bus read error, can not find corresponding bank for addr 0x908,pc=0x910
如果你比较认真,你可能会进入/opt/skyeye/testsuite/sparc_hello 目录测试sparc_hello
你会出现:
(skyeye) *** Unknown command: EOF
*** Get commands with ‘help‘ cmd
那是因为代码的测试程序的skyeye.conf中uart:mod=stdio导致的,改成uart:mode=term后再看看吧,你肯定会心情愉悦的。
网上有一段很详细的使用方法(http://www.iteedu.com/embed/embedarticles/skyeyeLinx.php):
在/opt/skyeye/testsuite/目录下有一个测试程序”arm_hello“。
1).进入/opt/skyeye/testsuite/;
2).输入sudo skyeye -e arm_hello命令,进入skyeye命令行界面;
3).然后运行"start"命令加载配置和初始化目标机,同时在主机上会显示一个xterm的窗口,窗口标题 为"uart_instance";
4).然后我们可以输入"run” 命令来启动helloworld的测试用例;
5).我们输入"stop" 命令来停止目标板;
6).输入 "info regitsters" 查看当前的寄存器的数值;
7).输入 "disassemble" 命令进行反汇编0x100004c,例如:"disassemble 0x100004c";
7.skyeye的终端是用term(Ubuntu是xterm),显示特别难看,我们修改一下xterm的显示特性就可以了。
修改~/.Xresources就可以了(没有就自己创建一个)
范例代码:
xterm*locale: true
xterm.utf8: true
xterm*utf8Title: true
xterm*faceName: Monaco:pixelsize=14
xterm*faceNameDoublesize: WenQuanYi Zen Hei:pixelsize=15
然后用命令
xrdb -load ~/.Xresources
重启或导入设置就可以了
3、如果你觉得在嵌入式虚拟机skyeye上玩得很过瘾,但无人指路,你首先肯定会想到书了,是的。有这样一本书:
一步一步写嵌入式操作系统--ARM编程的方法与实践.pdf
下载地址:http://ishare.iask.sina.com.cn/f/20935970.html?from=like
它肯定是为你量身订做的,开始你的神奇之旅吧。
4、主要参考博客或网址
http://hanlengsanyue.blog.163.com/blog/static/120878732201321065554665/
http://blog.csdn.net/htttw/article/details/7231851
http://www.solidot.org/story?sid=32270
https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014573099#77777777-0000-0000-0000-000014573099
5、因为ubuntu所装系统的包或库因人而已,所以不可能将所有安装中错误都一一列出,同学们可以在度娘上搜索关键语句,查找解决方法。另外解决问题时,一定要做好记录和备份,否则到时都不知道自己改了哪些内容了。