|
平台介绍 本平台是一个可复用平台,基于此平台可以构造各种应用中间件(如导航、Mobile TV、多媒体编解码、基于Web2.0的浏览器、QR Code Reader等),以此为基础帮助目标客户(生产商或品牌商)构造各种目标产品(如MID、Mobile TV、Mobile Widget、DCD、PIM Sync等)。
硬件开发模组采用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,可以支持硬实时时钟,可以广泛应用于工业控制、进程控制等一些实时 要求较高的应用。

|