Cpmcfy淺談手機軟件開發(fā)_第1頁
Cpmcfy淺談手機軟件開發(fā)_第2頁
Cpmcfy淺談手機軟件開發(fā)_第3頁
Cpmcfy淺談手機軟件開發(fā)_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、秋風清,秋刀明,落葉聚還散,寒鴉棲復驚。1手機軟件的運行環(huán)境1.1概述手機可以被看作袖珍的計算機。它有cpu、存儲器(flash、ram)、輸入輸出設備(鍵 盤、顯示屏、usb和串口)。它還有一個更重要的i/o設備,那就是空屮接口。手機 通過空中接口協(xié)議(例如gsm、cdma、phs等)和基站通信,既可以傳輸語音、也可 以傳輸數(shù)據。手機的cpu 般不是獨立的芯片,而是基帶處理芯片的一個單元,也稱作cpu核?;?帶處理芯片是手機的核心,它不僅包含cpu核、dsp核這些比較通用的單元,還包含 通信協(xié)議處理單兀。通信協(xié)議處理單兀和手機協(xié)議軟件一起完成空中接口要求的通信功 能。隨著芯片技術的不斷發(fā)展,

2、越來越多的外圍電路可以被集成到基帶處理芯片中,例如 bap,即基帶模擬處理器。這樣手機才可能越做越小、越做越便宜。1.2單cpu和雙cpu很多手機只有一個cpu,也就是基帶處理芯片屮的cpu核。在這個cpu上既要跑通信 協(xié)議,乂要實現(xiàn)用戶界面(稱作ui或mmi)。皺 dsp會分擔一些計算量繁垂的工作, 例如語音編解碼、安全層的各種算法等。在市場推動下,手機功能在不斷發(fā)展。攝像頭、mp3、藍牙這些功能可以依靠硬件,對 cpu的壓力還不是很大,但java虛擬機、嵌入式瀏覽器等應用軟件就會對cpu資源有 較高的要求。單cpu的首要任務是完成通信協(xié)議。通信協(xié)議軟件有著很精確的定時要求,如果這個 cpu

3、還耍兼顧很多應用軟件的話,就難免吃力。丁是雙cpu手機應運而生。顧名思義,雙cpu手機就是有兩個cpu的手機,一個cpu專心把通信協(xié)議做好,另一 個cpu負責ul、java虛擬機、嵌入式瀏覽器等應用功能。兩個cpu可以做在-個芯片 里而,也可以分開。市場上的實際情況是,很多手機設計公司(design house)沒有基帶處理芯片的開發(fā)能 力,他們購買國外公司的手機模塊,口己在外面再加一塊cpu模塊跑通信協(xié)議,自己 加的cpu跑ui和應用軟件,兩者通過串行口通信。很多design house也會購買國外 方案商的開發(fā)板級方案,自己做pcb、軟件上改改ui和外設驅動。市場上的智能手機基本上全是雙c

4、pu方案,什么windows ce、smartphone> windowsmobile> symbian、嵌入式linux全是運行在第二塊cpu上的。這些商業(yè)操作 系統(tǒng)無法和無線通 信協(xié)議軟件集成到一塊cpu上 雙cpu的手機功能比較多,但它們 一般休積大,耗電多,成木高?,F(xiàn)在帀場上的人部分于機還是ecpu的。目前的大部分手機應用,例如java、brew、wap、郵件、攝像頭、閃存、mp3、藍牙, 在單cpu方案里都能實現(xiàn)。我認為不管3g、4g如何發(fā)展,小巧、實用、低成本的單 cpu方案總會占據較人的市場份額。微軟在單cpu方案的手機市場還沒有立足之地, 又怎么談的上什么引領方向呢

5、?木文主耍介紹單cpu手機,大多數(shù)論述也適用丁雙cpu方案的通信cpuo1.3 3g 和 4g 3g和4g是指第三代、第四代無線通信技術,對手機而言,它們改進的是空中接口的效 率,空屮接口能以更大的帶寬傳送數(shù)據。通過手機無線上網的速度會更快。這和話音業(yè) 務、手機應用軟件沒有直接的聯(lián)系。當然,手機的嵌入式數(shù)據業(yè)務由于更高的帶寬,會產生更多的可能性。不過這些可能性 的實現(xiàn)還是會受到手機輸入慢、顯示屏小等條件的制約。2手機軟件的組成2.1概述手機軟件和pc機軟件一樣從中斷向量表開始,因為比較小,看上去更加清晰。屮斷向 量表的第一個跳轉指令當然是跳到復位的處理程序,后面是中斷處理、錯誤處理的跳 轉指令

6、。一上電,手機就跳轉到復位的處理程序,開始檢查內存、初始化c運行環(huán)境, 然后創(chuàng)建第一個任務。這個任務會按順序創(chuàng)建、卅動其它任務。絕人多數(shù)手機程序都 是多任務的,但也有一些小靈通的協(xié)議棧是單任務的,沒有操作系統(tǒng),它們的主程序輪 流調用各個軟件模塊的處理程序,模擬多任務環(huán)境。手機軟件可以粗略地分成啟動模塊、操作系統(tǒng)、協(xié)議棧、數(shù)據業(yè)務、木地存儲、驅動程 序、用戶界面和其它應用。啟動模塊前而已經說過了,下面簡單介紹其它部分。2.2操作系統(tǒng)操作系統(tǒng)在手機軟件只占很小一部分。它的主要功能就是提供多任務調度、通信機制。 有的操作系統(tǒng)會提供動態(tài)內存分配,定吋函數(shù),但這些都不是必須的。例如需要動態(tài)內 存分配的模

