基于嵌入式Linux的测试系统软件实现研究 作者:杨雪罗贤全马俊涛
来源:《现代电子技术》2008年第06期
摘要:嵌入式测试系统具有集成度高、体积小、速度快、可靠性强等特点,而嵌入式Linux源码开放,内核可定制,是嵌入式测试系统理想的软件系统平台。对基于嵌入式Linux 的测试系统进行研究,对嵌入式Linux软件系统各个环节的实现过程进行较为全面的探讨,并总结出可行的实现方案。
关键词:嵌入式;Linux;测试系统;软件实现 中图分类号:TP311 文献标识码:A 文章编号:1004-373X(200806-117-03
Research on Realization of Test System Software Based on Embedded Linux YANG Xue 2,LUO Xianquan MA Juntao1
(1.Ordnance Engineering College,Shijiazhuang,050003,China;2.Shijiazhuang Vocational School,Shijiazhuang,050041,China
Abstract:The embedded test system has characteristics of high collectivity,small volume, fast speed and high reliability.And the embedded Linux operation system is very suited for embedded system because its source code is open and its core can be customized.This paper studies the test system based on embedded Linux,researches the realization process of embedded Linux software system and also concludes well performed ways of realization.
Keywords:embedded;Linux;test system;software;realization 1 引言
嵌入式系统是电脑软件与硬件的综合体。他是以应用为中心,以计算机技术为基础,软硬件均可裁剪,能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统是先进的计算机技术、半导体技术以及电子技术与各个行业的具体应用相结合的产物。嵌入式系统实现的功能单一,通常是面向用户、面向产品、面向特定应用的,一般只实现某行业的特定功能[1]。另外嵌入式系统的优点是成本低、体积小、功耗低及可靠性高,但在运行速度及存储容量上有一定的限制。
嵌入式系统的灵魂是他的软件系统,软件系统分为简单控制程序和嵌入式操作系统2种。早期的嵌入式系统只是用简单的循环控制程序来处理外界的特定请求。但随着系统应用越来越复杂,功能要求越来越高,此时就必须用嵌入式操作系统。现在已经有许多可用于嵌入式的操作系统,但最有潜力的应该是Linux操作系统。按照Linux开发者的说法,Linux是一个完全遵循POSIX(Portable Operating System Interface标准的免费操作系统[2]。他是一个自由、免费、多任务的操作系统,他对硬件配置的要求低、占用存储空间小、支持的芯片种类多,最重要的是源代码开放,内核可修改与剪裁,在网上还有众多免费的资源可以利用。但一般的Linux操作系统并不能直接用于嵌入式系统,主要受体积、成本、存储容量等各方面的限制。要将Linux应用于嵌入式系统,就要对Linux操作系统本身进行定制[1,3,4]。
本文主要对基于嵌入式Linux的测试系统软件的各个环节的实现过程进行较为全面的探讨和总结,并总结出可行的实现方案。
2 嵌入式Linux内核裁减
由于Linux操作系统在设计时就具有模块化的功能,所以对其定制主要也有2种方法:一是配置内核可裁减的模块;二是深入内核,修改内核的源代码。内核裁减主要包括内存模块、进程模块和文件系统3部分。
2.1 内存模块
标准Linux采用的是虚拟内存管理模型,Linux使用虚拟内存的目的是为了实现操作系统的多任务性,使多个进程可以分片获得CPU的使用权。应用程序使用的是虚拟地址,但是CPU执行的指令却取于真正的物理地址,因而涉及到内存地址转换的问题。内存地址转换一般由操作系统和硬件MMU(Memory Management Unit完成。也就是说要使用标准的Linux,在硬件上必须支持MMU。但大部分的嵌入式硬件都没有MMU,同时由于嵌入式系统的专用性,有时也没有必要实现多任务的功能。故Linux经过改造后才可以应用到这类嵌入式系统上。
这部分工作只能对Linux内核源代码的内存管理部分进行修改,去除虚拟内存管理的相关代码,这些代码主要集中在内核的/mm,/drivers/char,/ipc,/fs,/init,/kernel等源代码目录下[1,3]。
2.2 进程模块
Linux是一种通用的操作系统,他采用多任务、多进程的管理模式。虽然Linux目前的内核在实时方面有所增强,但他仍然不算是实时操作系统,Linux内核的设计关注的是应用程序的吞吐量连同内核整体设计的优雅。作为提高吞吐量的要求,Linux的调度器试图提供一种“公平分配”策略来保证所有的进程可以均衡地享有CPU的资源。