uClinux系统分析详解 点击:1548 | 回复:2



摩卡

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 28回
  • 年度积分:0
  • 历史总积分:70
  • 注册:2005年11月02日
发表于:2005-11-16 15:33:00
楼主
    一、简介 
    Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是“针对微控制领域而设计的Linux系统”。 
   二、uClinux小型化的做法 
    标准Linux可能采用的小型化方法 
    (一)重新编译内核 
    Linux内核采用模块化的设计,即很多功能块可以独立的加上或卸下,开发人员在设计内核时把这些内核模块作为可选的选项,可以在编译系统内核时指定。因此一种较通用的做法是对Linux内核重新编译,在编译时仔细的选择嵌入式设备所需要的功能支持模块,同时删除不需要的功能。通过对内核的重新配置,可以使系统运行所需要的内核显著减小,从而缩减资源使用量。 
    (二)制作root文件系统映象 
    Linux系统在启动时必须加载根(root)文件系统,因此剪裁系统同时包括root file system的剪裁。在x86系统下,Linux可以在DOS下,使用Loadlin文件加载启动, 
    三、uClinux采用的小型化方法 
    (一)uClinux的内核加载方式 
    uClinux的内核有两种可选的运行方式:可以在flash上直接运行,也可以加载到内存中运行。这种做法可以减少内存需要。 
    Flash运行方式:把内核的可执行映象烧写到flash上,系统启动时从flash的某个地址开始逐句执行。这种方法实际上是很多嵌入式系统采用的方法。 
    内核加载方式:把内核的压缩文件存放在flash上,系统启动时读取压缩文件在内存里解压,然后开始执行,这种方式相对复杂一些,但是运行速度可能更快(ram的存取速率要比flash高)。同时这也是标准Linux系统采用的启动方式。 
    (二)uClinux的根(root)文件系统 
    uClinux系统采用romfs文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。空间的节约来自于两个方面,首先内核支持romfs文件系统比支持ext2文件系统需要更少的代码,其次romfs文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。Romfs文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟ram盘的方法进行处理(ram盘将采用ext2文件系统)。 
    (三)uClinux的应用程序库 
    uClinux小型化的另一个做法是重写了应用程序库,相对于越来越大且越来越全的glibc库,uClibc对libc做了精简。 
    uClinux对用户程序采用静态连接的形式,这种做法会使应用程序变大,但是基于内存管理的问题,不得不这样做(这将在下文对uClinux内存管理展开分析时进行说明),同时这种做法也更接近于通常嵌入式系统的做法。 
   (四)GNU开发套件 
    GNU开发套件作为通用的Linux开放套件,包括一系列的开发调试工具。主要组件: 
    1.Gcc:编译器,可以做成交*编译的形式,即在宿主机上开发编译目标上可运行的二进制文件。 
    2.Binutils:一些辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld(连接器)等等。 
    3.Gdb:调试器,可使用多种交*调试方式,gdb-bdm(背景调试工具),gdbserver(使用以太网络调试)。 
    4.uClinux的打印终端 
    通常情况下,uClinux的默认终端是串口,内核在启动时所有的信息都打印到串口终端(使用printk函数打印),同时也可以通过串口终端与系统交互。 
    uClinux在启动时启动了telnetd(远程登录服务),操作者可以远程登录上系统,从而控制系统的运行。至于是否允许远程登录可以通过烧写romfs文件系统时有用户决定是否启动远程登录服务。 
    5.编译调试工具 
    支持一种新的处理器,必须具备一些编译,汇编工具,使用这些工具可以形成可运行于这种处理器的二进制文件。对于内核使用的编译工具同应用程序使用的有所不同。在解释不同点之前,需要对Gcc连接做一些说明: 
    .ld(linkdescription)文件:ld文件是指出连接时内存映象格式的文件。 
    crt0.S:应用程序编译连接时需要的启动文件,主要是初始化应用程序栈。 
    pic:position independence code ,与位置无关的二进制格式文件,在程序段中必须包括reloc段,从而使的代码加载时可以进行重新定位。 
    内核编译连接时,使用ucsimm.ld文件,形成可执行文件映象,所形成的代码段既可以使用间接寻址方式(即使用reloc段进行寻址),也可以使用绝对寻址方式。这样可以给编译器更多的优化空间。因为内核可能使用绝对寻址,所以内核加载到的内存地址空间必须与ld文件中给定的内存空间完全相同。 
    应用程序的连接与内核连接方式不同。应用程序由内核加载(可执行文件加载器将在后面讨论),由于应用程序的ld文件给出的内存空间与应用程序实际被加载的内存位置可能不同,这样在应用程序加载的过程中需要一个重新地位的过程,即对reloc段进行修正,使得程序进行间接寻址时不至于出错。(这个问题在i386等高级处理器上方法有所不同,本文将在后面进一步分析)。 
    由上述讨论,至少需要两套编译连接工具。在讨论过uClinux的内存管理后本文将给出整个系统的工作流程以及系统在flash和ram中的空间分布。 
    (五)可执行文件格式 
    先对一些名词作一些说明: 
    coff(common object file format):一种通用的对象文件格式 
    elf(excutive linked file):一种为Linux系统所采用的通用文件格式,支持动态连接 
    flat:elf格式有很大的文件头,flat文件对文件头和一些段信息做了简化 
    uClinux系统使用flat可执行文件格式,gcc的编译器不能直接形成这种文件格式,但是可以形成coff或elf格式的可执行文件,这两种文件需要coff2flt或elf2flt工具进行格式转化,形成flat文件。 
    当用户执行一个应用时,内核的执行文件加载器将对flat文件进行进一步处理,主要是对reloc段进



