當前位置:首頁 » 編程軟體 » mtk編譯過程

mtk編譯過程

發布時間: 2023-06-08 18:21:43

⑴ 如何學習MTK 編譯android系統的framework層源碼,需要看一些什麼文檔,最近在公司需要學習、

mtk有個叫makeMtk的腳本文件,直接執行就行,後面參數加上自己要編譯的模塊,比如./makeMtk -t mm frameworks/base/core/res

⑵ 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

⑶ 如何編譯 MTK 的模擬器

編譯命令

make custom=xxx gprs/gsm new/remake/update/clean mole_name
編譯時進入Dos下工程所在的目錄,然後輸入上面的命令語句即可開始編譯。
參數:
custom=xxx
xxx是不同的軟體版本,編譯時可忽略參數「custom=」,系統會自動判斷。
gprs/gsm是說明該軟體是否支持gprs的,如果不支持gprs,只輸入gsm即可;
mole_name:各個模塊的名字
new
功能:全部重新編譯
用途:第一次編譯時和修改了make文件夾中的文件必須得重新new一下
remake
功能:只重新編譯工程中更新過的部分
用途:remake是耗時最短的一個動作,也是最常用的動作。
resgen
功能:編譯資源
用途:如果更改了資源文件或新加了資源文件,則用此命令。
upadte
功能:先檢查,然後重新編譯更新部分,編譯時間較長。
用途:update是耗時較長的一個指令,
一般在增加或刪除一些驅動或應用情況下使用,在做開發時不推薦使用,此命令雖比new
的時間短,但比remake的時間長很多。
clean
功能:刪除對應的obj
用途:作為其它命令所依賴的指令,還有就是清除工程或者指定模塊對象的類庫。

也可以寫編譯腳本例寫一個new.bat 文件 文件內容為make custom=project_name new
則編譯時在cmd.exe下輸入new 即可 相對應的resgen.bat 內容為make custom=project_name resgen

編譯模擬器時 應注意:
gen_modis
gen_modis功能:產生VC工程文件
在new完成後需要運行此命令,其它情況如果模擬器出現異常時也可用此命令重新生成VC
工程文件。
codegen_modis
功能:產生modis需要的trace文件的datebase
用途:在new完成後需要運行此命令,在運行此命令前需先運行gen_modis命令,此命令在
new完成後一般只運行一次,執行像resgen或remake命令後都不需要運行此命令。
new_modis
功能:組合了gen_modis 和 codegen_modis
只是聽說,沒具體試驗過呢我一般分開執行的簡化命令

工程new 一遍 模擬器不會自動生成一個新的模擬器
當改動工程中的make文件時 工程必須要new一遍 然後gen_modis codegen_modis 然後編譯VC
當改動的是源文件且源文件已經是工程中某些模塊的內容 則可以無須對工程進行操作 直接用VC編譯
當改動的是資源文件則工程要resgen remake 然後gen_modis codegen_modis 然後才用VC編

⑷ MTK的開發環境怎麼搭建

