580 likes | 738 Views
Chapter 2 嵌 入式系統軟體概論. 嵌入式系統軟體概論. 作業系統發展 Embedded Linux Windows CE Symbian 應用程式開發 程式語言考量 平台功能支援 軟體開發流程. 作業系統發展. Embedded Linux Windows CE Symbian. Embedded Linux 優勢. 開放原始碼 模組化設計 穩定性夠 網路功能強大 跨平台 應用軟體眾多 選擇多樣. 開放原始碼. Embedded Linux 採用「通用公共授權」 (General Public License , GPL)
E N D
嵌入式系統軟體概論 • 作業系統發展 • Embedded Linux • Windows CE • Symbian • 應用程式開發 • 程式語言考量 • 平台功能支援 • 軟體開發流程
作業系統發展 • Embedded Linux • Windows CE • Symbian
Embedded Linux優勢 • 開放原始碼 • 模組化設計 • 穩定性夠 • 網路功能強大 • 跨平台 • 應用軟體眾多 • 選擇多樣
開放原始碼 • Embedded Linux採用「通用公共授權」(General Public License, GPL) • 除了把原始碼公開以外,任何人都可以自由使用、修改及散佈 • 採用 GPL授權,沒有什麼權利金或保密協定的約束
模組化設計 • 而Embedded Linux核心採用模組化設計 • 容易增減功能,高彈性,可發展出最適合硬體平台的核心
穩定性夠 • Embedded Linux全球都有無數的人參與 Linux核心的改進、除錯、測試,增強其穩定度
網路功能強大 • Linux的架構是參造 UNIX 系統而來,因此 Linux 也承襲了 UNIX 強大的網路功能
跨平台 • Linux一開始是基於 Intel 386 機器而設計,但是隨著各式平台的移植 • Embedded Linux可以在 x86、MIPS、ARM/Strong ARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、Transmeta..等平台上運作 • 幾乎涵蓋了所有嵌入式系統所需的CPU
應用軟體眾多 • 自由軟體世界裡有個很大的特色就是軟體種類相當多元化,並數量眾多,而且幾乎都是符合GPL標準 • 先在 PC端造出模擬出嵌入式系統的環境,並直接在PC模擬環境上開發 • 使用的工具也都與開發一般桌上型電腦軟體類似,能夠增加開發的速度
選擇多樣 • 可以選擇購買商業版的 Embedded Linux 系統,像是有名的 Redhat 公司、Lineo、MontaVista..等,這些都是商業的 Linux 公司
Windows CE • Windows CE(簡稱WinCE)是Microsoft公司專為嵌入式系統所打造的32位元硬式即時作業系統(Hard Real-Time OS) • 其核心的運作方式則是繼承WinNT的技術,可以適用在智慧型、具連接性、與精巧的裝置上(例如消費性電子產品、閘道器、工業控制器、手持式行動裝置、IP 機上盒、VoIP 電話與精簡型用戶端設備等 )
Windows Mobile • Windows CE分為Widows CE與Windows Mobile,基本上兩者所採用的系統核心是一樣的 • Windows Mobile是Microsoft公司專門為了市面上常見到的Pocket PC或是Smart phone所打造的一套開發環境與授權方式
Windows CE • Windows CE則不限定於Pocket PC或是Smart phone的產品,一般公司可以自由運用在許多方面,所以Windows CE就可以運用在VoIP電話或是網路IP機上盒等多樣產品
軟體開發環境取得 • Windows Mobile • 是在取得Microsoft授權之後,由Microsoft以特別的方式授予 • Windows CE • 取得Windows CE的開發環境與相關技術文件十分容易
Windows CE設計重點 • 模組式作業系統 • 完善的網路環境 • 即時作業系統 • 多媒體支援 • 多語環境 • 強大開發平台
應 用 軟 體 Custom Applications WinCE Application 作 業 系 統 Application API Device Manager Services Manager Kernel GWES Board Support Package OAL Device Drivers Boot loader 硬 體 Windows CE架構
Windows CE架構 • OAL • OEM Adaptation Layer 連接硬體與核心 • Device Driver • 連接作業系統與設備 • Kernel • 作業系統核心 • GWES • Graphic、Windowing and Events Subsystem
Windows CE優勢 • 共用元件 • 開發效率 • 整合的可靠性
共用元件 • 為擺脫工程人員對於Windows CE的高門檻開發映像,特別強調產品品質(Production Quality)的程式碼,包括OAL(PQ-OAL)、各式驅動程式(PQ-Drivers)等等,程式模組之間的區分更為細緻,更容易重複使用 • 這可以讓OEM更專注在OAL的強化,無須擔心一般共用元件的管理,可以讓一般OEM廠商可以直接使用原本的程式碼,不用耗費大量的研發與修改,並且可以縮短研發時程
開發效率 • Microsoft公司已經把.NET Framework移植到行動裝置上面,並且修改精簡成為.NET Compact Framework(簡稱為.NET CF) • 此時需要藉助外灌embedded Visual C++之類的工具配合Visual Studio一起開發 • 新的5.0裡面,不再有eVC了,而是由新版的Visual Studio 2005全部包辦,在新增專案的時候,就包含Windows CE的應用程式框架,並且可以在模擬器上面看到程式執行的結果
整合的可靠性 • 在多媒體支援方面,除了舊有的部分DirectX 技術之外,還新增以元件物件模型 Component Object Model (COM) 為基礎的程式開發模型 Direct3D Mobile,讓一般應用程式開發廠商可以開發3D視覺的應用程式 • 加強原本網路功能,支援更多的網路協定,例如VoIP所需要的各種網路協定大都包含在核心當中
Symbian OS • Symbian OS的前身稱為EPOC是 Symbian公司專門針對行動資訊設備 (Wireless Information Devices ;WID)所設計的嵌入式作業系統 • 完全物件導向是其最大的特色 • 在通訊方面的支援程度更是所向披靡,在Smart Phone市場上異軍突起,來自歐洲嵌入式作業系統軟體的優良品種已在第三代行動裝置上
Symbian OS • Symbian OS是一種32位元多工的嵌入式作業系統 • 其特色是全部以物件導向的概念來設計,並且利用C++程式來實現,使其能更具精簡的結構性 • 其專門用來支援行動資訊設備(Wireless Information Devices)的技術,統稱為Generic Technology v6(GTv6),也是Symbian的核心技術
Symbian OS架構 資料來源:http://www.symbian.com
GTv6 • GTv6的核心採取主從式架構(Client-Server Architecture ) • 系統一開啟後,核心服務即跑一個執行緒,掌管所有的系統資源,包含記憶體、工作行程、I/0、中斷等 • 所有的應用程式都必須透過Kernel Server來配置資源,因此每個行程間有各自獨立的記憶體空間
Kernel-Side Power Model • Kernel-Side Power Model則可以提供更好的電源管理功能 • 一般RTOS最重視的I/O效率問題,GTv6則採取所謂的Active Object在非不可搶先多工〈Non-preemptive Multitasking〉作業下執行 • 利用此技術應用程式, 可以不用以 輪詢 (Polling)的方式等待I/O,而在同一個執行緒下即可同時進行I/O和資料處理等相關的工作
系統或設備的安全保密性 • GTv6在這方面提供密碼模組(Cryptography Module )和認證模組(Certificate Module ) • 密碼模組包含了基本的編碼解碼軟體元件 • 對稱式密碼如著名的DES 、DES3、RC2、RC4、RC5 • 非對稱式如RSA、DSA、DH • 認證模組基本上是針對保護應用軟體和使用者資料而來,提供認證的給予和取回服務、應用程式和應用程式之間交互存證等。
WID產品平台 • Symbian OS設計概念導向為WID產品平台,其在通訊方面的支援程度非常完整。網路方面有基本的TCP協定、UDP協定、Broadcasting Internet (RFC922)協定以及提供低速連接特性使用的TCP壓縮格式 (RFl144)、Internet控制方面的ICMP協定、點對點傳輸協定PPP、撥接上網與其他如IPCP和CHAP等
WID產品平台 • 安全層的協定如TLS (Transport Laver Security)和SSL (Secure Socket Layer) • 使用的密碼學技術包含RSA、 DES 、RC2、RC4、SHA-1、MD5、Diffie Hellman 和Triple-DES • 上層則有Telnet和FTP等協定,當然,也少不了連結導向和非連結導向的WAP 協定服務,如WDP、WSP、WTP、WTLS、SMS等
Symbian OS開發工具 • Symbian OS提供的開發工具有其圖形化介面的Symbian OS Kits • 針對特定的硬體平台個別化Symbian OS ,讓系統商可以容易地整合自己的程式 • 含有Debug tool來對核心和驅動程式外的程式碼做除錯,以及ROM building工具 • Symbian OS Kit支援兩套IDE環境,一個是Metrowerk的CodeWarrior發展工具,另一個是 Microsoft Visual C++6.0專業版
應用程式開發 • 程式語言考量 • 平台功能支援 • 軟體開發流程
程式語言考量 • 組合語言 • C/C++ • Java。
程式語言考量 • 第一種是應用程式撰寫人員 • 第二種是驅動程式撰寫人員 • 第三種是系統移植整合撰寫人員 • 整個研發過程中,還需要了解硬體及除錯的人員
客制化 • 將一個嵌入式系統套進多樣的產品中,並不是一件容易的事 • 因此設計人員必須說明文件的指令資訊,自行修改一些開發工具的設定 • 還必須不斷的與客戶溝通,以完成客戶的需求
除錯 • 嵌入式系統的除錯難度比一般桌上型電腦應用軟體除錯的難度高,因為要做到符合目標平台的多樣性是最主要的因素 • 在除錯時能快速抓到bug 的所在,這也是嵌入式系統開發設計時所應該要考慮的重點 • 利用設計好的應用程式界面(API)來撰寫應用程式,如此不需要直接與系統內部和硬體接觸也可以開發某個嵌入式系統
瓶頸 • 在目前嵌入式系統產品眾多的情況下,要發展適用於各種不同平台的應用程 式 • 採用Java來實現應用程式的部份,這樣可以免除因為硬體的處理器、應用程式界面、或是周邊裝置的差異 • 使用虛擬機器的幫助,為整個嵌入式系統領域的應用程式設計人員,帶來一個很好的發展平台
平台功能支援 • 嵌入式系統與一般桌上型電腦的發展硬體環境上,最大的差異大概就是他分成兩個平台,一個是發展平台(host),一個稱為目標平台(target)。
發展平台(host) • 發展平台(host)大概就是指使用桌上型電腦,透過傳輸的界面,例如序列埠(RS232)、串列埠、或是網路(Ethernet)與目標平台(target)連接 • 現在大都已經可以在windows 95、98以上的電腦做開發的動作
目標平台(target) • 挑選一個目標平台必須要審慎,因為這牽涉到有沒有好的發展環境及技術支援 • 功能強大的ARM系列CPU當道,當然也有許多廠商考慮使用StrongARM來作更高階的產品
目標平台(target) • 一般的板子除了整合型的CPU之外,最少需要一個輸入及輸出的界面、供下載影像檔(ROM image)的界面、記憶體(RAM)、Flash ROM、電源模組等等 • 發展初期的除錯方便,還會拉出幾個特殊的腳位,如JTAG界面,以供外接的除錯模組所使用 • 因為是發展實驗板,所以整個尺寸大小會大一點
以平台為基礎的設計流程(Platform-Based Design ;PBD) • 系統平台,是指一個已經有中央微處理器、系統記憶體、系統匯流排、即時作業系統與其他基本周邊設備的系統開發環境 • 在這種開發環境下,設計者針對新的產品需求來加入額外的硬體模組,或是重新燒錄PLD、修改嵌入式應用軟體等
PBD平台分類 • 特殊應用專屬平台 • 以研究處理器架構為主的平台 • 強調模組之間通訊整合性的平台 • 可程式規劃的開發平台
特殊應用專屬平台 • 特殊應用專屬平台是專門為某種應用產品所設計的 • 常見的模組包括處理器、系統匯流排、以及其他為了配合應用所搭配的電路模組,像是影音解碼器、數據機等 • 如專門用來開發PDA產品的平台,專門開發網路設備的平台等
以研究處理器架構為主的平台 • 以研究處理器架構為主的平台提供了可自行組態的處理器給使用者使用,但並末針對任何特定的應用做設計 • 這類平台主要是供使用者在研究處理器時,可以設計自己的架構,並觀察新架構之行為
強調模組之間通訊整合性的平台 • 強調模組之間通訊整合性的平台,是為了解決SoC設計內,因高速的資料交換,而造成系統整合的問題而設計 • 採用這種設計平台可以解決系統內不同模組之間資料交換的問題達到快速整合模組的目標
可程式規劃的開發平台 • 想增強系統的功能,都必須透過加入新的硬體模組來完成,在可程式規劃的開發平台內會有一塊FPGA以及一顆微處理器 • 在這種架構下軟體部份的模組可在微處理器上執行,至於 FPGA的部份,則可針對所需加強的系統功能來當作ASIC使用
PBD開發流程優點 • PBD 本身仍有其他風險的存在 • 自行發展平台的話,必需投入相當多的人力,如果平台的設計方向錯,等於先前所投入的資源也都浪費 • 根據今日的需求所推出的開發平台,是否可以和新一代的IP設計相結合做成高度可靠的晶片
軟體開發流程 • 編譯 • 鏈結 • 重新定位 • 下載
編譯 • 編譯就必須先找到開發環境,而且還要是跨平台整合開發環境,這是嵌入式系統的一大特色 • 環境中包括編譯器、連結器等一大堆工具 • 到現在還有許多嵌入式系統編譯器是使用命令模式 • 程式設計師必須要具備有撰寫makefile的能力 • makefile就是可以將一個專案裡的原始碼、object code及lib等檔案,經由makefile的只是全部編譯及鏈結出結果 • 開始有一些視窗型的開發環境,可以幫助我們不需要再撰寫makefile