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