一、開發環境設立
以下表述中提到的相關壓縮包或安裝文件到華禹ftp伺服器下載,部分文件要到群共享裡面下,那裡是最新的。
華禹ftp伺服器:IP:220.113.15.15,帳號為study-bbs.com,密碼為study-bbs0304
P1300的QQ群號: 15762255
P1300_Build_Guide.rar來自ftp伺服器,「華禹\MTK相關部分」目錄下
手機開發板C語言開發視頻.rar來自ftp伺服器,「華禹\MTK相關部分」目錄下
huayu109_ads1.2.rar來自ftp伺服器,「華禹\旋風001手機模塊\1.工具類」目錄下
huayu102_ADS12_Patch_Windows.rar同上
huayu106_perlzip.rar同上
huayu108_SourceInsight3.5.rar同上
huayu101_p1300軟體使用工具及開發指南.rar同上
huayu201_P1300_V1.7_Release.rar文件來自群共享
huayu203_P1300_V1.7_Release_patch.rar文件來自群共享
FlashTool_v3.0844.00.rar文件來自群共享
1、開發主機要求及所需工具:
操作系統:Windows 2000, WinXP. 推薦Windows 2000 with SP2 or later.
編 譯 器:ADS (Arm Developer Suite) v1.2 [Build 842]
Perl解析:ActivePerl, 推薦使用ActivePerl 5.6.1版本
模擬工具:MTK PC Simulator
跟蹤工具:Catcher_L1 v3.10.01,從串口輸出調試信息,只做普通UI應用的話,大致不會用到,用PC模擬工具就好了
燒錄工具:FlashTool_UI v3.1.05 或 FlashTool_v3.0844.00
其他:PL2303_Driver_XP2K v20,這是下載線用到的USB串口驅動,以前機器上裝過PL2303驅動的就不必再裝了
二、開發環境建立過程:
新建一個目錄,英文的好了,否則有些工具不認識中文路徑,這里以E:\MTK_P1300為例說明,下面我用文字和圖片簡單說明下安裝過程,更詳細的安裝過程可以看壓縮文件「手機開發板C語言開發視頻.rar」中的Flash文件「P1300_Build_Env.swf」。
(1)安裝ADS1.2
解壓文件huayu109_ads1.2.rar到某個目錄,比如說解壓到「E:\MTK_P1300」,解壓完後運行「E:\MTK_P1300\ADS1.2\Setup.exe」,一路按下一步,最後安裝License時選定文件「E:\MTK_P1300\ADS1.2\CRACK\ license.dat」,然後接著一路下一步直到安裝完。安裝完後刪掉目錄「E:\MTK_P1300\ADS1.2\」,節省磁碟空間。
(2)安裝ADS補丁
運行huayu102_ADS12_Patch_Windows.rar壓縮文件中的ADS_Patch_Window.exe,這是個自解壓的壓縮文件,選Unzip解壓到上一步ADS的安裝目錄(預設是C:\Program Files\ARM\ADSv1_2),解壓過程中如果問到是否覆蓋,全部選覆蓋好了。
(3)安裝腳本解釋器Perl
直接運行壓縮包huayu106_perlzip.rar裡面擴展名為msi的安裝文件,預設安裝就好,一路Next,呵呵。
上述幾步完成後,編譯環境基本建立,此時可以開一個dos窗(開始菜單->運行->輸入cmd->確定)看一下,安裝正常應該能順利執行以下命令,如下圖:
注意看版本號,應該是ADS1.2 [Build 842],不是的話可能沒打補丁,或補丁打的位置不對,請看第2步ADS補丁部分的說明並重新打一次,直到版本號對為止,哈哈。
這是perl解釋器的運行畫面。
注1:上述安裝過程會自動創建編譯環境所需的環境變數,如果發現編譯不正常了,可能是安裝了其他編譯工具導致沖突,這時建議查看下系統環境變數,把Perl和ADS的安裝目錄調到最前面,同時從path中去掉可能會產生沖突的編譯工具鏈的路徑(例如winavr),如下圖所示(我是安裝到D盤滴,預設是C盤,不過我C盤幾乎被我塞滿了):
如果嫌改path麻煩(因為要用到其他編譯工具鏈的時候還得改回去),還有一種辦法,就是改make.bat批處理,具體見注4中相關說明。
注2: 如果安裝ADS時,改變了默認安裝路徑,需要修改源碼中的設置,源碼目錄樹解壓過程見模擬器編譯環節相關介紹。
1.             make\Option.mak  
2.             ----------------------------------  
3.             ifeq ($(strip $(COMPILER)),ADS)  
4.           DIR_ARM=  c:\progra~1\arm\adsv1_2  # 修改這里 
5.           DIR_ARM := $(strip $(DIR_ARM))  
6.           DIR_TOOL   =  $(DIR_ARM)\bin  
7.           DIR_ARMLIB =  $(DIR_ARM)\lib  
8.           DIR_ARMINC =  $(DIR_ARM)\include  
9.             endif  
10.       ------------------------------------------------ 
比如改裝到D盤了,這里把紅色部分「c」改成「d」就好了
(4)代碼編輯環境
運行壓縮文件huayu108_Source Insight3.5.rar中的安裝文件安裝即可。至於編輯器,這個看個人喜好了,不過Source Inside看代碼蠻方便的。
(5)PC機模擬器
模擬器MTK PC Simulator是用來在PC上模擬調試用的,要安裝VC6 SP6(同時要安裝Uuicode 靜態和動態庫,沒有裝Unicode庫的可以用「huayu103_MTK模擬器DLL補丁.zip」中的庫,拷到系統目錄「%windir%\system32」下即可)。我機器上的VC是有裝Unicode庫的,沒裝過Unicode庫的如果在模擬器編譯或運行中出現問題,建議重裝下VC6,安裝時勾選Unicode庫,並打上相關補丁到SP6。
模擬器能模擬真機的大部分行為,這樣能給調試帶來很大便利,不需要每次改動都要燒錄。
模擬器要從源碼編譯,解壓壓縮包「huayu201_P1300_V1.7_Release.rar」裡面的文件「HUAYU_P1300_V1.7_Release.rar」到目錄「E:\MTK_P1300」,此時會出現目錄「E:\MTK_P1300\P1300_V1.7_Release」,這就是P1300的代碼目錄樹了;接著打上最新的補丁,解壓壓縮包「huayu203_P1300_V1.7_Release_patch.rar」裡面的壓縮文件「HUAYU_P1300_V1.7_Release_patch.rar」到目錄
「E:\MTK_P1300\P1300_V1.7_Release」,解壓時選擇全覆蓋以替換被修改過的文件,打補丁之前對目錄樹裡面的文件進行修改過的,需要手動再加上去。
編譯PC模擬器之前需要先把剛才上面得到的目錄樹build一次,開一個dos窗,盤符和目錄轉到代碼目錄樹對應的盤符和目錄,例如:
1.              E:  
2.             cd E:\MTK_P1300\P1300_V1.7_Release\  
3.           make new 
注3:第一次make的時候要用「make new」,make new的時間比較長(慢的機器搞不好要2小時以上),編譯過程中間會出現一些文件找不到的信息,只要編譯過程沒意外終止,那些信息可以忽略。編譯日誌文件位置: build\NEOTEL25_06B\log\,要查看編譯過程有啥問題就看這個目錄下的文件了;生成的bin文件位置: build\NEOTEL25_06B\*.bin,下載燒錄就是燒bin文件。
這里順帶介紹下build的命令格式:
make new 清除後重新編譯整個項目
make resgen 重新生成資源
make remake重新編譯鏈接項目
make viewlog xxx 查看模塊xxx的編譯日誌
make查看可以用make選項幫助信息
注4:如果機器上裝了其他gcc編譯工具鏈(比如winavr之類)的話可能要手動改下Path,否則編譯會出錯,修改Path的方法見注1,也可以修改批處理文件「E:\MTK_P1300\P1300_V1.7_Release\make.bat」,在「perl make2.pl %*」之前加上下面兩句:
1.           set PERL5LIB=D:\perl\lib  
2.           set PATH=D:\perl\bin;d:\progra~1\arm\adsv1_2\bin;E:\MTK_P1300\P1300_V1.7_Release\tools;c:\windows\system32;c:\windows;c:\windows\system 
注意,上面的路徑是我機器上的,不是預設安裝路徑,要根據自己的實際安裝路徑做修改。
下面開始編譯PC模擬器了,用VC6打開工程文件「E:\MTK_P1300\P1300_V1.7_Release\plutommi\mmi\ PC_Simulator.dsw」,然後開始編譯,編譯時間比較長,具體看機器配置了,這時又可以干點別的啥了,呵呵。
因為模擬器工程涉及文件較多,編譯費時,建議編譯過程中電腦上少開窗口,特別是網路類的,如QQ,有時會發現開QQ後,編譯過程中VC會掛死,呵呵。有可能是開QQ後防火牆過濾網路數據佔用較多系統資源,如果發現VC編譯特別慢或乾脆掛死,可以重啟動一下電腦,只開必要的窗口,然後開始編譯。
如果編譯過程中發現怪異的問題,如:
1.           incomingstringiddef.h(120) : error C2059: syntax error : 'constant'    
2.           或者 
3.           error C2065: 'STR_CM_REDIAL' : undeclared identifier   
4.           之類 
5.            
這個時侯你可能需要看一下你VC相關路徑的設置順序,如下圖:
把VC原本的頭文件路徑調整到最前面,我剛開始編譯的時候SDK的頭文件在前面,編譯總是通不過,改一下就好了,庫也一樣都調整下比較保險,呵呵。
(6)Tracer跟蹤工具
解壓文件P1300_Build_Guide.rar到E:\MTK_P1300,然後在文件管理器進入目錄「E:\MTK_P1300\P1300_Build_Guide」,接著解壓Catcher_L1_v3.10.01.zip到當前目錄下的Catcher_L1_v3.10.01子目錄,進入子目錄Catcher_L1_v3.10.01,發送一個Catcher.exe的快捷方式到桌面。
在需要用到TRACE的時候,在代碼中使用函數
void kal_prompt_trace(mole_type mod_id, const kal_char *fmt,...); 列印需要查看的信息,使用Catcher跟蹤查看。
這個有點類似Linux的Kernel Debug工具,具體使用方法見文檔《cather使用手冊.doc》,這個文檔可在壓縮包「huayu101_p1300軟體使用工具及開發指南.rar」裡面找到。
(7)燒錄工具
解壓文件「E:\MTK_P1300\P1300_Build_Guide\ FlashTool_UI_exe_v3.1.05.zip」到當前目錄,然後進入目錄「E:\MTK_P1300\P1300_Build_Guide\FlashTool_v3.1.05」,發送一個Flash_tool.exe的快捷方式到桌面好了。
還有個下載工具FlashTool_v3.0844.00.rar,也是不用安裝,解壓後直接用的,據說燒錄速度比上面那個快。
具體使用方法見文檔《flash_tool_MT平台使用教程.doc》,這個文檔可在壓縮包「huayu101_p1300軟體使用工具及開發指南.rar」裡面找到。
(8)USB串口下載線驅動
運行壓縮文件
1.           「E:\MTK_P1300\P1300_Build_Guide\ PL2303_Driver_XP2K_v20.zip」 
裡面的可執行文件進行安裝,一路下一步,這里不再贅述。
nucleus實時操作系統MTK手機軟體系統工程和配置簡介
MTK使用了nucleus實時操作系統,在其上做了個內核抽象層的封裝,以適應多種實時操作系統,如oscar、ThreadX、nucleus。整個軟體系統包括nucleus操作系統、平台設備驅動、協議棧、文件系統、WGUI、MMI、J2ME等。在這里MMI部分幾乎包括了操作系統內核、協議棧、文件系統之上的所有部分,其中WGUI也在其中。
MTK的PC模擬版使用VC的編譯器和鏈接器生成,ARM版使用ADS1.2的編譯器和鏈接器生成。因為MTK的整個軟體系統是一個很龐大而且復雜的工程,並且要支持多個MTK的產品系列和多家客戶的客戶化支持,使用集成開發環境(IDE)已經無法勝任,而且很難做到整個工程的自動構建和資源、代碼的生成。所以MTK的軟體系統使用了windows下的GNU開發工具鏈(MinGW)來進行工程的管理、配置和構建,MTK將MinGW放到了第三方工具中。
另外還使用了perl腳本來解析用戶輸入的命令行參數,因此第三方工具中還包含了ActivePerl(windows下的perl解釋器)。不過,整個軟體系統並沒有使用MinGW的全部工具,好象只使用了make這個工具,由幾個Makefile控制了構建的過程,在編譯和鏈接時根據最終生成PC模擬版還是ARM版而分別調用VC的編譯器和鏈接器或ADS1.2的編譯器和鏈接器。

