中国Linux公社论坛's Archiver

ffxz 发表于 2006-8-13 12:24

使用SkyEye来模拟运行RT-Thread [win32]

本文将说明如何在Win32环境下搭建RT-Thread的开发环境及如何使用skyeye来模拟运行/调试RT-Thread。

[b]Win32开发环境的搭建[/b]
当前RT-Thread只支持ARM7TDMI平台,所以也需要一个交叉编译平台,来在Windows系统上生成具备ARM指令的操作系统二进制文件。Windows平台上用得比较多的是ADS或RealView中的ARM编译器,由于这两套平台都是商业化的系统,所以RT-Thread并没有选择它们,而是采用了支持更多不同CPU的GNU gcc平台,也就是GNU系统了。

在Windows平台上为了获得GNU的环境,需要安装额外的软件,为了简化安装,这里选择了Windows平台下最小的GNU环境:MSys,先请安装Msys,下载地址:
http://heanet.dl.sourceforge.net/sourceforge/mingw/MSYS-1.0.10.exe

安装截图如下:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-1.jpg[/img]

对于初次使用Msys,建议采用默认选择,安装在C盘。
安装过程中会跳出一个命令行窗口,如下:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-2.jpg[/img]
请直接选择n
[img]http://openlab.rt-thread.com/rtt-images/skyeye-3.jpg[/img]
然后随意按一键继续。MSys就算安装完成了。

它会在开始菜单中生成一个菜单:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-4.jpg[/img]
运行msys,会出现类似linux rxvt的终端窗口:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-5.jpg[/img]

[b]安装ARM交叉编译器[/b]
ARM交叉编译器是配合Msys一起使用的,请到如下网址下载:
http://gro.clinux.org/frs/download.php/1335/arm-elf-0.1.zip
这是一个zip压缩,请解压后放到Msys的安装目录(默认Msys安装目录是C:\msys\1.0)

Msys和ARM交叉编译器的目录结构最终应该是这样的。
[img]http://openlab.rt-thread.com/rtt-images/skyeye-6.jpg[/img]
在Msys的终端窗口中输入/arm-elf/bin/arm-elf-gcc –v 应该会有如下输出:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-7.jpg[/img]

[b]开始RT-Thread[/b]
请先下载RT-Thread v0.2.1源代码,下载地址:http://openlab.rt-thread.com/rtt-download/rtt-0.2.1.tar.bz2,并放置到D:盘根目录下

在Msys终端中请运行如下命令行来解压缩源代码:
[code:1]cd /d/
tar jxvf rtt-0.2.1.tar.bz2[/code:1]
[img]http://openlab.rt-thread.com/rtt-images/skyeye-8.jpg[/img]

[b]编译RT-Thread[/b]
进入到rtt的目录,设置好ARM 交叉编译器的路径,运行make即可:
[code:1]cd /d/rtt-0.2.1
export PATH=/arm-elf/bin:$PATH
make[/code:1]
[img]http://openlab.rt-thread.com/rtt-images/skyeye-9.jpg[/img]
稍微等待几分钟,编译出来的RT-Thread操作系统映像文件将成功的产生。

[b]使用Skyeye运行RT-Thread[/b]
请先安装下载skyeye的windows二进制文件:http://gro.clinux.org/frs/download.php/1135/skyeye0.9.5.win32.rar
解压后应有skyeye.bat,运行它
[img]http://openlab.rt-thread.com/rtt-images/skyeye-11.jpg[/img]
请打开RT-Thread的内核映像文件: D:/rtt-0.2.1/kernel/bsp/lumit4510/rtthread-lumit4510
[img]http://openlab.rt-thread.com/rtt-images/skyeye-12.jpg[/img]
点击 [Run]
[img]http://openlab.rt-thread.com/rtt-images/skyeye-13.jpg[/img]
到这里已经进入到skyeye中了,再继续输入run
[img]http://openlab.rt-thread.com/rtt-images/skyeye-14.jpg[/img]
现在RT-Thread就启动起来了。

在rtt-0.2.1\kernel\testsuite下还有更多的内核映像例子,也可以用同样的方法加载。

[b]使用skyeye调试RT-Thread[/b]

请直接运行skyeye.win32\bin\skyinsight.exe (不经过skyeye.bat),如下图所示
[img]http://openlab.rt-thread.com/rtt-images/skyeye-15.jpg[/img]
用File->Open菜单打开D:/rtt-0.2.1/kernel/bsp/lumit4510/rtthread-lumit4510
用View->Console菜单打开调试控制台
并输入
[code:1]target sim
load
b rtthread_startup[/code:1]

如下图所示
[img]http://openlab.rt-thread.com/rtt-images/skyeye-16.jpg[/img]
然后输入run,开始运行,RT-Thread启动后会自动停留在rtthread_startup位置处:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-17.jpg[/img]

到这一步就可以开始单步调试,运行RT-Thread了(提示一点,不要在skyeyeinsight中一直运行下去,因为它不能中途断下来,请在运行的路径中设置断点)。

BOoRFGOnZ 发表于 2006-8-13 17:50

:-D

laijinyue 发表于 2006-10-11 14:41

一篇很好的文章。。。。感谢lz了。。。(针对入门者。。)

rw99yy 发表于 2006-10-17 14:10

太好了

谢谢楼主的成果
非常不错
既有skyeye工具 又有交叉环境 而且写得这么详细 并且还是win下面的
不错 学习中。。

zjz_lgd 发表于 2006-11-13 22:00

