1. 程式人生 > >高通編譯環境一鍵安裝包

高通編譯環境一鍵安裝包

之前一直都在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版本進行編譯。

最後放出下載地址(由於CSDN只有60M的上傳許可權,所以只有Linux環境了,並且需要5個資源分。國外下載地址沒有任何限制):

國內下載:

國外下載:

Footnotes:

1 高通平臺中將CP稱為MP,本質是一樣的。

2 相同配置的機器至少有5:1的效率,windows上編譯需要50分鐘的程式碼,Linux上只需要10分鐘。

3 根據高通文件的編寫時間點以及國企一貫保守的工作習慣上來推斷,我猜測高版本應該是沒有問題的,因為文件寫作之初RVCT 616版本的補丁還沒有釋出,只是高通方面沒人更新。所以,流傳到現在就是隻能使用593版本的RVCT了。當然這只是我本人的推斷。