⑸ MTK 怎麼把apk自帶的so文件編譯到rom里邊

一般情況下,MTK 文檔上面是有這個說明的,要把apk中的so文件,放到alpsvendormediatekckt72_wet_jb3artifactsout argetproctckt72_wet_jb3systemlib 里邊。注釋 ckt72_wet_jb3 是項目名字,但是這里會有一個Bug。就是當你不再用第三方apk的時候,這個so文件依舊會打包進去到rom里邊,如果你累計的so文件過大的話,rom就會變大,會影響內存運行的。這個時候,我們要想一個辦法解決才行。

如圖所示 建立這樣的目錄。lib里邊放的是apk里邊的so文件,Android.mk文件裡面的內容如下

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := feizai
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED

PRODUCT_COPY_FILES += $(LOCAL_PATH)/lib/libabenchmark.so:system/lib/libabenchmark.so
include $(BUILD_PREBUILT)

如果你apk的so文件不止一個,如下添加

PRODUCT_COPY_FILES+=
$(LOCAL_PATH)/libem_aitalk5.so:system/lib/libem_aitalk5.so
$(LOCAL_PATH)/libspeechmsc.so:system/lib/libspeechmsc.so
$(LOCAL_PATH)/libttsaisound.so:system/lib/libttsaisound.so
$(LOCAL_PATH)/libvadLib.so:system/lib/libvadLib.so