你好,首先十分感谢搂主细心的讲解,已经按照LZ得讲解配置好了环境。
还有一些问题希望问一下:.a是什么文件,是汇编文件么?还是在编译过程中产生的文件呢?应该用什么软件来查看呢?
还有lib目录中的文件有什么作用呢?
我只在win环境下编写过arm的东西,对这种交叉编译的方式不是很熟悉

ffxz 发表于 2006-11-13 22:41

.a 库文件,类似Windows,VC下的.lib文件
lib目录下的文件基本上都是.a文件,即库文件,用于最后的操作系统的静态链接。

这些都是和linux下开发相类似的。

ivychen 发表于 2007-1-13 09:53

Re: 使用SkyEye来模拟运行RT-Thread [win32]

有没有更新skyeye?

[quote:8ec5fba02f="ffxz"]本文将说明如何在Win32环境下搭建RT-Thread的开发环境及如何使用skyeye来模拟运行/调试RT-Thread。

[b]Win32开发环境的搭建[/b]
当前RT-Thread只支持ARM7TDMI平台,所以也需要一个交叉编译平台,来在Windows系统上生成具备ARM指令的操作系统二进制文件。Windows平台上用得比较多的是ADS或RealView中的ARM编译器,由于这两套平台都是商业化的系统,所以RT-Thread并没有选择它们,而是采用了支持更多不同CPU的GNU gcc平台,也就是GNU系统了。

在Windows平台上为了获得GNU的环境,需要安装额外的软件,为了简化安装,这里选择了Windows平台下最小的GNU环境:MSys,先请安装Msys,下载地址:
http://heanet.dl.sourceforge.net/sourceforge/mingw/MSYS-1.0.10.exe

安装截图如下:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-1.jpg[/img]

对于初次使用Msys,建议采用默认选择,安装在C盘。
安装过程中会跳出一个命令行窗口,如下:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-2.jpg[/img]
请直接选择n
[img]http://openlab.rt-thread.com/rtt-images/skyeye-3.jpg[/img]
然后随意按一键继续。MSys就算安装完成了。

它会在开始菜单中生成一个菜单:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-4.jpg[/img]
运行msys,会出现类似linux rxvt的终端窗口:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-5.jpg[/img]

[b]安装ARM交叉编译器[/b]
ARM交叉编译器是配合Msys一起使用的,请到如下网址下载:
http://gro.clinux.org/frs/download.php/1335/arm-elf-0.1.zip
这是一个zip压缩,请解压后放到Msys的安装目录(默认Msys安装目录是C:\msys\1.0)

Msys和ARM交叉编译器的目录结构最终应该是这样的。
[img]http://openlab.rt-thread.com/rtt-images/skyeye-6.jpg[/img]
在Msys的终端窗口中输入/arm-elf/bin/arm-elf-gcc –v 应该会有如下输出:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-7.jpg[/img]

[b]开始RT-Thread[/b]
请先下载RT-Thread v0.2.1源代码,下载地址:http://openlab.rt-thread.com/rtt-download/rtt-0.2.1.tar.bz2,并放置到D:盘根目录下

在Msys终端中请运行如下命令行来解压缩源代码:
[code:1]cd /d/
tar jxvf rtt-0.2.1.tar.bz2[/code:1]
[img]http://openlab.rt-thread.com/rtt-images/skyeye-8.jpg[/img]

[b]编译RT-Thread[/b]
进入到rtt的目录,设置好ARM 交叉编译器的路径,运行make即可:
[code:1]cd /d/rtt-0.2.1
export PATH=/arm-elf/bin:$PATH
make[/code:1]
[img]http://openlab.rt-thread.com/rtt-images/skyeye-9.jpg[/img]
稍微等待几分钟,编译出来的RT-Thread操作系统映像文件将成功的产生。

[b]使用Skyeye运行RT-Thread[/b]
请先安装下载skyeye的windows二进制文件:http://gro.clinux.org/frs/download.php/1135/skyeye0.9.5.win32.rar
解压后应有skyeye.bat,运行它
[img]http://openlab.rt-thread.com/rtt-images/skyeye-11.jpg[/img]
请打开RT-Thread的内核映像文件: D:/rtt-0.2.1/kernel/bsp/lumit4510/rtthread-lumit4510
[img]http://openlab.rt-thread.com/rtt-images/skyeye-12.jpg[/img]
点击 [Run]
[img]http://openlab.rt-thread.com/rtt-images/skyeye-13.jpg[/img]
到这里已经进入到skyeye中了,再继续输入run
[img]http://openlab.rt-thread.com/rtt-images/skyeye-14.jpg[/img]
现在RT-Thread就启动起来了。

在rtt-0.2.1\kernel\testsuite下还有更多的内核映像例子,也可以用同样的方法加载。

[b]使用skyeye调试RT-Thread[/b]

请直接运行skyeye.win32\bin\skyinsight.exe (不经过skyeye.bat),如下图所示
[img]http://openlab.rt-thread.com/rtt-images/skyeye-15.jpg[/img]
用File->Open菜单打开D:/rtt-0.2.1/kernel/bsp/lumit4510/rtthread-lumit4510
用View->Console菜单打开调试控制台
并输入
[code:1]target sim
load
b rtthread_startup[/code:1]

如下图所示
[img]http://openlab.rt-thread.com/rtt-images/skyeye-16.jpg[/img]
然后输入run,开始运行,RT-Thread启动后会自动停留在rtthread_startup位置处:
[img]http://openlab.rt-thread.com/rtt-images/skyeye-17.jpg[/img]

到这一步就可以开始单步调试,运行RT-Thread了(提示一点,不要在skyeyeinsight中一直运行下去,因为它不能中途断下来,请在运行的路径中设置断点)。[/quote]

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.