导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[openlom]自己动手打造嵌入式Linux软硬件开发环



No.40208
作者:openlom
邮件:uclinux@up369.com
ID:14402
登陆:2次
文章数:2篇
最后登陆IP:61.167.60.204
最后登陆:2004/1/9 16:55:44
注册:2003/8/16 15:09:28
财富:111
发帖时间:2003/8/16 15:10:01
发贴者IP:61.167.60.204
标题:openlom:自己动手打造嵌入式Linux软硬件开发环境
摘要:No.40208自己动手打造嵌入式Linux软硬件开发环境 自己动手打造嵌入式Linux软硬件开发环境
from ()

Linux和uClinux
    1991年8月,芬兰的一个学生在comp.os.minix新闻组贴上了以下这段话:

    你好所有使用minix的人-我正在为386(486)AT做一个免费的操作系统(只是为了爱好,不会象gnu那样很大很专业. 

    这名学生就是Linus Torvalds, 而他所说的'爱好'就变成我们今天知道的Linux。

    由于Linux的源代码公布在互联网上,可以免费得到,因此从一开始就吸引了世界各地的UNIX 行家为Linux 编写了大量的驱动程序和应用软件,在短短几年时间里,Linux 就发展成为一个相当完善的操作系统,而且Linux支持的硬件平台是所有操作系统中最多的,目前Linux支持硬件平台:Intel的IA64、Compaq的Alpha、Sun的Sparc/Sparc64、SGI的Mips、IBM的S396、ARM、PowerPC等。Linux更大的影响在于它正逐渐地应用于嵌入式设备,uClinux正是在这种氛围下产生的。uClinux就是Micro-Control-Linux,它也是一个开放源码的项目,uClinux的源代码和开发工具可以免费从上下载得到。
    uClinux是专为那些没有MMU(内存管理单元)的嵌入式处理器开发的,和主流的Linux相比,uClinux有以下的特点:
    1.简化了内核加载方式,uClinux的内核可以在Flash上直接运行:就是把uClinux的内核的可执行映象烧写
到flash上,系统启动时从Flash的某个地址开始逐句执行;也可以加载到内存中运行:把内核的压缩文件存放在Flash上,系统启动时读取压缩文件在内存里解压,然后开始执行。
    2.采用了romfs文件系统作为root文件系统:这种文件系统相对于一般的ext2文件系统要求更少的空间,首先内核支持romfs文件系统比支持ext2文件系统需要更少的代码,其次romfs文件系统相对简单,建立文件系统superblock需要更少的存储空间。Romfs文件系统不支持动态擦写,对于系统需要动态保存的数据采用RAM盘的方法处理,RAM盘采用ext2文件系统。
    3.使用了Flat可执行文件格式:elf格式有很大的文件头,flat文件对文件头和一些段信息做了简化。
    4.重写了应用程序库: uClibc对libc做了精简,uClinux对用户程序采用静态连接的形式。

uClinux的开发环境
    ,包括以下组件:Gcc交叉编译器,即在宿主机上开发编译目标上可运行的二进制文件;Binutils辅助工具,包括objdump、as、ld等;Gdb调试器。以在ARM7上开发uClinux为例:
    1.获得uClinux-dist的源码包,最新的版本为Kernel-2.4.21,可以从 上免费下载得到。这个源码包里包含
了uCLinux-2.4.21、uClibc和已经移植到uClinux下的用户应用程序。下载完后,会得到一个uClinux-dist-20030522.tar.gz的文件,把它保存到/home目录下,然后执行:tar zxvf 
uClinux-dist-20030522.tar.gz,当tar程序运行完毕后,在/home目录下会有一个/home/uClinux-dist的新目录,这个目录就是uClinux的源码根目录,里面有进行uClinux开发的所有的源代码。
    2.获得ARM开发工具。要在开发主机上为ARM7目标系统编译uClinux,还需要从 上下载ARM交叉编译器:arm-elf-tools-20030314.sh。得到这个文件以后,执行以下命令:sh arm-elf-tools-20030314.sh,这个命令会在开发主机上自动建立一个uClinux-ARM的交叉编译环境。键入arm-elf-gcc, 如果能看到下面的输出信息:
Reading specs from /usr/local/lib/gcc-lib/arm-elf/2.95.3/specsgcc version 2.95.3 20010315 (release)
(ColdFire patches - 20010318 from )(uClinux XIP and shared lib patches 
from )
表示uClinux-ARM的交叉编译环境已经建立起来了。

    现在开发主机里已经有了uClinux的源代码和编译这些源代码的工具,也可以用make menuconfig, make等命令来编译uClinux和用户程序,为ARM目标板编译了一个内核映像文件,接下来要做得是需要一块ARM7的开发板来运行这个映像文件(关于如何编译uClinux和用户程序请参)。

构建ARM7-uClinux开发板
    uClinux只需要极少的硬件资源就可运行起来,以ARM7TDMI为例,只需要以下硬件:
    1.CPU – Samsung S3C4510B
    2.SDRAM 8M以上
    3.一个 ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:11毫秒 最大:7276毫秒 查询6次