0

⑹ 後綴是MTK的文件如何編輯

編輯窗口(開始->運行->cmd) ,找到工程代碼所在根目錄,如optMTK6217 輸 入編譯。
_BM其實是BMP改了擴展名後得來的,是MTK推薦 的文件類型,而MTK默認會把一些經常調用的BMP圖片直接轉為PBM,雖然在文件上看來他還是BMP,但在編譯時MTK會修改。
_TK 文件與 一 種文件類型相關聯,可以使用 Adlib Tracker II 開發的 Adlib Tracker II查看。 總的來說,這種格式與 二 種已知的軟體應用程序相關聯。

⑺ mtk平台修改init.rc後如何快速編譯啊

修改init.rc文件後,一般只需要做以下快速編譯即可生成新文件。
./mk bootimage

⑻ 請教MTK編譯ubuntu12.04 下gcc如何使用4.4.7版本

Mtk在檢測gcc的時候會存在不兼容的情況,導致無法檢測到gcc,出現gcc unkown錯誤。gcc nv檢測的時候 做了以下操作(具體代碼位置參見:mediatek/build/tools/checkEnv.py 函數GccCheck。):
首先在腳本中執行了gcc --v 命令,然後在返回的信息中通過匹配」.*gcc\s*version\s*」格式查找gcc的版本。由於我們當前的版本是4.6.1 不支持gcc --v, 僅支持gcc -v,而中文語言環境下返回的版本信息中」version」用了中文字元」版本」,會導致匹配不成功。因此需要做以下修改:

