有人能提供详细的在windows下编译uClinux的过程吗?

发布于 2022-09-29 22:32:32 字数 135 浏览 11 评论 0

有人能提供详细的在cygwin下编译uClinux的过程吗?
网上都是七零八落的..    搞个几天了还没成功    郁闷啊...
不好意思  新手  只有这么多分拉

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

黯然 2022-10-06 22:32:32

在cygwin下建立交叉编译环境吧
是要费点事的
参考下"ARM应用系统开发详解"第七章 建立交叉编译器 部分
提醒下,首先不要企图找什么新的编译器版本,会带出更多的问题

给个下载链接
http://linux.chinaunix.net/bbs/thread-899011-1-1.html

7.3.1.2  为安装windows的宿主机建立交叉编译器
这部分内容是专门针对那些对Linux环境和Linux中的应用程序不熟悉,宁愿用PC上基于Windows的操作系统来开发嵌入式系统的读者而写的。
1.  Cygwin软件介绍
为了在Windows下开发嵌入式操作系统应用程序,可以在Windows环境下装上Cygwin软件。Cygwin是一个在Windows平台上运行的Unix模拟环境,是Cygnus Solutions公司开发的自由软件。它对于学习掌握Unix/Linux操作环境,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。
    Cygnus当初首先把gcc,gdb等开发工具进行了改进,使它们能够生成并解释win32的目标文件。然后,把这些工具移植到windows平台上去。一种方案是基于win32 API对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,Cygnus采取了一种不同的方法——他们写了一个共享库(就是cygwin1.dll),把win32 API中没有的Unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于win32 API写了一个Unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用Unix主机上的交叉编译器来生成可以在Windows平台上运行的工具集。以这些移植到Windows平台上的开发工具为基础,Cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到Windows上来。这样,在Windows平台上运行bash和开发工具、用户工具,感觉好像在Unix上工作。 关于Cygwin实现的更详细描述,请参考http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html
2.  Cygwin软件的安装
要得到Cygwin的最新安装版本,请到Cygwin的主页http://cygwin.com/上下载最新的Cygwin,在该页面的右上角有'' Install Cygwin Now '',点击此处,就会先下载一个叫做setup.exe的GUI安装程序,用它能下载一个完整的Cygwin。图7.2所示为在点击setup.exe后出现”选择安装类型”对话框。建议读者把Cygwin整个安装包先下载到本地,再进行本地安装比较方便,即在下图先选择第二个选项,等到将Cygwin完全下载后,再选择第三个选项进行本地安装。

图7.2  选择安装类型
安装的时候建议最好不要安装到C:\目录下,比如安装在D:\下。
在安装的过程中,会让用户选择安装哪些包,这些包主要是确定开发环境,编译工具等,如果不能确定具体需要哪些包的话,而硬盘空间足够的情况下,就选择全部安装。在出现的对话框的''All''的右边点击''Default'',直到变成''Install'',如下图7.3所示:

图7.3  选择安装包
Cygwin的安装过程时间比较长,请读者耐心等待。当出现创建图标的画面点击“完成”按钮之后,屏幕会有几秒钟的闪动,出现类似下面的画面如图7.4所示,这是在执行Cygwin安装后的脚本配置。

图7.4  Cygwin安装后自动配置
自动配置结束后,出现Cygwin成功安装结束的提示框。桌面上会出现Cygwin的图标。
3.        在Cygwin下生成交叉编译器
在自己生成交叉编译器之前,首先对cygwin进行一些设置。假设Cygwin安装在d目录下,在打开Cygwin窗口之前,进入到D:\cygwin目录,在这个目录下,有一个文件名为cygwin.bat的批处理文件,编辑该文件,在第一行后加入set CYGWIN=title ntea,这是因为cygwin的启动批处理文件需要启动Unix文件系统模拟。修改完毕后,保存后退出。双击桌面上的Cygwin图标,打开后默认用户为在Windows中登录的用户名(这里所使用的操作系统是windows 2000 professsional),在如图7.5所示的界面中,在根目录(即D:\cygwin)下键入:
cd bin
mv sh.exe sh-original.exe
ln –s bash.exe sh.exe
做上述几步的原因是因为大多数linux系统将sh符号链接到bash,Cygwin上的sh.exe和bash.exe是不同的,因此必须用bash 代替sh。
从网站http://www.uclinux.org/pub/uClinux/arm-elf-tools/tools-20030314/上下载生成工具链的各种源码,根据脚本文件build-uclinux-tools.sh 建立可在windows下编译用户应用程序的交叉编译器,生成的交叉编译器最终被打包为arm-elf-tools-cygwin-yyyymmdd.tar.gz的文件,其中yyyy为生成交叉编译器的年,mm为生成交叉编译器的月份,dd 为日期。
这里,希望读者注意的是在生成交叉编译器的过程中,可能会遇到多次错误,读者应该根据给出的出错信息,进行相应文件的修改。由于习惯上的原因,linux下的压缩文件一般都是以.tar.gz或者.tgz结尾的,虽然用windows下的解压软件比如winzip或者winrar可以解压这些文件,但是推荐读者不要用这些软件在windows下解压,因为这样可能会造成某些信息的丢失。
本书生成的交叉编译器名为arm-elf-tools-cygwin-20030502.tar.gz。

图7.5  Cygwin开发环境
4.  在Cygwin环境下建立交叉编译器
在根目录下键入:
tar xvzf arm-elf-tools-cygwin-20030502.tar.gz
进行交叉编译器的解压,解压完毕后在/usr/local/bin/目录下可以看到各种GNU工具。有了交叉编译器后,熟悉Windows的读者就可以在Windows下编译在uClinux上运行的应用程序了。

jJeQQOZ5 2022-10-06 22:32:32

既然要开发linux那就用linux把,linux很好用的~~

时间海 2022-10-06 22:32:32

强烈建议在Linux下做!!!

撞了怀 2022-10-06 22:32:32

模拟一个linux还是不错的。
速度也可以。

小猫一只 2022-10-06 22:32:32

我最后还是决定在linux下面算拉  不过还是谢谢大家拉

梦里人 2022-10-06 22:32:32

封贴  分就给bitmilong 兄弟吧。。  帮了我不少的忙啊

沐歌 2022-10-06 22:32:32

原帖由 duguowei 于 2007-8-20 15:07 发表
封贴  分就给bitmilong 兄弟吧。。  帮了我不少的忙啊

谢谢

我还在学习过程中

Cygwin确实有太多的困难
我最终也没搞定,还是VMWare了一个Linux,继续尝试

行至春深 2022-10-06 22:32:32

ARM7TDMI核不支持有MMU(内存管理单元)的操作系统。
Linux有MMU的,而uCLINUX是不带MMU的,不是说想用什么系统就可以的,还要看硬件。

偷得浮生 2022-10-06 22:32:32

原帖由 sep 于 2007-8-20 16:05 发表
ARM7TDMI核不支持有MMU(内存管理单元)的操作系统。
Linux有MMU的,而uCLINUX是不带MMU的,不是说想用什么系统就可以的,还要看硬件。

http://www.ucdot.org/article.pl? ... 251&mode=thread

Will uClinux work on a system with an MMU

uClinux is a set of patches for linux to allow it to run on systems without an MMU (memory management unit). It does not remove any of the support for systems with an MMU, so you can still use your uClinux kernel source on systems with an MMU.

Some portions of the uClinux patches are uClinux specific. For example the flat file loader is unlikely to compile/work on a system with an MMU. But this is the exception rather than the rule.

It is possible to port uClinux to systems with an MMU but run with the MMU disabled, in this case the system will behave just like a true uClinux system.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文