首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式系统软件的机遇和挑战 02

嵌入式系统软件的机遇和挑战 02

内核代码大小
    在考虑选择嵌入式Linux时的一个重要因素就是Linux内核代码尺寸, 一般来讲它比传统的RTOS要大,这就是说需要用更多的程序存储器(如Flash或电子硬盘)和数据存储器(如SDRAM),目前Linux内核的机制是把压缩后的内核(一般安放在Flash或电子硬盘上)解压到SDRAM上然后执行,肯定是需要更多的FLash和SDRAM。但是,经过专用库优化器处理的内核压缩后最小只有0.5MB,解压后包含文件和网络系统也只有2~3MB。当然这里只是基本的Linux内核(含网络和文件系统),不包含某些应用比如路由协议和图形系统。虽然比较起传统的RTOS 50KB的内核,Linux内核是大了不少,但是今天市场上的各类信息家电,通信设备(除了很低端的产品)很多的系统都有超过2MB的Flash和4MB的SDRAM,而且内存器件的价格也相当的便宜。
    设备驱动程序和编程接口
    我们知道Linux有比传统的RTOS更多的、更新的设备驱动程序。对于绝大多数的嵌入式系统应用,只要不是专用接口部分,用户是不需要自己写设备驱动程序的,例如以太网、LCD和USB,Linux都有现成的设备驱动程序。设备驱动程序和内核在一起为应用提供一个编程接口,但是如果用户专用的外设是需要自己按Linux设备驱动规范写一个标准的驱动程序,Linux应用是无法直接控制外设(Linux内核只提供给应用程序一个简单直接访问内存或I/O方式),可以说所有外设、I/O、中断一般都是在设备驱动程序中处理,这与传统RTOS完全不同,因为传统的RTOS没有象Linux的进程保护机制。
    嵌入式Linux多任务的编程接口目前推荐的是Pthread(即POSIX线程),它在功能上与传统的RTOS的任务很接近,比较简单的方法是在一个进程下建立若干个线程,这样就像使用任务一样进行系统调度,Pthread目前还在继续发展,现在已经可以支持高分辨率的定时器。
    嵌入式Linux的可靠性
    许多人简单地认为开放源码就是没有人负责任只能用在可靠性要求比较低的设备和环境上。事实并不是这样的:
    · Linux起源于Unix,有十多年的历史。基于Linux的Apache Web服务器占56.81%市场份额,每天当你在计算机上 键入 WWW 的时候, 你已经在和许多Linux系统在打交道,它是非常安全可靠的。
    · Linux使用硬件MMU单元为多个进程建立自己虚拟内存空间。一个进程内的程序和线程,看不见其它进程代码和数据空间,对外设的访问也是通过内核共享进程和设备驱动实现的;而传统的RTOS整个地址空间是线性的,对任何任务(线程)都可以随意访问,一旦某个任务跑飞, 就可能干扰其它任务的运行。
    · 冗余和高可靠性
    传统冗余是由硬件实现的,软件主要起监视作用,如2余度或 3余度冗余系统是由备份的2套或3套硬件系统组成。Linux在内核和设备驱动程序中已经包含了相当的软件冗余和高可靠性特性,还有热切换。嵌入式Linux支持PCI工业组织的PICMIG2.12热拔插标准。
    对于中国这个十分需要引进RTOS的市场,嵌入式Linux是一个机遇。软件设计工程师可以轻而易举地从网上下载一个Linux内核,如ARMLinux在某arm板上试一试,免费运行一个 WebServer。但是问题又来了,如果硕士生撰写论文,在1~2年的时间如没有产品期限和完整测试,这是一个很好的方法。如果这是一个商业项目,6个月的时间内完成完整功能、性能和可靠性的测试,将会有许多问题。
    中国的软件工程师缺少Linux经验,习惯了单片机开发,以及直接用C或汇编语言访问物理地址驱动外设,只有简单的RTOS任务的概念,不习惯进程和线程的POSIX接口,此外不可否认还有成本的考虑,这些都为嵌入式Linux在中国的普及带来了一些困难。
    开放式计算机系统(包含嵌入式)和开放式嵌入式Linux结合,必将为下一代通信设备,消费电子、控制系统、信息家电以及军事设备产品的研制和开发带来一种全新设计思想,也会以更低的价格,更快产品上市速度赢得人们的信赖。
返回列表