導航:首頁 > 源碼編譯 > 編譯mtk平台內核

編譯mtk平台內核

發布時間:2022-08-09 17:50:13

A. 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

B. 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的編譯器和鏈接器。

C. linux內核 和 MTK 內核有什麼區別

首先我糾正一個問題,Linux內核是指操作系統的內核,其主要是針對硬體的大多數操作。Mtk內核:市場上很多Mtk晶元都是arm架構然後集成一些顯卡過著視頻硬解晶元的集成解決方案。按照嚴格上的定義Mtk內核不能與Linux的內核進行比照。因為會產生一下誤區。
1.Mtk平台往大了說也算是單片機(微控制器)的一種,廣泛應用於嵌入式平台,如手機,mp3,mp4,模擬游戲機等等。所以Mtk是硬體。Linux是軟體。
2.Linux內核泛指開源內核,現在很多Linux的衍生系統都是接受了Linux的開源協議,但是很多衍生系統又具有自己不開放的部分核心源碼,就造成了Linux系統的衍生系統很多,故Linux內核再大多數時候指代的是純Linux開源碼的內核系,請注意,此處為系統。

D. 後綴是MTK的文件如何編輯

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

E. MTK是什麼操作系統。(詳細)

MTK是現在市場上所有國內手機設計、製造商使用的最多的一個完整的手機產品解決方案,大部分做手機的技術人員都對此有接觸和了解。不過,MTK的整套軟體系統十分龐大且復雜,很多剛接觸這套系統的軟體工程師一時不知如何進行配置和客戶化定製。本文在此對整個MTK軟體系統的工程結構和配置進行了簡單介紹,希望通過此文和大家相互交流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解釋器)。

F. MTK平台modis編譯不通過如何產生bin文件,是不是new通過就能產生bin文件

實際上是make產生bin文件的。new的過程就包括make了。比如new沒有通過,可是已經出現log文件,在修改錯誤後直接make就行了,而不必再new一遍。編譯modis跟bin文件沒有關系。

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

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

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

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

I. 求助MTK7620a編譯時make menuconfig的選擇問題

MTK7620a編譯時make menuconfig的選擇問題
你好,在Linux裡面我們所看到的menuconfig界面是通過配置內核頂層的Kconfig產生的,而當輸入make menuconfig命令的時候系統會讀取Makefile來解析Kconfig。
通常會在Kconfig裡面編寫以下四項:
1、模塊的名字,用mole開頭;
2、選項,通常設為bool(二選一)或者trastate(三選一);
3、默認選項;
4、幫助說明。
不知道你說的在7620a中出現的是什麼問題,但是基本上都是按照linux編寫原則來的。 有關menuconfig 的更多解釋可以參考以下文章,寫的很詳細。希望能夠幫到你~~

閱讀全文

與編譯mtk平台內核相關的資料

熱點內容
php定時執行任務linux 瀏覽:786
php數組中刪除元素 瀏覽:724
螢石雲伺服器視頻 瀏覽:269
防火牆配置伺服器熱備的虛擬地址 瀏覽:188
linux安裝xdm 瀏覽:736
java計算12 瀏覽:249
大金空調擺動式壓縮機 瀏覽:453
新的雲伺服器如何設置首頁 瀏覽:687
javastring字元位置 瀏覽:196
銀河麒麟字體庫存在哪個文件夾 瀏覽:957
魔獸加丁伺服器的航空叫什麼 瀏覽:152
花冠改裝案例哪個app多 瀏覽:515
成績單app哪個好用 瀏覽:140
北美程序員vs國內程序員 瀏覽:181
php解析xml文檔 瀏覽:121
石墨文檔APP怎麼橫屏 瀏覽:185
牆主鋼筋加密和非加密怎麼看 瀏覽:144
金山區文件夾封套定製 瀏覽:708
soho程序員 瀏覽:672
java位元組截取 瀏覽:526