mtk編譯modem
⑴ 如何編譯 MTK 的模擬器
MTK的emulator是基於MTK平台的codeabse編譯得到用來模擬真機的虛擬Device,以下是具體的操作步驟:
1. Build MTK SDK Packages
-對於mt6572以前的chip,用如下的命令編譯:
./makeMtk banyan_addon
-從mt6572開始的chip,由於mt6572之後CPU開始支持X86架構,其performace會更好,mt6572之後,建議編譯x86的emulator來使用.
./makeMtk banyan_addon_x86
編譯完成後會在out/host/linux-x86/sdk_addon下生成MTK的SDK包,比如mtk_sdk_api_addon-17.1.zip,(其中17是android api level)
2. 解壓mtk_sdk_api_addon_17.1.zip
將解壓後的mtk_sdk_api_addon-17.1整個文件夾放在android原本的sdk的add-ons目錄下。
3. 拷貝emulator相關的執行文件到android sdk tool下:
- 對ICS 4.0之前的版本:
進 入android-sdk-windows\add-ons\banyan_addon_ALPS.GB.FDD.MP.V1_eng\tools 目錄下,將其中的 emulator.exe 或者 emulator(如果使用Linux的SDK的話)復制出來,覆蓋android-sdk-windows\tools下的相應 emulator.exe
- 對ICS 4.0及之後的版本:
將 mtk_sdk_api_addon-15.1\emulator對應文件夾下的emulator,emulator-arm,emulator-x86 這三支文件替換android原本sdk的tools目錄下的emulator,emulator-arm,emulator-x86這三支文件(建議備 份google原始sdk下的emulator,emulator-arm,emulator-x86,以便後面用到Google emulator)。
4. 創建新的AVD
在Target裡面選擇帶有MediaTek標志的,然後啟動這一AVD就可以了
PS:創建AVD時需要同步將SDK的版本升級到相對的android版本,比如JB2對應的android API level 17,則對應SDK的版本也要升級到level 17,否則將在創建AVD的時候將load不出帶MediaTek標志的target
⑵ mtk編譯 系統找不到指定路徑
運行tools/chk_env.exe檢查編譯環境是否安裝正確。
你可以先查詢一下make目錄下Option.mak文件中DIR_ARM的設置。
⑶ android modem模塊怎麼編譯
(1)MT6577以及之前的chip平台(如MT6575,73等) 的modem編譯環境和MTK的Feature Phone的編譯環境一樣,即Windows+RVCT
(2)從MT6589開始,modem編譯環境已經切換到Linux OS + GCC[KEYWORD]modem編譯[SOLUTION]
(1)MT6577以及之前的chip平台的modem編譯環境文檔,請到DCC上搜索
MTK_MakeBuild_Design_Customer.docx
,該文檔詳細介紹環境搭建和編譯流程介紹。
(2)MT6589以及後續chip的modem編譯環境參考文檔,請到DCC上搜索
該文檔詳細介紹環境搭建和編譯流程介紹。
⑷ MTK 如何配置內核編譯選項
使用make menuconfig ,來配置kernel的選項
a、首先通過下面的方式進入menuconfig, 在project 下輸入:
cd kernel
TARGET_PRODUCT=<project> make menuconfig
在彈出的窗口後,enter < / > 進入查找窗口,輸入要查找的kernel feature名稱
查到該feature後,選擇開啟或者關閉該feature, 保存,退出menuconfig
b、 完成上述配置後,將.config復制到mediatek/config/$project/autoconfig/kconfig/目錄下並重命名為project
然後進行編譯kernel
⑸ 如何讀取和修改 modem NVRAM-Android開發問答
JNI做的話應該還是可以做,不過沒用過。
查了下MTK的文檔,有下面方法讀取
private synchronized byte[] readNvramData(int nvramLid) {
IBinder binder = ServiceManager.getService("NvRAMAgent");
NvRAMAgent agent = NvRAMAgent.Stub.asInterface(binder);
byte[] buf = null;
try {
buf = agent.readFile(nvramLid);// read buffer from nvram
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
⑹ 在MTK上通過USB外接modem難點在哪裡,RIL層要做的改動有哪些
首先現在遇到的困難就是mtk封裝了好多庫函數。裡面發送的AT指令無法進行控制,只能屏蔽掉。
也就是說幾乎所有和AT指令相關的代碼都要重寫,初始化需要重寫,onrequest函數也要重寫。
寫完之後,還要看下上層怎麼調用的onrequest,因為不同的modem調用的流程不一樣,返回值也不相同