之前一直都在marvell平台上開發android,marvell平台的cp只release二進位制檔案,所以開發過程中一般只需要修改並編譯ap端的**就可以了。最近乙個月,由於專案需要,開始轉到開發高通平台的android。初步接觸下來,高通平台和marvell平台有很大不同。最顯著一點就是,marvell平台中是ap啟動起來後再掛cp跑;而高通平台則是先啟動cp1
,然後cp初始化ap並引導程式執行。另一方面,高通的cp相比ap有更大的控制許可權,像對gpio,pmic的控制等都是cp進行控制,ap端如果需要對這些資源進行操作,則必須先由cp程式分配相應許可權給ap才可以。ap和cp的互動則使用共享記憶體的方式進行同步。
高通這種架構特點注定了oem商需要同時修改ap和cp的**,所以高通的軟體包在release的時候是分為ap包和mp1
包的。ap包中包括android,kernel,ap端的bootloader lk等;而mp包中則包括amss,qcsbl,oemsbl等。ap包的編譯環境一般都架設在linux下,使用android的官方搭建方法就可以搞定。而mp包屬於高通的特有產物,需要按照高通的搭建文件來進行,使用rvct編譯器,python以及perl環境。實際搭建下來,mp包的編譯環境極為繁瑣,從頭摸索搭建,沒有3、4天是不可能完成的。即便有人之前搭建過,文件工具都準備好的情況下,搭建乙個可用的環境也至少需要4個小時。為了方便以後開發人員更加方便快捷的搭建開發環境,我花了2個週末的時間,搭建除錯並打包製作了高通編譯環境的一鍵安裝包。
該一鍵安裝包分為windows版和linux版。是的,你沒有看錯,還有linux版本的編譯環境!用過的人都懂的,linux版的編譯環境比windows編譯環境的效率高的不是一點兩點2
。不過有一點需要強調:我製作的編譯包中,rvct的版本不是高通官方建議的版本。高通官方文件中說,編譯環境需要rvct 2.2 593版本。而我製作的編譯包中rvct版本分別是windows 2.2 616,linux 2.2 686版本。修正版本號比高通官方建議的高,但是高通官方對於高版本的編譯環境是否可用沒有明確的答覆,只是說沒有測試過3
。我個人簡單測試過,分別使用593版本的rvct,616版本rvct和686版本rvct編譯同一套**,對編譯出來的bin檔案進行比較,發現除了日期和簽名部分有不同外,其餘部分都是相同的。另外,這三種編譯器編譯出來的檔案分別刷到手機上,也都可以正常執行。但是,即便如此我也還是不能保證編譯環境是完全沒有問題的。所以,對於要求比較高的朋友,可以在研發中使用我的環境,正式發布版本的時候使用高通官方建議的593版本進行編譯。
linux編譯環境
linux編譯環境
windows編譯環境 1
高通平台中將cp稱為mp,本質是一樣的。
2 相同配置的機器至少有5:1的效率,windows上編譯需要50分鐘的**,linux上只需要10分鐘。
3 根據高通文件的編寫時間點以及國企一貫保守的工作習慣上來推斷,我猜測高版本應該是沒有問題的,因為文件寫作之初rvct 616版本的補丁還沒有發布,只是高通方面沒人更新。所以,流傳到現在就是只能使用593版本的rvct了。當然這只是我本人的推斷。
LNMP環境一鍵安裝包
lnmp,即linux環境下的nginx mysql php的 伺服器架構。lnmp一鍵安裝包可以在當前所有主流的linux上安裝lnmp生產環境,無需值守,一鍵自動實現編譯 安裝 提高效能 優化配置引數,一鍵搭建lnmp環境。lnmp指令碼安裝 首先根據windows利用xshell連線linux...
PHP執行環境一鍵安裝包
php的程式很火,像部落格 wordpress 論壇 discuz sns ucenter home cms dedecms等等都是比較流行的php程式,大家都在使用php類的程式,但對於很多初學者來說,直接上傳到虛擬空間上乙個乙個除錯是很麻煩的事,那麼在本地 我的電腦 中搭建乙個php執行環境除錯...
LNMP一鍵安裝包
系統需求 lnmp一鍵安裝包 v1.4 已經在 vultr 遨遊主機 搬瓦工 photonvps oneasiahost新加坡vps budgetvm digitalocean locvps linode diahosting kvmla 景文互聯 ramnode buyvm 80vps 快易互聯 ...