本平台是由東軟集團有限公司中間件技術分公司針對中國嵌入式系統開發領域設計開發的基於嵌入式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.客戶全面委托我公司進行產品(包括硬件系統)的設計開發,我公司基於本平台為客戶進行系統軟件和應用軟件的開發,客戶支付委托開發費用。
東軟中間件公司同時願意和有志於嵌入式系統軟件開發的公司以多種形式攜手合作,共同開發嵌入式系統應用領域的廣大市場。