新闻  |   论坛  |   博客  |   在线研讨会
在Skyeye上运行RTMES
tongxin | 2009-04-12 23:26:07    阅读:1105   发布文章

RTEMS版权所有,转载请注明来源www.rtems.net,作者ray@rtems
%A
%A Skyeyehttp://www.skyeye.org/)是由 陈渝先生发起的一个开源ARM硬件仿真平台,可以仿真多种ARM开发板。下面介绍在Skyeye上如何运行RTEMS。
%A
%A 首先http://gro.clinux.org/projects/skyeye/上面下载skyeys的开发包,如果是Redhat等,可以直接下载RPM包。我只介绍FreeBSD下面的skyeye源代码安装。
%A
%A (1) 使用的平台是FreeBSD 5.3,安装的时候除了安装工具链还需要选择安装
%A
%A     *
%A       gmake
%A     *
%A       gtk
%A     *
%A       pkgconfig
%A     *
%A       automake和autoconf
%A
%A (2)解开skyeye-v0.x.x.tar.bz2 :
%A
%A tar jxf skyeye-v0.8.7.tar.bz
%A
%A (3)http://l123.org/~ivan/skyeye.freebsd.diff下载BSD的补丁(因为Skyeye最早是为Linux开发的,其网络驱动在BSD不能直接使用),并且安装补丁包。
%A
%A wgethttp://l123.org/~ivan/skyeye.freebsd.diff
%A patch < skyeye.freebsd.diff
%A cd skyeye
%A
%A 目http://gro.clinux.org/projects/skyeye/上面也由补丁包下载。
%A
%A (4)设置CFLAGS
%A
%A 如果是tcsh(BSD缺省root shell)
%A
%A setenv CFLAGS -O -pipe
%A
%A 对于BASH:(编译可以通过,但是网络转发模块加载有些问题)
%A
%A CFLAGS="-O -pipe"
%A
%A 进入解压后的skyeye目录,按照SkyEye.README介绍的步骤做configure,make,make install(注意红色部分)
%A
%A $cd skyeye
%A $./configure --target=arm-rtems --prefix=/usr/local --without-gtk-prefix --without-gtk-exec-prefix --disable-gtktest
%A
%A 如果需要GTK的支持(对于只安装了KDE的用户来说,譬如我,有时候会出问题)
%A
%A $./configure --target=arm-rtems --prefix=/usr/local
%A $make
%A $make install
%A
%A 现在一切应该都OK了。
%A
%A 修改EP7312的BSP,操作如下:
%A
%A (1)linkcmds
%A
%A 首先是 rtems- 4.6.2 /c/src/lib/libbsp/arm/edb7312 目录下面的 linkcmds ,修改如下
%A
%A 1.change linkcmds from 0x00000000 to 0xC0000000
%A MEMORY {
%A sdram : ORIGIN = 0xC0000000 , LENGTH = 16M
%A regs : ORIGIN = 0x80000000, LENGTH = 1M
%A }
%A /* * Declare some sizes. */
%A _sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0xC0000000 ;
%A
%A
%A
%A (2) 修改 bsp_irq_init.c
%A
%A 修改 rtems- 4.6.2 /c/src/lib/libbsp/arm/edb7312/irq 目录下面的 bsp_irq_init.c 因为 skyeye 仿真 EP7312 平台还不支持 EP7312_INTMR2 , EP7312_INTMR3
%A
%A 注释掉下面两行
%A
%A /* *EP7312_INTMR2 = 0x0; */
%A /* *EP7312_INTMR3 = 0x0; */
%A
%A 这里使用了老式 /**/ 的注释方式,因为考虑到旧版本的交叉 C 编译器不支持 “//”
%A
%A (3) 编译 ep7312 的 BSP
%A
%A $../../rtems- 4.6.2 /configure --target=arm-rtems \
%A --disable-posix --disable-networking --disable-cxx \
%A --prefix=/home/ray/embedded/rtems-build/edb7312
%A $make RTEMS_BSP="edb 7312”
%A
%A 然后在 samples 和 test 目录下面就有编译好的二进制文件。
%A
%A (哇,怎么有 2M ,这不是和 linux 有的拼 ?
%A
%A 嘿嘿。这个二进制文件是带调试信息的,如果用 -O2 编译,就只有几十 KB 了)
%A
%A
%A
%A (8) 建一个 skyeye 的配置文件
%A
%A #skyeye.conf
%A #skyeye config file sample
%A cpu: arm720t
%A mach: ep7312
%A mem_bank: map=I,type=RW, addr=0x80000000, size=0x00010000
%A mem_bank: map=M, type=RW, addr=0xc0000000, size=0x1000000
%A log: logon=1, logfile=/tmp/sk1.log, start=2000000, end=3000000
%A
%A 将配置文件 skyeye.conf 存放在 测试的代码同一路径下
%A
%A (9)GO GO GO!!!
%A
%A 下面是命令运行情况:
%A
%A -bash-2.05b$ skyeye hello.exe
%A ***********************************************************************
%A **** SkyEye Simulator Ver 0.8.6 with GDB 5.3 Interface ****
%A ***********************************************************************
%A GNU gdb 5.3
%A Copyright 2002 Free Software Foundation, Inc.
%A GDB is free software, covered by the GNU General Public License, and you are
%A welcome to change it and/or distribute copies of it under certain conditions.
%A Type "show copying" to see the conditions.
%A There is absolutely no warranty for GDB. Type "show warranty" for details.
%A This SkyEye was configured as "--host=i386-unknown-freebsd5.3 --target=arm-rtems"...
%A (SkyEye) target sim
%A cpu info: armv4, arm720t, 41807200, ffffff00, 1
%A mach info: name ep7312, mach_init addr 0x8143cf0
%A log_info: log is on.
%A log_info:log file is /tmp/sk1.log, fd is 0x 28a 2a 8c 8
%A log_info: log start clock 2000000
%A log_info: log end clock 3000000
%A SKYEYE: use arm7100 mmu ops
%A Connected to the simulator.
%A (SkyEye) load
%A Loading section .init, size 0x4 vma 0xc0000120
%A Loading section .text, size 0x12ad4 vma 0xc0000124
%A Loading section .fini, size 0x4 vma 0xc0012bf8
%A Loading section .data, size 0x8ec vma 0xc0012bfc
%A Loading section .rodata, size 0xe17 vma 0xc00134e8
%A Start address 0xc0000124
%A Transfer rate: 659192 bits in <1 sec.
%A (SkyEye) run
%A Starting program: /usr/home/ray/embed/rtems/edb7312/arm-rtems/edb7312/tests/hello.exe
%A
%A *** HELLO WORLD TEST ***
%A Hello World
%A *** END OF HELLO WORLD TEST ***
%A EXECUTIVE SHUTDOWN! Any key to reboot...
%A%A
%A

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
最近文章
寂寞如雪
2009-05-19 19:01:18
夜色花
2009-05-19 18:56:22
没有爱可以重来
2009-05-19 18:54:59
推荐文章
最近访客