標籤:
手機本質上是一個即時嵌入式系統。
嵌入式系統是以應用為中心和以電腦技術為基礎的,並且軟硬體可裁剪的,能滿足應用系統對功能、可靠性、成本、體積和功耗等指標的嚴格要求的專業電腦系統。通常由嵌入式處理器、嵌入式外圍裝置、嵌入式作業系統和嵌入式應用軟體等幾大部分組成。
嵌入式應用軟體開發要使用交叉開發環境。
交叉開發環境是指實現、編譯、連結和調試應用程式代碼的環境。與運行應用程式的環境不同,它分散在有通訊串連的宿主機與目標機環境中。
交叉開發硬體環境包括宿主機和目標機。
宿主機(Host)是一台通用電腦,可以是PC或工作站。它通過串口或網路連接與目標機通訊。
目標機(Target)可以是嵌入式軟體應用軟體的實際運行環境,也可以是能替代實際環境的模擬系統。
即時系統(RealTime System)是一個能夠在指定或者確定的時間內完成系統功能及對外部或內部事件在同步或非同步時間內做出響應的系統。
回應時間(Response Time)是電腦從識別一個外來事件到做出響應的時間,
即時系統根據回應時間,可分為3種類型:
弱即時系統-回應時間可以是數十秒或更長;
一般即時系統-回應時間可以在秒的數量級上,如手機系統;
強即時系統-回應時間在毫秒或微妙的數量級上;
在RTOS中,任務(task)是擁有資源和獨立調度的基本單位。與作業系統中的線程相似,它是一個具有獨立功能的無限迴圈程式的一次運行過程,具有動態性、並行性和非同步獨立性。
動態性指的是任務的狀態不停地在變化。並行性指的是系統中的多個任務在宏觀上是並行的。非同步獨立性指任務是系統中獨立啟動並執行基本單元,也是核心分配和調度的基本單元,內閣任務運行時各自相互獨立。任務是即時系統中獨立啟動並執行基本單元,它是一段沒有返回的代碼,可以有自己的運行參數,但傳回型別總是void。
在即時作業系統中,任務的實體由系統給它分配的優先順序、任務堆棧和任務控制塊3部分組成。
大多數手機開發人員,最初接觸到的都是開發PC系統應用,手機與PC相比,有許多不同之處:
1開發PC應用軟體的系統內容和軟體的實際運行環境相差不大;但開發手機軟體,基本都是在宿主機-PC上開發,然後通過下載線將軟體下載到目標機-手機中,開發和運行是兩個不同的環境。
2 手機CPU運行速度低;
3手機記憶體和硬碟容量小;
4手機顯示器小;
5使用PC系統時,基本都是利用外接電源供電,電量屬於無限供給(未接充電器的筆記本除外);但使用手機時,主要利用內建的電池供電,電量有限;
6 PC系統基本都使用全鍵盤,但手機的按鍵個數少,或純觸控操作,無鍵盤;
7手機的主要功能是接打電話和收發資訊,所以這兩個任務的優先順序最高,也就是在任何時刻,都儘可能的讓使用者可以電話中和收到資訊;
8手機系統有WatchDog重啟機制;
當然還有許多其他不同之處,相對於PC開發,手機開發可以說是一個全新的領域。
手機軟體開發除了要瞭解基本的軟體開發、編程知識外,還會涉及嵌入式系統開發、ARM開發、通訊協定(GSM、GPRS、CDMA等)、網路通訊協定(HTTP、TCP/IP等)、WAP、MMS、J2ME、串口通訊等各方面知識。
手機開發實戰1-手機簡介