嵌入式系統架構 長高科技 顏旭偉
嵌入式系統 嵌入式系統為控制、監視或輔助設備、機器或甚至工廠運作的裝置。它是一種電腦軟體與硬體的綜合體,並且特別強調『量身定做』的原則,也就是基於某一種特殊用途,我們就會針對這項用途開發出截然不同的一項系統出來,也就是所謂的客制化(Customize)。在新興的嵌入式系統產品中,常見的有手機、PDA、GPS、Set-Top-Box或是嵌入式伺服器(embedded server)及精簡型終端設備(thin client)等
軟體系統架構圖
BootLoader 的作用 初始化部份的電路 整備快閃記憶體內的影像檔 載入作業系統 CPU,SDRAM,Flash,UART,USB等等 清除快閃記憶體 存入影像檔 載入作業系統 從快閃記憶體轉存作業系統核心至 SDRAM 傳送啟動參數及 CPU 代碼等資訊給核心 轉換系統控制權給作業系統核心
FS2410 bootloader
BootLoader 的運作流程
BootLoader 的製作 使用 ADS (ARM Developer Suite) 編譯 以 C 語言及少量的組合語言寫作 提供親善的 IDE 界面及穩定的編譯器 以 C 語言及少量的組合語言寫作 完整簡單的原始碼方便進一步修改及發展
ADS1.2 ARM ADS全名稱為ARM Developer Suite。是ARM公司推出的新一代ARM集成開發工具。現在ADS的最新版本是1.2,它取代了早期的SDT 提供良好的開發環境、介面
硬體連結Multi ICE
單步追蹤功能
記憶體查看
作業系統核心的作用 初始化所有的週邊設備 支援中斷處理工作 提供核心函式 (System Call) 執行應用程式 設定初始值,配置記憶體位置,啟用中斷等 支援中斷處理工作 接收週邊所傳來的訊息,分配處理器時間等 提供核心函式 (System Call) 協助應用程式處理 I/O,分配記憶體空間等 執行應用程式 支援 multi-thread 或是 multi-process 提供網路通訊協定及檔案系統 包含 TCP,UDP,IP,fat32,cramfs 等等
嵌入式系統的種類 WindRiver VxWorks Microsoft WindowsCE Palm Source Palm OS Metrowerks Embedix Symbian OS
Symbian OS Symbian OS是一種32位元多工的嵌入式作業系統,最大的特色是全部以物件導向的概念來設計,並且使用C++程式來實現,使其擁有更精簡的結構性,專門用來支援行動資訊設備所設計的嵌入式作業系統 其在通訊方面支援程度非常完整,網路方面有基本的TCP協定、UDP協定、
電話通信方面在最底層的部分,Symbian OS建立一套多模式應用程式介面,可以支援GSM、GPRS、EDGE、CDMA和3GPP2CDMA2000 1x與3GPP WCDMA,這套API可以讓系統廠商很容易的在不同的行動電話硬體上移植系統軟體
Windows CE 主要應用於PDA以及smart phone等多媒體網路產品,且非x86微處理器的平台,除了Windows CE.NET外,微軟還加入了Windows XP Embedded用於x86微處理器的產品,用來設計精簡型電腦(thin client)、遊戲系統(gaming system)以及機頂盒(set-top box)等
Windows CE Platform Builder 微軟將Windows CE系列的發展環境包裝為Windows CE Platform Builder,其中包含Platform Builder用來建立目標平台上的作業系統組態,透過系統組態選擇CPU和其他週邊套件內建軟體,組合出的系統影像檔透過網路傳送到Target上執行,如果要偵錯的話再透過串列埠或網路卡連線。
軟體開發工具 微軟也提供了Microsoft eMbedded Visual Tools可用來發展應用程式, Visual Basic.net和eMbedded Visual C++ 4.0及相關的SDK(Software Development kits)都可以直接到微軟的網站下載‧
Vxworks 在2004年登入火星的精神號(spirit)以及機會號(opportunity)探測車,都是使用了WindRriver的VxWorks作業系統。 Vxworks擔任探測車整體的控制任務,負責管理其過程中軌道運行、登陸、地面操作、標本採集及與地球之間的資料通訊等。
VxWorks是由美國WindRiver公司在1983年所發展的嵌入式作業系統,他以其良好的穩定性和卓越的效能,被廣泛應用在通信、軍事、航太等技術層次要求嚴格的領域中。除了火星探測車,在美國的F-16、F-18戰機和愛國者飛彈系統上,還有Honda的機器人,都可以看見VxWORKS的蹤影。
Platform Builder開發軟體
系統開發精靈
選擇處理器
開發產品種類
添加應用軟體
添加網路功能
硬體連接方式
Eboot
應用程式開發工具
Linux 製作 – 編譯核心 make menuconfig make clean make dep make zImage 選擇核心編譯內容及選項 make clean 清除任何已編譯好的目的檔 make dep 建立相依關聯檔案 make zImage 編譯核心
Linux 製作 – 核心選項
Linux 製作 – 核心選項
Qtopia Qt 是一個支援多作業系統平台的應用程式開發架構,它的開發語言C++。Qt最初主要是為跨平台的軟體發展者提供統一的, 精美的圖形介面,但是現在它也提供了統一的網路和資料庫操作的編譯介面。就像微軟當年為作業系統提供了人性化,精緻的使用者介面一樣,今天因為Trolltech 的跨平台開發架構Qt的出現,也使得UNIX、LINUX這些作業系統以更加方便、精美的人機界面走近普通用戶。
QT應用程式開發工具
32 位元作業系統的優點 作業系統核心等可以重覆使用 減低中大型專案開發成本 核心經過長期考驗,穩定度較高 提供網路通訊協定,檔案系統 提供應用程式統一的溝通界面 提供穩定的多工程序 開發除錯較為容易
32 位元作業系統的缺點 小型專案開發成本較高 需要較高的硬體成本 較慢的初始化動作 無法靈活彈性地操作硬體 CPU 需要較快的頻率 RAM 需要較大的空間 Flash 需要較大的空間 較慢的初始化動作 無法靈活彈性地操作硬體
軟體總結 ARM 是 32 位元微處理機核心。 除了可當一般單晶片操作外,也可以透過作業系統簡化開發流程。 利用作業系統可省去許多通用程式的開發流程,如:TCP/IP。 硬體限制軟體,軟體操控硬體。 可配合作業系統課程或是即時作業系統課程實習。