在Cygwin中运行UC/OS-II 和uclinux

来源:百度文库 编辑:神马文学网 时间:2024/04/30 01:54:29
在Cygwin中运行UC/OS-II 和 uclinux
发信站: 饮水思源 (2007年01月03日13:42:20 星期三)
1. 首先下载cygwin
ftp://202.38.97.230/Cygwin/
里面有完整版的cygwin,一共2.35G.选择安全安装需要近3G的空间。
在自己生成交叉编译器之前,首先对Cygwin进行一些设置。假设Cygwin安装在e目录下,在
打开Cygwin窗口之前,进入到E:\Cygwin目录。在这个目录下,有一个文件名为Cygwin.
bat的批处理文件,编辑该文件,在第一行后,第二行加入 set CYGWIN = title ntea,这
是因为Cygwin的启动批处理文件需要启动Unix文件系统模拟。修改完毕且保存后退出。
SH链接(自己感觉没有什么影响)
运行cygwin,在根目录下输入,cd bin
mv sh.exe sh-original.exe
ln –s bash.exe sh.exe
2.安装交叉编译1器arm-linux-gcc(需要)或者arm-elf-gcc(需要window版本)
arm-linux-gcc 可以从http://www.arm9.com.cn/download/FriendlyARM.tgz下载
配置http://www.arm9.net/cygwin_arm-linux-gcc_install.asp
arm-elf-gcc我使用的是EmbestArmTool.exe,http://support.embedinfo.com/S3CEV40/u
CLinux/EmbestArmTool.zip大家找到安装就可以了,注意的是有一个GNUARMELFTOOL.exe也
是可以的(我第一安装可以,可是后来安装就总是编译是找不到头文件)
3.安装skyeye(请详细阅读readme和buildskyeyeincygwin等文件)
最新版本http://gro.clinux.org/projects/skyeye/
根据readme 按照详细步骤安装即可。解决不了的问题,请goole或再次仔细阅读readme文

鄙视那里,不自己查找资料,出了问题就问的人。
我是使用的是 skyeye-1.2-RC8.tar.bz2
1。按照readme修改makefile comment the line 23 if you want to ...
2。需要修改skyeye_mach_ps7500.c 否则将出错
#ifdef __CYGWIN__
//smattershi #include "mpw/sys/time.h"
#include
#endif
注意:
安装skyeye时候需要cygwin的支持,如果一些包没有安装会导致skyeye编译不能通过。
你也可以从http://gro.clinux.org/projects/skyeye/直接下载打好包的cygwin
在skyeye-v1/binary/里面有一个skyeye.exe将其放到 /usr/bin/或者/sbin里面即可,也
可以修改 $PATH,还需要一个cygwin1.dll等dll文件,你可以在cygwin的文件夹中搜索到,
将起copy到windows/system32/里面即可。
4.下载最新的uc/os-II ucosii4skyeye-1.9.3.tar.gz
1。按照readme安装即可,注意的是libc.a和libgcc.a的问题(详情见readme)
2。
1.修改dir.make 添加OSTYPE = cygwin
2.修改rules.make
echo "on cgywin!"; \
echo CROSS_COMPILE = arm-elf- > $(CFG_FILE); \
echo LIBPATH = -L/usr/local/armtools/arm-elf/lib/ -L/lib/ - L/usr/local/armtoo
ls/lib/ >> $(CFG_FILE); \
在这里修改LIBPATH可以找到libc.a和libgcc.a
这个版本的makefile 有个地方需要改动
将其中的OS_DIR改为SAMPLES_DIR
simple:
make -C $(OS_DIR)/simple_test
ucos:
make -C $(OS_DIR)/ucos_test
lwip:
make -C $(OS_DIR)/lwip_on_ucos_test
不改对整体编译没有什么大的影响,只是想个别编译时,不会通过。
1. make cleanall
2. make config
3. make dep
4. make
3. make test
在ucosii4skyeye-v1.8.4.tgz中make的时候会出现link的问题,找不到sky_printf的问题
是因为他们的ucosii4skyey/lib/里面的没有被编译,我没有具体看如何改正。据说1.9.3
在linux中不能很好的编译通过,而1.8.4可以通过没有测试。
1.9.3版本问题是:
在没有编译之前先修改一下lib/skyeye_printf.c文件,不然在编译samples时会提示isdi
git函数错误。把以下代码加入skyeye_printf.c文件中:
static int isdigit(char ch)
{
if (ch >= ‘0‘ && ch <= ‘9‘)
return 1;
return 0;
}
然后把该文件中的"#include "这一行注释掉。
5。可以进行skyeye -e ucos_test.elf
6. enjoy it :)
7.在调试skyeye-binary-testutils-1.2.0时候。主要因为cygwin 不支持mount -o loop
使得在windows界面无法进行下去,可以将该步骤转移到linux下,把boot.rom的内容copy
出来到romfs里面,再把romfs文件夹放到uncliux1里面,运行skyeye linux就可以进行调试
uclinux了
http://gro.clinux.org/
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewforum&f=58