7、塊,可以adw理一個內存池,這樣更易于隔離模塊和預測內存需求。人多數(shù)手機的操作系統(tǒng)都是一個很小的內核,例如rex、hios等。高通rex的源代碼 連c代碼加匯編也不過一千多行,編譯后不過是2、3k的代碼量。而一般手機軟件有兒 百到上千個源文件、超過一百萬行的代碼。2.3協(xié)議棧協(xié)議棧是手機軟件最復雜的部分,它的復雜性在于它和基帶處理芯片的設計密切相關。 只有具備芯片設計能力的企業(yè)才可能開發(fā)協(xié)議棧。協(xié)議棧會使用基帶處理芯片的所佝資 源。2.4數(shù)據業(yè)務數(shù)據業(yè)務主要有兩種:在前一種,手機相當于一個調制解調器,pc機通過手機上網, 網絡協(xié)議全在pc機上,手機提供數(shù)據鏈路。另一-種就是恢入式數(shù)據業(yè)務,手機

8、內部包 含tcp/ip/ppp等協(xié)議,有時還要實現(xiàn)http和嵌入式瀏覽器。2.5本地存儲手機都有本地存儲功能,存儲電話木、短消息、用戶設定等。-般手機都有一個基于flash 的文件系統(tǒng)。早期的手機存儲是基于eeprom的。2.6驅動程序碩件驅動一般指外設驅動,不過有的外設已經被集成到基帶處理芯片中了。驅動程序包 扌舌鍵盤、電源管理模塊、lcd、flash、rtc、串口、usb、sim卡或uim卡、射頻驅動 等。2.7用戶界面用戶界面(ui)又稱作人機界面(mmi),它負責和用戶的交互,在必要的時候調用其 它模塊的功能。除了手機的必備功能外,川戶界面也可能包含一些相對獨立的應用程序, 例如日程表

9、、游戲等。2.8其它應用其它應用包括java虛擬機、wap瀏覽器、郵件軟件等,是一些比較大,乂相對獨立的 應用模塊?;旧现v完了。大家肯定看得挺沒意思吧。這些程序和微軟的longhorn> metedata 什么關系呢?手機程序絕大部分是用c語言寫的。但對于做應用軟件的程序員要求具備 面向對象、設計模式的思維能力,然后用c語言實現(xiàn)出來。高通的brew就是用c語言硬生生地模仿o + ,弄出很多奇怪的宏。一般應用軟件的開發(fā)不用這么死板,但對各種軟件設計方法的了解還是必耍的。3手機的核心技術手機的核心技術是芯片和協(xié)議棧,兩者是密不可分的。芯片設計需要協(xié)議棧來驗證,協(xié) 議棧必須充分發(fā)揮出芯片的功

10、能。芯片的cpu核、dsp核都可以買到現(xiàn)成的單兀,但 通信協(xié)議部分就需要口己設計了。手機比較難做好的是耗電量、惡劣信號環(huán)境的性能等。4第三方軟件4.1原理“第三方軟件”這個詞的含義比較寬泛。本文用它來指代不是硬編碼在手機里,而是可以 通過數(shù)據線或網絡下載到手機上,可以裝載、運行,也可以刪除的軟件。前面講到的軟件都是完整程序的各個部分。這些部分會被放到一起編譯,產生一個二進 制文件,通過jtag 口(升級時可以用串口)下載到手機的flash'|l手機一上電,就 會從指定地址開始運行。這個地址的內容就是跳轉到復位處理程序的跳轉指令。哈哈, 乂講回頭了。第三方軟件是指手機可以通過數(shù)據線或者網

11、絡下載一些可執(zhí)行文件到文件系統(tǒng)中。然后 有一個裝載器可以執(zhí)行這些文件。這樣第三方就可以開發(fā)一些應用程序,下載到手機中 來擴充手機功能。這些可執(zhí)行文件現(xiàn)在主耍有兩種格式:java程序和brew程序。java程序需要java虛 擬機裝載運行。brb/v程序是一個很奇怪的東西,它實際就是用與編譯手機程序相同的 編譯器編譯出來的h標代碼。這些h標代碼必須是可以重新定位的,即不能包含全局和 靜態(tài)變量。裝載器將程序將執(zhí)行權傳給給brb/v程序,一種聽上去更安全的說法是調用brew程 序的入口函數(shù)。這個入口函數(shù)的位置在文件中是固定的。裝載器在調用brb/v程序的 入口函數(shù)時會傳入一個地址。通過這個地址,br

12、ba/程序能夠順藤摸瓜,找到系統(tǒng)提供 的各種api的地址,它通過這些api訪問手機的顯示、通信等功能。java程序基本上是平臺無關的,針對各種平臺設計的java虛擬機隔離了平臺的大部分 特性,除了廠家特意提供的一些obvi功能。brb/v程序顯然是平臺相關,換一個cpu, 就不認識原來的冃標碼了。4.2其它除門ava、brew 夕卜,windows ce> smartphone windowsmobile、symbian> 嵌入 式linux這些商業(yè)操作系統(tǒng)當然可以提供各種創(chuàng)建第三方程序的方法。在這些環(huán)境寫 程序和在pc平臺寫程序很相近,基本上體會不到嵌入式編程的特點,只是屏幕小一些, 輸入麻煩一些。這些第三方軟件不是必需的。手機在3g的市場屮只占了一個較小的部分,網絡是大頭。而第三方軟件相對于手機來說,所占的份額就更小了。程序員有一個嵌入式移動開發(fā)的專欄,總在講這些手機第三方軟件的開發(fā)手機軟件只是嵌入式軟件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論