1.降低gcc版本
ubuntu 11.10的gcc版本是4.6.1,把gcc版本改為4.4.3。
ubuntu 32bit系統下安裝gcc 4.4:

sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4

裝完後在/usr/bin目錄下
$ ls -l gcc*
lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6
發現gcc 鏈接到gcc-4.6, 需要將它改為鏈接到gcc-4.4 :
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc

同理
ls -l g++*
lrwxrwxrwx 1 root root 7 2011-08-14 15:17 g++ -> g++-4.6
-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6
需要將g++鏈接改為g++-4.4:
/usr/bin$ sudo mv g++ g++.bak
/usr/bin$sudo ln -s g++-4.4 g++

再查看gcc和g++版本號:
gcc -v
g++ -v
均顯示gcc version 4.4.6 ,說明gcc 4.4安裝成功。

熱點內容
三率源碼 發布:2024-04-25 14:42:41 瀏覽:467
javastring轉string數組 發布:2024-04-25 14:42:10 瀏覽:136
飢荒如何更改密碼 發布:2024-04-25 14:42:02 瀏覽:743
百度雲如何解壓zip 發布:2024-04-25 14:38:57 瀏覽:570
母豬怎麼配置最好 發布:2024-04-25 14:35:47 瀏覽:75
php按鈕代碼 發布:2024-04-25 14:32:10 瀏覽:725
php數據類型轉換 發布:2024-04-25 14:15:17 瀏覽:750
windows調度演算法 發布:2024-04-25 14:14:28 瀏覽:456
下載喵星大作戰需要什麼配置 發布:2024-04-25 14:14:22 瀏覽:304
贛州伺服器數據存儲 發布:2024-04-25 14:13:41 瀏覽:889