欢迎来到天天文库
浏览记录
ID:20284715
大小:61.50 KB
页数:7页
时间:2018-10-11
《嵌入式uclinux简介》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、嵌入式uclinux简介
2、第1简介Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是"针对微控制领域而设计的Linux系统"。uClinux小型化的做法标准Linux可能采用的小型化方法1.重新编译内核Linux内核采用模块化的设计,即
3、很多功能块可以独立的加上或卸下,开发人员在设计内核时把这些内核模块作为可选的选项,可以在编译系统内核时指定。因此一种较通用的做法是对Linux内核重新编译,在编译时仔细的选择嵌入式设备所需要的功能支持模块,同时删除不需要的功能。通过对内核的重新配置,可以使系统运行所需要的内核显著减小,从而缩减资源使用量。2.制作root文件系统映象Linux系统在启动时必须加载根(root)文件系统,因此剪裁系统同时包括rootfilesystem的剪裁。在x86系统下,Linux可以在Dos下,使用Loadlin文件加载启动,uClinux采用的小型化方法1.uCl
4、inux的内核加载方式uClinux的内核有两种可选的运行方式:可以在flash上直接运行,也可以加载到内存中运行。这种做法可以减少内存需要。Flash运行方式:把内核的可执行映象烧写到flash上,系统启动时从flash的某个地址开始逐句执行。这种方法实际上是很多嵌入式系统采用的方法。内核加载方式:把内核的压缩文件存放在flash上,系统启动时读取压缩文件在内存里解压,然后开始执行,这种方式相对复杂一些,但是运行速度可能更快(ram的存取速率要比flash高)。同时这也是标准Linux系统采用的启动方式。2.uClinux的根(root)文件系统uC
5、linux系统采用romfs文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。空间的节约来自于两个方面,首先内核支持romfs文件系统比支持ext2文件系统需要更少的代码,其次romfs文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。Romfs文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟ram盘的方法进行处理(ram盘将采用ext2文件系统)。3.uClinux的应用程序库uClinux小型化的另一个做法是重写了应用程序库,相对于越来越大且越来越全的glibc库,uClibc对libc
6、做了精简。uClinux对用户程序采用静态连接的形式,这种做法会使应用程序变大,但是基于内存管理的问题,不得不这样做(这将在下文对uClinux内存管理展开分析时进行说明),同时这种做法也更接近于通常嵌入式系统的做法。uClinux的开发环境GNU开发套件Gnu开发套件作为通用的Linux开放套件,包括一系列的开发调试工具。主要组件:Gcc:编译器,可以做成交*编译的形式,即在宿主机上开发编译目标上可运行的二进制文件。Binutils:一些辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld(连接器)等等。Gdb:调试器,可使
7、用多种交*调试方式,gdb-bdm(背景调试工具),gdbserver(使用以太网络调试)。uClinux的打印终端通常情况下,uClinux的默认终端是串口,内核在启动时所有的信息都打印到串口终端(使用printk函数打印),同时也可以通过串口终端与系统交互。uClinux在启动时启动了teld(远程登录服务),操可以远程登录上系统,从而控制系统的运行。至于是否允许远程登录可以通过烧写romfs文件系统时有用户决定是否启动远程登录服务。交*编译调试工具支持一种新的处理器,必须具备一些编译,汇编工具,使用这些工具可以形成可运行于这种处理器的二进制文件。
8、对于内核使用的编译工具同应用程序使用的有所不同。在解释不同点之前,需要对gcc连接做一些说明:.ld(linkdescription)文件:ld文件是指出连接时内存映象格式的文件。crt0.S:应用程序编译连接时需要的启动文件,主要是初始化应用程序栈。pic:positionindependencecode,与位置无关的二进制格式文件,在程序段中必须包括reloc段,从而使的代码加载时可以进行重新定位。内核编译连接时,使用ucsimm.ld文件,形成可执行文件映象,所形成的代码段既可以使用间接寻址方式(即使用reloc段进行寻址),也可以使用绝对寻址方
9、式。这样可以给编译器更多的优化空间。因为内核可能使用绝对寻址,所以内核加载到的内存地址空间必须
此文档下载收益归作者所有