本平台是由东软集团有限公司中间件技术分公司针对中国嵌入式系统开发领域设计开发的基于嵌入式Linux的系统开发平台。
基于Linux的嵌入式开发平台由硬
件开发模组和软件开发包组成。
硬件开发模组采用Motorola的M68VZ328(33MHZ)微处理器,主要配置包括:
· SDRAM 8M
· FLASH 4M
· LCD 160*240 16级灰度+触摸屏
· 16键矩阵键盘
· 两路RS232接口等。
软件开发包由嵌入式Linux操作系统,设备驱动支持包,嵌入式图形包,GNU交叉编译调试器组成。嵌入式Linux操作系统包括嵌入式Linux内核,ROM/RAM文件系统,其中内核采用的是目前比较流行的open source的嵌入式Linux----uClinux。
嵌入式Linux软件开发平台的系统结构如下图所示,其中虚线为下一阶段将要支持的功能。
嵌入式Linux操作系统介绍
该平台所实现的嵌入式Linux系统内核是在世界著名嵌入式Linux系统uCLinux系统的基础上移植而来,该嵌入式Linux操作系统是面向没有MMU的CPU的嵌入式操作系统。它的内核是由Linux 2.0 kernel发展起来的,目前,内核可以支持Linux Kernel Veriosn 2.0.X。
该平台所实现的嵌入式Linux操作系统目前支持的Microcontroller / Microprocessor 包括Motorola公司的DragonBall系列芯片,包括DragonBall EZ, DragonBall VZ,Motorola公司的ColdFire等系列,并且在内核上支持以下处理器:ARM;ARM7TDMI;MC68EN302;Axis ETRAX;Intel i960;PRISMA;Atari 68k等等。由于Linux具有很高的可移植性,所以嵌入式Linux操作系统可以很容易地提供对特定厂家的CPU的支持。
该嵌入式Linux操作系统使用的是通用Linux API接口,即Posix标准接口。嵌入式Linux操作系统kernel小于512KB, kernel及tools(fs) 小于900kB。
该嵌入式Linux操作系统具有强大的网络功能,支持PPP、Ethernet等多种网络连接方式,包括完整的TCP/IP协议栈及大量的其他协议。目前,有很多的网络协议正在开发中。另外,由于Linux的开放性,任何新的网络协议可以很容易的加入到内核中。
该嵌入式Linux操作系统支持丰富的外部设备,目前在内核级已经实现了对多种外部设备的支持,包括:LCD、触摸屏、键盘、多路串口、Modem、IrDA、PWM音频输出等等,同时,内核还支持大量的文件系统:Rom-Disk, Ram-Disk, NFS, ext2, FAT16/32等。
基于MicroWindows的嵌入式GUI图形包
该平台所实现的嵌入式GUI图形包,是基于目前市场上比较成熟的嵌入式GUI图形包—Microwidnows移植开发的。
嵌入式GUI图形包目前提供了比较完善的图形功能,包括一些高级的功能,比如Alpha 混合,三维支持,TrueType 字体支持等,并具有中文本地化支持,包括GB2312 等字符集的支持,中文输入法等等。
嵌入式GUI图形包可以直接运行于嵌入式Linux操作系统之上。在32位系统上,一个包含字体(1种)的典型应用需要大约100K的空间。
嵌入式GUI图形包面向应用程序开发者提供的两种接口:Win32 与Nano-X APIs,它们与Win32和X Windows具有一致的接口。具有在Win32、Nano-X平台开发经验的开发人员可以很轻松地进行嵌入式图形应用程序开发。
嵌入式GUI图形包还包括一个X11驱动程序,它允许嵌入式GUI应用软件在X Windows桌面系统上运行。这个驱动程序仿照嵌入式环境的显示功能,忽略了桌面的显示特性,让应用程序目标系统显示特性直接在桌面显示上预览。这种特性为用户开发嵌入式图形应用软件提供了一个很好的仿真开发环境,改变嵌入式开发人员的开发、下载、调试,再开发、下载、调试的开发方式,开发人员可以先在X Windows桌面系统上开发,调试嵌入式图形应用软件,排除各种错误后在目标系统上直接调试运行应用软件。这种开发方式可以大幅度地加快开发速度,节省开发时间。
在目前已经实现的开发平台的基础上,我公司通过自主开发,已经实现以下功能:
1.嵌入式GUI控件集:基于FLTK实现,在嵌入式GUI基础上提供对菜单、按钮、滚动条等多种GUI控件的支持。
2.嵌入式Web Server:实现支持CGI等功能的嵌入式Web Server
3.中文手写输入:集成国内第三方软件厂商的中文手写输入软件,为客户提供全面的中文输入解决方案。
交叉编译调试工具集
支持一种新的处理器,必须具备一些编译,汇编,调试工具,使用这些工具可以形成可运行于这种处理器的二进制文件,并对相应二进制程序进行调试。本嵌入式Linux开发平台使用的是Gnu开发套件集,包括一系列的开发编译调试工具,完全免费提供给用户,并能够帮助用户快速建立自己的应用软件开发环境。
其中主要组件包括:
Gcc:编译器,可以做成交叉编译的形式,即在宿主机上开发编译目标上可运行的二进制文件。
Binutils:一些辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld(连接器)等等。
Gdb:调试器,使用基于第二路串口的远程交叉调试方式,包括gdbserver(目标机),gdb(本地机)。下载工具:动态将本地机(host)的目标机二进制程序下载到目标机,是gdb的配套使用工具。
linux的打印终端,通常情况下,默认终端是串口,内核在启动时所有的信息都打印到串口终端,同时通过串口终端与系统交互。
嵌入式Linux操作系统的开发环境
嵌入式Linux开发平台的Gnu开发套件集主要运行环境是桌面Linux操作系统,推荐使用Red Hat6.X。桌面Linux操作系统是嵌入式Linux应用软件的交叉开发平台。开发工具集的交叉编译器(GCC),辅助工具,调试器(GDB),下载工具Client(send端)将运行桌面Linux操作系统;调试器服务器端(GDBSERVER),下载工具Server(Receive)将运行于目标机—嵌入式Linux操作系统。
开发工具集的调试器将使用第二路串口进行调试。第一路串口将作为终端通讯端口连接本地机的仿真终端与目标机。调试的主要方法是通过串口利用GDB远程调试功能对目标机的二进制程序进行远程调试,gdbserver在目标机上接受gdb(本地机)通过串口发送的控制指令,控制二进制程序的运行状态,并通过串口将gdb所需的状态信息返回给gdb。
嵌入式Linux实时性的解决方案
uClinux本身没有解决实时问题,它并不是为了Linux的实时性而提出的。我们将使用另外有一种Linux--Rt-linux的处理方法解决uClinux实时性问题。Rt-linux执行管理器把普通Linux的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通Linux内核处理。这种方法已经应用于很多的操作系统用于增强操作系统的实时性,包括一些商用版UNIX系统,Windows NT等等。具有实时功能的uClinux,可以支持硬实时时钟,可以广泛应用于工业控制、进程控制等一些实时要求较高的应用。
计划实现功能
在目前已经实现的开发平台的基础上,我公司计划在今年(2001年)逐步实现以下功能:
1.嵌入式浏览器:实现一个支持HTML3.2以上的,包括各种图形格式显示的全功能网络浏览器
2.嵌入式数据库:提供标准的数据库接口,支持数据传输、备份和同步。
3.KVM:计划在2002年实现嵌入式Java虚拟机KVM在该平台上的移植,为客户提供更加开放的应用软件开发平台。
开发平台形态
商业合作模式
我公司可以在多种商业合作模式下同客户进行合作。目前主要的合作模式是:
1.我公司负责为嵌入式系统开发商提供系统开发平台,进行嵌入式Linux系统开发培训,用户在我公司的开发平台上进行应用软件的开发。
2.我公司可以为客户进行目标系统的操作系统移植和设备驱动软件的定制开发。
3.客户基于我公司平台开发形成产品后,按照一定价格支付我公司一定数量的使用许可费用,具体费用的计算和收取办法双方可经过谈判协商而定。
4.客户全面委托我公司进行产品(包括硬件系统)的设计开发,我公司基于本平台为客户进行系统软件和应用软件的开发,客户支付委托开发费用。
东软中间件公司同时愿意和有志于嵌入式系统软件开发的公司以多种形式携手合作,共同开发嵌入式系统应用领域的广大市场。