杨哥

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2005年3月04日
发表于:2005-12-15 13:14:00
1楼
用了一阵子uclinux了,好东西

lwn

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 33回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2007年4月28日
发表于:2007-11-30 15:39:00
2楼
专业销售BV561EVB_V2开发板
一、 主板硬件标准配置
1). BF561SKBCZ-5A (17by17) (可为急需的客户提供散片)
2). SDRAM:64M
3). NOR FLASH:16M, SPI FLASH,可跳线选择从2片NOR FLASH任意一片启动或从SPI FLASH启动,可兼作产品量产时的FLASH烧片机(烧片机座子默认不焊)
4). 一路CVBS视频输入接口
5). 一路mic音频输入,一路耳机音频输出(WM8750)
6). 100M以太网口 (DM9000)
7). 3个RS-232串口(任何一路均支持CDMA1x无线通信以及GPS,其中J10跳线选择DEBUG口的2线/4线制式)
8). RTC + 后背电池
9). 4个小按键
10). SD卡接口
11). NAND FLASH (标配不焊,客户可另行要求增加配置)
12). SPI,SPORT,PPI,PFs/IIC等扩展接口,提供所有系统剩余资源和扩展总线信号供客户做硬件接口的拓展开发
13). 提供SCH原理图,不提供PCB

二、 配件
12V/2A直流DC电源x1、DB9串口线x1、交叉对接网线x1、软件光盘x1

三、 标配软件

1.  编译器:  提供GNU CC(4.1.x以及3.4.x)交叉编译工具链
2. ICE+VDSP:  支持ADI原装USB仿真器HPUSB-ICE(可协助客户购买),提供VDSP 4.5(下载 版带200702补丁)
3.  bootloader:   u-boot-1.1.3 全部源代码(支持SPI FLASH启动)
4.  uClinuxBSP/drivers+DEMO应用程序:

1). 3个RS-232串口驱动(一个2/4线可调)+串口收发数据测试程序;
2). 100M以太网(DM9000AE)驱动+以太网通信及性能测试程序;
3). 视频输入SAA7113H video decoder驱动+PPI视频图像捕获DEMO程序(保
存为.bmp彩图文件);
4). CCD摄像机视频输入H.264编码后通过网络UDP传输到远端WINDOWS PC
解码观看的DEMO 程序(H.264 编码不提供库文件,不提供源代码,网络
传输及WINDOWS PC端软件均不提供源代码)
5). 音频输入、输出驱动(WM8750,SPORT0)+放音、录音程序(PCM/ADPCM
录放及mp3播放);
6). RTC驱动(TWI/I2C)及date/hwclock程序
7). JFFS2/MTD驱动
8). 4个按键(PF)驱动及显示键值DEMO程序
9). SD卡(SPI)驱动+SD卡读写速度测试程序
10). SPI generic驱动+测试程序
11). SPI FLASH启动u-boot代码(N/A)
12). PPI generic驱动+测试程序
13). SPORT1口generic驱动+测试程序
14). I2C generic驱动+测试程序
15). NAND FLASH驱动+YAFFS2文件系统支持+YAFFS2文件读写速度测试程

16). PPP/CDMA1X拨号软件(可选)
17). PPPoE/ADSL拨号软件(可选)
18). IDE硬盘驱动+硬盘读写速度测试程序(非标配)
19). Video codec:H.264encoder/decoder@CIF25fps,不提供库及源代码,外围参
数例如码流、帧率等参数可根据客户要求调整(非标配)
四、保修

保修: 一年免费保修(客户承担单程邮费),但BGA CPU烧毁及PCB焊盘损坏例外,需另外付费重焊BGA CPU或重新购买板子硬件

                     
五、说明

深圳地区的可以免费送货上门。广东省其他地区视情况而定。

六、产品、价格请咨询:
罗先生 
电话:13480694385
E-MAIL:luoweinian@163.com

热门招聘
相关主题

官方公众号

智造工程师