關于ARM嵌入式系統的軟件相關知識
對于一些不需要復雜圖形用戶界面、通信協議和復雜文件操作(如同時打開多個文件)的應用,如果選用CortexM3核的處理器就已可以滿足要求,任務數不多,任務之間的關系也不復雜,則不一定需要移植復雜的操作系統。這樣一方面可以降低系統硬件開銷,也可以獲得更好的實時性和執行速度。不過,這樣的軟件開發方法需要開發人員有較好的程序設計思想,對所用器件有深入的了解,并掌握其編程控制方法。若引入一個簡單的操作系統,如霤/OS,可以簡化程序結構,但開發者最好熟悉其內核結構,并有使用經驗,否則可能會需要更多的系統開發、調試時間。
如果選擇了帶存儲器管理單元(MMU)的ARM處理器(如ARM920T、CortexA8等),這種應用系統根據應用、實時性、開發環境等因素,移植一個功能較強的操作系統一般情況下會比較合適,如Linux、WinCE,甚至新的Android等。這種系統的開發難度主要是在OS的移植以及硬件驅動程序的開發上。當這二步工作完成后,主要的軟件開發工作已和在PC機上開發沒有多大區別,可以按照一般的軟件工程方法來進行,要注意的只是與arm硬件平臺相關的軟件優化問題。
由于嵌入式系統硬件資源的有限性,嵌入式軟件與其他應用軟件的主要區別,在于嵌入式軟件要有較高的效率,包括執行速度和存儲空間,盡管這二者經常是相互矛盾的。目前一般要求更多的是速度優化。要編寫出高效的ARM程序,需要開發人員熟悉ARM的體系結構,包括內核結構、指令系統、Cache與存儲器結構等,還要有好的程序設計思想,以及對一些常用函數、算法的深刻理解。這個過程也是arm系統開發從低級到高級的進階之路。
目前,由于應用系統越來越復雜,嵌入式軟件的移植性和重用性也得到了人們的高度重視,因為它直接影響到嵌入式軟件的開發效率和質量。選擇一種通用的開發環境和高級編程語言,使開發的嵌入式軟件可以方便地移植到不同的硬件平臺,是實現軟件重用的基礎。目前在ARM嵌入式系統開發中,ARM RealView、Keil以及IAR的EWarm是較好的開發平臺,C/C++語言是應用最廣泛的編程語言,并具有廣泛的庫函數、程序支持,在今后很長一段時間內,仍將在嵌入式系統應用領域中占重要地位。
評論