mtk的固件用什麼程序編譯的
1. 如何學習MTK 編譯android系統的framework層源碼,需要看一些什麼文檔,最近在公司需要學習、
mtk有個叫makeMtk的腳本文件,直接執行就行,後面參數加上自己要編譯的模塊,比如./makeMtk -t mm frameworks/base/core/res
2. MTK 的下載工具如何編譯我在MTK發的源碼里沒有找到工程文件。
下載工具不就是Flash_tool.exe么,要自己編嗎?網路下一個就OK。
3. mtk軟體開發需要什麼工具
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的編譯器和鏈接器。
4. mtk的meta工具是用什麼語言寫的
MTK的PC模擬版使用VC的編譯器和鏈接器生成,ARM版使用ADS1.2的編譯器和鏈接器生成。因為MTK的整個軟體系統是一個很龐大而且復雜的工程,並且要支持多個MTK的產品系列和多家客戶的客戶化支持
5. Ralink/MTK SDK 的固件怎麼修改提取聯發科自製固件可以編譯嗎
原版sdk 沒有文件系統 所以你就不用折騰了 網上找個原版的sdk編譯或者使用 openwrt
6. MTK手機平台GUI用戶界面編程用什麼語言和工具
1)界面最好是放在一個線程中進行統一管理。
2)界面最好讓主線程來管理
3)在MFC中,如果主界面收到WM_QUIT,即意味著要關閉窗口,那麼主線程也就退出/返回/return了。
4)主線程退出,其他輔助線程不管有沒有執行完成,都會因為主線程的退出而退出,主線程退出也就意味著進程結束了。
樓主說的還不夠精確。
我的理解是:
工作線程進行計算,主線程的主界面不負責顯示工作進度,只要有工作線程,主界面應該創建一個界面來顯示工作線程的工作進度,如果工作線程完成了,進度顯示界面也應該消失。
如果是這樣的邏輯,可以這樣布局:
1)專門定義一個進度界面的窗口類,為了能與工作線程進行交流,需要為這個進度界面窗口類定製各種自定義消息,並且該類的窗口實例應該作為主界面的子窗口,這樣做是當主界面被關閉,作為子窗口也會被關閉。
2)工作線程應該由主界面創建,進度界面也由主界面創建。
3)工作線程匯報工作進度,主界面不幹預,匯報工作直接在工作線程與進度界面之間通過自定義消息實現。
4)工作線程需要return前給主界面發送即將完成消息。
5)所有線程都有「完成信號」狀態,即線程在運行時,處於無信號狀態,線程完成退出,處於有信號狀態。不熟悉可以看下「系統編程」有關內容。利用該特性,主線程在收到工作線程發來的即將完成消息後,調用WaitForSingleObject,將自己臨時阻塞,阻塞會造成主界面無法響應用戶滑鼠鍵盤消息,形成假死狀態。但這種情況幾乎看不到。主線程收到工作線程消息才調用WaitForSingleObject,才會阻塞,但工作線程這個時候基本上已經退出了,因此WaitForSingleObject幾乎沒有等待就返回了,因此主界面被阻塞的估計值是小於1秒鍾。即使是最壞的情況下,多個工作線程同時完成,主界面需要依次調用WaitForSingleObject,也不會有問題。
6)WaitForSingleObject返回了,標志工作線程結束工作,主界面就可以安全地關閉進度界面窗口。
7. MTK當修改一些代碼時,使用什麼編譯命令可以
1: ./mk n(r) kernel; ./mk bootimage;當修改build-in 到kernel相關代碼時,要使用此命令,具體文件參考如下:
alps/kernel/
alps/mediatek/platform/mt65xx/kernel/
alps/mediatek/source/kernel/
alps/mediatek/coustom/mt65xx/kernel/
alps/mediatek/coustom/common/kernel/
alps/mediatek/coustom/$porject_name$/kernel
...
ps: 由於./mk bootimag是很長的過程, 如果您沒有修改到ramdisk相關的code, 可以參考以下FAQ加快編譯.
只修改kernel的時候, 快速編譯方法: FAQ05444
2: ./mk n(r) k /mole_path 當修改kernel mole相關代碼時,要使用此命令,具體文件參考如下:
alps/mediatek/platform/mt65xx/kernel/drivers/ccci/
alsp/mediatek/platform/mt65xx/gpu/
......
通常看對應文件夾的Makefile就知道是build in到kernel,還是ko,
obj-m += xxx, 表示build成ko mole,
obj-y += xxx, 表示build in到bootimag.
ps: 要特別注意, 如果你new的時候是user版本, 在使用此命令的時候一定要加上
-oTARGET_BUILD_VARIANT=user, 否則會導致將之前new的結果全部刪除,
3: ./mk n pl 當修改preloader相關代碼時,要使用此命令,具體如下:
alps/mediatek/platform/mt65xx/preloader/
alps/mediatek/source/preloader/
alps/mediatek/coustom/mt65xx/preloader/
alps/mediatek/coustom/common/preloader/
alps/mediatek/coustom/$porject_name$/kernle
......
4: ./mk uboot 當修改uboot相關代碼時,要使用此命令,具體如下:
alps/mediatek/platform/mt65xx/uboot/
alps/mediatek/source/uboot/
alps/bootable/bootloader/uboot/
alps/mediatek/coustom/mt65xx/uboot/
alps/mediatek/coustom/common/buoot/
alps/mediatek/coustom/$porject_name$/uboot/
......
5: ./mk systemimage 當修改system相關代碼時使用此命令,具體文件目錄如下:
alps/frameworks/
alps/packages/
alps/vendor/
alps/hardware/
alps/dalvik/
alsp/external
...........
new完一次後, 如果使用這個命令其實很耗時間, 建議參考6的做法,
6: ./mk mm ./mole_path ; 主要build一些moles, 如lib庫, native 可執行程序, jar庫, jar
apk. 相關文件參考如下:
alps/frameworks/base #可以根據修改的某些文件, 進入更細的目錄去build相關庫.
alps/frameworks/native/libs/binder/ #native目錄下有很多相關的lib庫.
alps/frameworks/native/libs/binder/utils/
alps/external #主要是一些native的二進制可執行文件.
ps: build完後可以找到對應的目標文件直接push到手機, 也可以使用./mk snod直接快速打包新的system.img, 然後download. 可參考如下FAQ:
如何加速./mk snod打包: FAQ10299
7: ./mk recoverimage 當修改recover相關代碼時使用此命令,具體如下:
alps/bootable/recovery/
alps/mediatek/customer/$project_name$/recovery/
......
8: ./mk factoryimage: 當修改factory相關代碼時使用此命令,具體如下:
alps/mediatek/coustom/$project_name$/factory/
alps/mediatek/coustom/common/factory/
alps/mediatek/source/factory/
......
9: ./mk secroimage 當修改secro相關代碼時使用此命令,具體如下:
alps/mediatek/source/secro/
alps/mediatek/coustom/$project_name$/secro/
8. mtk 修改vendor程序,需要編譯哪些程序
挺多
9. 求助MTK7620a編譯時make menuconfig的選擇問題
trunk更新後再也沒有什麼mt7620a了,只有mt7620了,cpu是mt7620a的選MT7620 based boards就好了,小米mini還沒有openwrt官方(openwrt.org)支持,而且有支持的y1\y1s也沒有單獨的出現在Target Profile,只要subtarget選定mt7620在Target Profile選默認的Default Profile就編譯會出一堆有支持的固件。
10. 後綴是MTK的文件如何編輯
編輯窗口(開始->運行->cmd) ,找到工程代碼所在根目錄,如optMTK6217 輸 入編譯。
_BM其實是BMP改了擴展名後得來的,是MTK推薦 的文件類型,而MTK默認會把一些經常調用的BMP圖片直接轉為PBM,雖然在文件上看來他還是BMP,但在編譯時MTK會修改。
_TK 文件與 一 種文件類型相關聯,可以使用 Adlib Tracker II 開發的 Adlib Tracker II查看。 總的來說,這種格式與 二 種已知的軟體應用程序相關聯。