導航:首頁 > 源碼編譯 > 手機主板編譯器

手機主板編譯器

發布時間:2022-10-03 17:03:54

A. 手機C++編譯

一直以來都喜歡用手機看書,尤其是在上班時。看的最多的是編程一類的書,主要是C++,看著就想寫寫代碼,可是電腦用不能用,怎麼辦?於是想到用UC瀏覽器找找看網上有沒有在線的編譯器,想什麼時候寫代碼都可以驗證。於是就找了幾個,各有千秋吧。中文的我沒找到,全是英文的,不過英文不難,其實也不需要懂英文,只要知道在什麼地方寫代碼,然後點擊按鈕進行在線編譯就行了。好了,下面看介紹:

1、http://codepad.org/

推薦星級:★★★★

是否需注冊:否(注冊的話也很快,幾秒鍾而已)

優點:網頁界面簡潔,一目瞭然,適合手機瀏覽器。且支持C,C++,D,php,PYTHON,Perl,Ruby等十幾種編程語言,非常強大。查看執行結果時,高亮顯示代碼。

缺點:有時點擊提交按鈕後,給出一個出錯頁面,需多次提交才給出結果。另外不具有交互性,且不提供編譯後的可執行文件。

2、http://www.comeaucomputing.com/tryitout/

推薦星級:★★

是否注冊:貌似不需要(網頁上顯示,注冊後功能更多)

優點:編譯器的版本多

缺點:頁面文字較多,不適合手機瀏覽,且編譯後顯示結果不明了,反正我最簡單的"Hello World"程序好像都通不過

3、http://www.botskool.com/online-compiler(本人最喜歡的)

推薦星級:★★★★☆

是否注冊:需要(注冊簡單,絕對值得)

優點:自動記錄上一次所寫代碼,執行結果顯示明顯,並且可以進行簡單的交互(我認為是亮點)。網站提供了交流論壇,編程學習資料。

缺點:頁面廣告文字較多,不過手機瀏覽的話還可以接受。無論是編寫代碼還是查看結果,頁面大面積是其他用戶代碼示例,顯得頁面臃腫。支持語言少,只有C,C++,java三種。

4、http://onlinecompiler.net/(現在不知道為什麼打不開了,前幾天還可以用,在這列出來先)

推薦星級:★★★

優點:記不清了,只記得可以下載編譯後的exe文件(這就是我列出來的原因)

缺點:不記得了

5、http://cmpe150-1.cmpe.boun.e.tr/phpccompiler/login.php

推薦星級:★★★

是否注冊:否

優點:編輯時有感應提示框,高亮顯示語法,可下載編譯後exe文件。界面簡潔。

缺點:只支持C語言。只支持IE6以上瀏覽器,其他瀏覽器一概不支持,手機無法瀏覽。不在線顯示運行結果。沒有出錯提示。

6、http://ideone.com

推薦星級:★★★★★

是否注冊:否(注冊後功能更強大)

優點:我見過的支持語言最多的,多達58種(哥驚呆了),編輯功能最強大的(顯示行號,語法高亮,查找,定位到行,全屏顯示,行信息,列信息顯示),錯誤信息顯示清晰,結果顯示明顯,有簡單交互功能,可以上傳源文件進行編譯,並且可以下載exe文件,界面簡潔更難能可貴。

B. C++能寫手機軟體嗎

C++能寫手機軟體.
寫手機軟體的還有C,Basic等.
取決於你製做手機時手機主板上的CPU的生產廠商提供了哪種語言的編譯器.

C. 有木有手機上用的C/C++編譯器呢

1.C語言編程軟體有哪些:McrosoftVisualC++、MicrosoftVisualStudio、DEVC++、Code::Blocks、BorlandC++、WaTComC++、BorlandC++Builder、GNUDJGPPC++、Lccwin32CCompiler3.1、HighC、TurbC、gcc、C-Free和Win-TC、MyTc等等,由於C語言比較成熟,所以編程環境很多。2.C語言入門,不推薦使用VC,因為VC不但龐大,而且應用開發比較高級。入門編程薦使用Dev-C和WIN-TC。1)WIN-TC,該軟體使用TC2為內核,提供WINDOWS平台的開發界面,因此也就支持WINDOWS平台下的功能,例如剪切、復制、粘貼和查找替換等。而且在功能上也有它的獨特特色例如語法加亮、C內嵌匯編、自定義擴展庫的支持等。並提供一組相關輔助工具令你在編程過程中更加游刃有餘。2)Dev-C,Dev-C是一個Windows下的C和C程序的集成開發環境。它使用MingW32/GCC編譯器,遵循C/C標准。開發環境包括多頁面窗口、工程編輯器以及調試器等,在工程編輯器中集合了編輯器、編譯器、連接程序和執行程序,提供高亮度語法顯示的,以減少編輯錯誤,還有完善的調試功能,能夠適合初學者與編程高手的不同需求,是學習C或C的首選開發工具。

D. 榮耀play3也有方舟編譯器,還有很多新科技,看著不錯。這機器到底怎麼樣呀

可能很多人不太了解方舟編譯器在手機上的作用。

安卓系統使用java作為編程語言,易於開發,但是不會將代碼直接編譯成機器語言。程序運行時有相當一部分代碼需要通過手機上的虛擬機臨時同步編譯,會影響程序執行的效率。而有了方舟編譯器:業界首個多語言聯合優化的編譯器,在開發環境中就可以就可以完成全部代碼的編譯,並可以進行跨語言的聯合優化,能夠有效解決安卓程序「邊解釋邊執行」的低效率問題。簡單來說,有了方舟編譯器的手機,能夠全速運行程序,效率上獲得極大提升。

以上這些,在應用程序使用的流暢程度,拍照功能的表現上,我認為榮耀play3在它這個價位上十分優秀了,4000mAh的大電池,配合智能節電技術,續航能力也超強。如果你預算在一千元左右,選這款機子沒問題。

E. 手機編譯器怎樣使用

可能在手機上的方面軟體沒有弄好,需要更新,或者是手機不兼容

F. 最好的手機C語言編譯器。(要中文版的)

C4droid 搜索這個: C++編譯器 C4droid漢化版

G. 為什麼手機編譯器class後面默認是Main呢

因為main是主函數。
class是一般類文件,mainclass就是你程序main方法所在的類文件,也就是程序的入口。
程序從這里開始運行,可能會調用到其他的class文件。

H. 手機能否裝C語言編譯器

可以裝,不過需要安卓手機。

安裝步驟如下:

1、我們打開谷歌應用商店。在搜索框里輸入mobile c查找應用程序。下載並安裝好

6、可以看到這里正確的輸出了Hello World字元串。

I. 台灣手機主板是哪種是MTK嗎

目前國內大部份手機都是台灣聯發科的MTK晶元固化的MTK通用操作系統,該系統好處是成本低,產品研發速度塊,用很低的成本單晶元實現很多功能,超長待機p3p4手寫大屏幕大喇叭GPS收音機藍牙雙卡雙待等等功能都可以輕松實現,非常適合中國國情,讓廣大勞動群眾得到了物美價廉的手機產品,但是功能有是有但都不怎麼強大!不過最近MTK新推出了6239多媒體晶元,該系統強化了拍照、拍攝、音樂、運行速度等功能。並支持500萬像素的拍照功能,達到了30幀的視頻播放.
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解釋器)。不過,整個軟體系統並沒有使用MinGW的全部工具,好象只使用了make這個工具,由幾個Makefile控制了構建的過程,在編譯和鏈接時根據最終生成PC模擬版還是ARM版而分別調用VC的編譯器和鏈接器或ADS1.2的編譯器和鏈接器。

接下來我們從具體的工程實踐來看MTK的手機軟體系統。

一. MTK手機軟體系統的目錄結構簡介

MTK手機軟體系統的主要目錄如下所示,因整個工程的目錄樹非常龐大,為簡單起見和減小篇幅,去除了在工程結構中相對不重要的目錄。

.
|-- Fast_DL
|-- ROM
|-- adaptation
|-- applib
|-- bootloader
|-- config
|-- custom
| |-- app
| | `-- TOP_6227_BB
| |-- common
| |-- drv
| | |-- LCD
| | | `-- TOP_6227_LCM
| | `-- image_sensor
| | `-- MT9D011
|-- drv
|-- fs
|-- inc
|-- init
|-- interface
|-- j2me
|-- kal
|-- make
| |-- applib
| | |-- applib.def
| | |-- applib.inc
| | |-- applib.lis
| | `-- applib.pth
| |-- bootloader
| |-- config
| |-- custom
|-- media
|-- mmi
|-- modis
|-- mtk_lib
| `-- MT6227
| `-- S01
| `-- gprs
| |-- abm.lib
| |-- adaptation.lib
| |-- applib_inet.lib
|-- nucleus
|-- nvram
|-- plutommi
|-- tools

Fast_DL是開發時下載二進制映像和資源等的相關文件的目錄。ROM是固化在ROM(可能是Flash的只讀區)中的相關代碼和頭文件的目錄,在給客戶的發布版中大都只有一些導出函數的頭文件,其中似乎還有一個跳轉表的東西ROMSA_FuncTable。

kal是上面所說的內核抽象層的相關文件的目錄。nvram是存取NV中的內容的相關代碼的目錄。nucleus是nucleus實時操作系統的目錄,在給客戶的發布版中只有頭文件。drv是驅動相關的代碼的目錄。fs是文件系統相關的目錄,好像只支持fat格式的。tools是工程相關工具的目錄,包括MinGW。interface是系統各層的介面的目錄,還包含重要模塊的介面,如bluetooth、WIFI。config是一些系統和任務(task)相關頭文件的目錄,感覺不像是配置相關的目錄。inc是中斷控制和寄存器地址相關頭文件的目錄。

modis是PC模擬版的相關目錄,包括了虛擬的GSM網路、SIM卡等,以及模擬器需要的字元串、圖片等資源,還有PC模擬版的庫、VC的相關工程文件。

mmi是一個預設的空的MMI應用的目錄,其中只是創建了一個什麼也不幹的MMI任務(線程),處理下層發送上來的消息。plutommi是pluto組織(也可能是原本的mmi應用的代號)所寫的整套MMI應用所在的目錄,而實際上也就是我們需要定製和修改的MMI應用。其中的mmi目錄中是pluto原本寫好的mmi應用,mtkapp中是mtk後來所寫的mmi應用,而Customer中是圖片、字元串等資源的定製目錄,大部分只是修改了字元串和圖片、聲音等的項目只要修改這個目錄下的資源即可。

mtk_lib中是已經編譯鏈接好的ARM版的庫。因整個工程過於龐大,若完整的全新構建一次需要很長的時間。為了減少構建的時間,將一些已經完全調試穩定且基本不再改動的庫和MTK不開放源代碼的庫放到這個目錄,這樣每次構建時只需要將這些庫和其他編譯好的庫鏈接起來就可以了。這些庫一般是ARM版的,若有thumb版的,則再增加一個和ARM版相對的thumb版的庫,一般叫第二個庫,如media_sec.lib就是thumb版的多媒體庫。

custom是所有客戶化項目的驅動程序及系統和MMI應用定製相關的文件的目錄。如你的手機主板的RAM、FLASH等存儲器的尺寸和地址空間有改動,MMI應用的特性有不同,藍牙、WAP的配置有變化,或是有項目相關的新應用,其相關文件都是放在這個目錄中和特定項目對應的目錄下,如項目CUST1_6227,則放在CUST1_6227_BB下。要注意的是custom也作為一個模塊存在,這使得其可以通過make目錄中的custom模塊的四個文件進行客戶化的一些定製。

applib、bootloader、init、media、j2me等是這個系統各個層次的相對獨立的模塊各自的目錄,其實drv和fs等目錄也可以看成是相對獨立的模塊,只不過其更重要些而在前面介紹。這些目錄包含了這些模塊的C文件和頭文件。每個目錄(模塊)都在下面的make目錄中有相對應的目錄保存構建時的編譯鏈接配置文件。

make是工程構建過程中最重要的一個目錄了,工程構建用的Makefile和一些中間配置文件將放在這里,Makefile在講解構建過程時再具體介紹。在每個模塊對應的目錄下,都有四個文件控制了編譯鏈接時的過程和配置。分別是:

<mole_name>.def文件中是該模塊構建過程中用的條件定義。

<mole_name>.inc文件中是該模塊所有用到的頭文件所在目錄的路徑,是相對整個工程根目錄的路徑。

<mole_name>.lis文件中列出了該模塊的所有C文件,其路徑也是相對整個工程根目錄的。

<mole_name>.pth文件中是該模塊的所有C文件所在目錄的路徑,是相對整個工程根目錄的路徑。

build目錄中保存了構建過程中產生的目標文件和庫文件,及其他一些中間文件。

二. MTK手機軟體系統的構建過程

如前面一節所述,MTK手機軟體系統的構建使用了GNU的make,使得整個工程的構建可以自動進行,且可以靈活控制。整個構建過程由Make.bat、make2.pl、MoDIS.dsw、Gsm2.mak、Option.mak、<customer>_<project>.mak等文件控制。構建PC模擬版是通過msdev和VC的工程文件MoDIS.dsw來完成的。Gsm2.mak是構建ARM版的核心Makefile文件,整個構建過程由其控制,其他是一些啟動、選項配置、子過程的文件。其關系圖如下所示。

在MTK手機軟體系統的根目錄下有一個批處理文件Make.bat,這個批處理文件啟動了整個工程的構建過程。在windows的命令行下,在該系統的根目錄下輸入命令make和相應的參數即可開始工程的構建,該批處理文件的使用方法如下所示。
Usage:
make ["customer"|"mt62xx"] "project" "action" ["moles"]

Description:
customer = mtk (Default customer)
= firefly17_demo (FIREFLY17_DEMO project)
= [mt6217|mt6219|mt6226|mt6227|mt6228|mt6229] (EVB only)
= ...

project = l1s (Layer 1 stand-alone)
= gsm (GSM only)
= gprs (GPRS only)
= basic (Basic Framework)

action = new (codegen, resgen, clean, update) (default)
= update or u (scan, compile, link)
= remake or r (compile, link)
= clean or c (clean)
= resgen (resgen)
= c,u (clean then update)
= c,r (clean then remake)
= codegen (codegen)
= viewlog (open edit to view build log)
= emigen (emigen)
= emiclean (emiclean)

mole(s) = moles' name (kal, l1, ...)
=> OPTIONAL when action is one of (clean c remake r update u c,r c,u)

Example:
make gsm new (MT6205B EVB new)
make gprs codegen (MT6218B EVB codegen)
make mt6219 gprs update (MT6219 EVB update)
make firefly17_demo gprs new
make milan_demo gprs c,u init custom
make mt6219 gprs r init custom drv

其中較常用的action有new、update、remake、new_modis這幾個。

new是全新開始構建整個工程的ARM版,包括圖片、聲音、字元串等資源都要重做,依賴的其他動作最多,是最徹底也是耗時最長的一個動作,一般得到一個新的MTK發布版本後要做一次。

update是重新更新整個工程的ARM版,該動作會掃描工程中文件和庫的依賴關系,若依賴關系有變化會建立新的依賴關系,隨後根據新的依賴關系重新編譯鏈接有改動的部分,一般在增加或刪除一些驅動或應用的情況下需要用update。

remake是重新編譯整個工程的ARM版,該動作只是簡單的重新編譯鏈接有改動的部分,不檢查依賴關系,是耗時最短的一個動作,也是最常用的動作。

new_modis是全新構建整個工程的PC模擬版,其調用VC的編譯器和鏈接器得到一個可以在windows上運行的PC模擬版。MMI應用軟體工程師可以在沒有硬體板的情況下在PC上檢查和調試自己寫好的應用。

Make.bat實際上只起引導作用,其只有一行批處理語句perl make2.pl %*,於是運行該批處理文件後控制權轉給了perl腳本make2.pl。在這個perl腳本中解析了用戶輸入的命令行參數,設置變數,准備make時需要的臨時配置文件,隨後根據生成的可運行映像是PC模擬版還是ARM版而分別調用不同的構建過程。

Pc模擬版的構建通過調用如下命令實現。

system("$msdev MoDIS.dsw /MAKE \"$argu - Win32 $modisDir\"

/OUT ${MoDISLogDir}\\${argu}.log")

在這里$msdev就是VC的msdev,通過VC的工程文件MoDIS.dsw和後面的參數進行具體的構建過程。熟悉VC工程的朋友應該比較清楚,因此就不再具體解釋了。之後將只以ARM版為主來講解整個工程的構建過程。

ARM版的構建通過調用如下命令實現。

system("${makeCmd} -f${makeFolder}${myMF} -r -R

CUSTOMER=$custom PROJECT=$project $action")

在這里${makeCmd}是tools\make.exe,即GNU的make,${makeFolder}${myMF}是make\Gsm2.mak,$action是new、update、remake等。變數CUSTOMER和PROJECT分別是客戶名和項目名,在構建過程中將根據此兩個變數的值選定項目相關的配置文件,從而實現客戶化的定製。通過給make指定ARM版的核心Makefile文件Gsm2.mak,開始了ARM版的構建過程。

Gsm2.mak文件中包含了Option.mak這個配置用的Makefile文件,另外還包含了一些以.tmp和.bld為後綴的由perl腳本 make2.pl生成的臨時配置文件。這些臨時配置文件主要是一些action如clean、remake等所需的變數設置,及客戶化和版本號等的一些信息。Gsm2.mak控制了new、update、remake等動作的過程。具體分別如下所示。
new : cleanall cmmgen mmi_feature_check asngen codegen asnregen \
operator_check_lite update

update : cleanlog cleanbin mcddll_update codegen resgen cksysdrv remake

remake : cleanlog cleanbin genverno libs $(BIN_FILE) done

上面的構建過程的幾個步驟中,最重要的兩個步驟是libs、$(BIN_FILE) 。libs調用ARM版的編譯器和連接器將各個模塊目錄下的C文件編譯鏈接為獨立的庫。$(BIN_FILE)這個步驟將各個模塊編譯鏈接得到的庫和 mtk_lib目錄下的庫一起鏈接起來得到一個映像文件,然後使用ADS的工具fromelf將映像文件生成以變數BIN_FILE命名的二進制文件,該文件可以下載到硬體板上運行。
libs這個步驟如下所示。
libs: cleanlib startbuildlibs $(COMPLIBLIST)

libs中真正進行編譯鏈接的步驟是$(COMPLIBLIST),要生成的庫由變數COMPLIBLIST列出,在ARM版中,變數 COMPLIBLIST從變數COMPLIST得到。變數COMPLIST是在Option.mak及其包含的Makefile文件中賦值的。因有很多庫需要編譯鏈接,變數COMPLIBLIST展開後包含多個步驟,而這些步驟都是重復不變的,因此在定義步驟$(COMPLIBLIST)的構建過程時使用%.lib代替。%.lib這個步驟先清除了之前的一些依賴關系文件,將一些變數的設置寫入~compbld.tmp這個臨時文件中,然後給make指定Makefile文件comp.mak,完成庫的編譯和鏈接,如下所示。

%.lib:

@if /I %OS% EQU WINDOWS_NT \
(if /I $(BM_NEW) EQU TRUE \
(tools\make.exe -fmake\comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))\$*.log 2>&1)
\
else \
(tools\make.exe -fmake\comp.mak -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))\$*.log 2>&1) \
) \
else \
(if /I $(BM_NEW) EQU TRUE \
(tools\make.exe -fmake\comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))\$*.log) \
else \
(tools\make.exe -fmake\comp.mak -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))\$*.log) \
)

上面的命令語句中,參數-k是指有錯誤也要繼續編譯,-r和-R是指沒有GNU make的默認規則和變數。COMPONENT=$*把當前要生成的庫賦給變數COMPONENT。要注意%.lib匹配了所有要生成的庫,但這個步驟一次只生成一個模塊的庫,這個步驟對所有匹配到的庫都會執行一次。
comp.mak這個Makefile文件控制了模塊的編譯鏈接過程。在這個文件中,首先將當前模塊要生成的庫(由變數COMPONENT傳入)設置給了變數TARGLIB。之後從<mole_name>.lis文件中得到SRC_LIST和CPPSRC_LIST兩個源文件列表,設定要編譯的C文件、C++文件、匯編文件等的列表,和要鏈接的中間目標文件的列表。將<mole_name>.inc、<mole_name>.def、<mole_name>.pth 文件中的頭文件路徑、C文件路徑、編譯鏈接參數等賦值給相應的變數。將平台相關(如6223、6225)的編譯參數加上,確定使用ARM編譯器還是 thumb編譯器,是否支持ARM指令和thumb指令的interwork模式。最後進入庫的編譯鏈接過程。
庫的編譯鏈接由update_lib步驟完成,這個步驟直接依賴了$(TARGLIB)。目標$(TARGLIB)是由所有按照.c.obj、.s.obj、%.obj: %.cpp等規則編譯得到的中間目標文件鏈接得到的。其主要過程如下所示。
$(TARGLIB):
...
@if exist $(FIXPATH)\$(CUS_MTK_LIB)\$(COMPONENT).lib \
( /z $(FIXPATH)\$(CUS_MTK_LIB)\$(COMPONENT).lib $(subst /,\,$(TARGLIB))) & \
($(LIB) -r $(TARGLIB) $(COMPOBJS_DIR)/*.obj) \
else \
($(LIB) -create $(TARGLIB) $(COMPOBJS_DIR)/*.obj)
...

Option.mak是整個工程構建過程中的總控配置文件,在這個文件中還包含了<customer>_<project>.mak和REL_CR_MMI_<project>.mak這兩個項目相關的配置文件,用戶自定義的配置文件USER_SPECIFIC.mak,另外還包含了一些臨時生成的配置文件。這些配置文件在一起設置了工程構建過程中用到的編譯器、鏈接器,庫和二進制的工具,設置了編譯鏈接時的參數,公共的頭文件路徑,設置了需要包含mtk_lib目錄中的哪些既有的庫,設置了需要生成的庫等一系列相關的設置。這些設置都由一些重要的變數保存,具體在下一節中講解。

三. MTK手機軟體系統的配置

MTK手機軟體系統的大部分配置都已經確定,基本上不需要再改變,一般是MTK發布新的版本時會作些改變,客戶不大需要關心。最主要的配置文件是Option.mak,而客戶化定製需要需要修改的主要是<costomer>_<project>.mak、REL_CR_MMI_<project>.mak這兩個文件。

Option.mak文件中設置了工程構建時用到的編譯器、鏈接器、庫管理、二進制文件生成等工具的路徑和可執行程序名,設置了基本的編譯鏈接參數,指定CPU類型(ARM7EJ-S),確定最終使用的庫列表(COMPLIST)。

一個項目是由工程中的多個基本庫、第三方庫和由源代碼新編譯鏈接的庫組成的,最終這些庫鏈接到一起得到一個完整的可執行映像文件。由哪些新編譯鏈接的庫來組成一個項目是由四個關鍵的變數決定,其中一個是前面提到的COMPLIST,另外三個分別是CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP、CUS_REL_MTK_COMP。這個幾個變數的關系如下所示。

# *************************************************************************

# Custom Release Component Configuration

# *************************************************************************

# Be sure the following:

# 1. CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP =COMPLIST(CUSTOM_RELEASE = True)

# 2. CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP + CUS_REL_MTK_COMP = COMPLIST(CUSTOM_RELEASE = False)

COMPLIST確定了該項目最終是由哪些庫(組件)組成的。MTK的內部版本構建時,則包括 CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP、 CUS_REL_MTK_COMP這些庫。客戶版本構建時,則只包括 CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP這些庫。手機設計公司構建的版本都是客戶版本,因此只要改變 CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP這兩個變數的值即可以定製自己的項目了。

MTK_LIBS確定了該項目最終包含了哪些MTK提供的基本庫。

COMPOBJS確定了該項目最終包含了哪些第三方提供的不帶源代碼的庫。變數CUS_RES_OBJ_LIST用於把這些第三方庫隨項目發布。

Option.mak和REL_CR_MMI_<project>.mak這兩個文件都有對這兩個變數CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP賦值。但Option.mak文件只是設定了整個工程需要的基本庫,如手寫、圖形解碼等,和特定項目沒有關系。因此客戶要定製自己的項目只需要修改REL_CR_MMI_<project>.mak這個文件對這兩個變數的賦值即可。

<costomer>_<project>.mak文件也有對COMPLIST的賦值,但這只是對MTK的內部版本有用,客戶版本沒有影響。值得注意的是,該項目的絕大部分功能特性(feature)是在這個文件中確定的,如使用的sensor、支持哪些音視頻格式、電話本大小、LCD屏幕大小等。下面是該文件中的部分內容。

J2ME_SUPPORT = NONE # J2ME support: NONE, MTK_J2ME, J2ME_LIB, \
MTK_J2MEHI, J2MEHI_LIB, MTK_DUMMYVM

DRM_SUPPORT = NONE #DRM VENDOR: NONE, MTK, BSCI

DRM_VERSION = NONE # DRM VERSION: NONE, V01, V02, ALL

AMRWB_DECODE = TRUE # TRUE/FALSE

AMRWB_ENCODE = FALSE # TRUE/FALSE
# MT6219 DSP cannot support AMRWB_ENCODE when GPRS connection

JPG_DECODE = JPG_HW # NONE, JPG_HW, JPG_SW

JPG_ENCODE = JPG_HW # NONE, JPG_HW, JPG_SW

GIF_DECODE = TRUE # TRUE/FALSE

PNG_DECODE = NONE # NONE, PNG_HW, PNG_SW

DAF_DECODE = TRUE # TRUE/FALSE

MJPG_SUPPORT = FALSE # TRUE/FALSE

MP4_CODEC = TRUE # TRUE/FALSE

AAC_DECODE = TRUE # TRUE/FALSE

ISP_SUPPORT = TRUE # TRUE/FALSE

CMOS_SENSOR = OV7660 # OV9640, PAS105, PAS302, NONE, MT9D011, \
MT9M111, OV9650

四. 增加模塊的配置實例

若我們需要加入zlib這么一個模塊(zlib包含了很多程序都用到的壓縮解壓函數),我們可以按如下步驟進行。

1. 把zlib的源代碼包拷貝到你的MTK軟體系統根目錄下,這樣所有的zlib代碼都在zlib目錄或zlib-1.2.3目錄下(用哪個目錄名由你的喜好來確定),在此為簡單起見就放在zlib目錄。

2. 在make目錄下新增一個zlib的目錄(最好和根目錄下的目錄名一樣),增加四個文件,分別是zlib.def、zlib.inc、zlib.lis、zlib.pth。zlib.def文件只要加上APCS_INTWORK就可以了,其他三個文件中加上源文件及其目錄、頭文件目錄即可。

3. 在REL_CR_MMI_<project>.mak這個文件的合適位置加上如下語句。

CUS_REL_SRC_COMP += zlib

4. 把這個工程remake一下,若沒有錯誤,zlib模塊就成功加上去了。其他模塊就可以調用zlib提供的壓縮和解壓縮函數了。

若我們需要加入一個沒有源代碼的第三方庫,譬如加入wifi,我們可以按如下步驟進行。

1. 把wifi的所有第三方庫文件拷貝到一個新建的wifi目錄下。

2. 在Option.mak這個文件的合適位置加上如下語句。

ifeq ($(strip $(WIFI_SUPPORT)),WIFI_LIB)

COMPOBJS += wifi\sslplus.lib

CUS_REL_OBJ_LIST += wifi\sslplus.lib

COMPOBJS += wifi\sb.lib

CUS_REL_OBJ_LIST += wifi\sb.lib

endif

J. 手機c語言編譯器怎麼運行

使手機實現一般只有PC機才具有的功能--下載各種程序並運行,是目前手機發展的一個重要方向。為此,人們提出了各種各樣的解決方案,其中基於JAVA的J2ME方案無疑是最引人注目的。JAVA語言由於其平台無關、開放、網路功能強、面向對象、安全等特點,一經SUN公司提出,就隨著Internet的發展而風靡全世界,在國外已成為軟體開發人員的必修語言。特別是他的"一次編寫、到處運行"的跨平台優點,對於手機領域來說更具有重要的意義。因為目前手機的種類繁多,各種廠商都有自己的標准,如何使他們能運行同一種標準的程序成為必須要解決的問題。採用JAVA語言後,各種手機只要實現JAVA虛擬機(JVM)就可以運行JAVA程序,這種方法可以說是目前情況下最為理想的一種解決方案。J2ME(JAVA 2 Micro Edition)是用於嵌入式系統的JAVA,他是SUN公司對標準的JAVA版本J2SE做了最大程度的精簡後得到的一種JAVA應用程序運行環境,在最簡單的情況下他只有幾十kB,特別適合在手機、PDA等設備中使用。手機廠商如果在自己的手機中實現了J2ME規范,就可以從網路下載並運行JAVA程序,從而大大擴展了手機的功能。鑒於JAVA在Internet上取得的巨大成功,我們有理由相信,J2ME能夠把這種成功延伸到手持設備領域,為將來的手機和互聯網融為一體提供有利的條件。本文對J2ME構架做一個簡單的介紹,並通過一個具體的程序例子來說明JAVA手機程序的特點及開發過程。2 J2ME概述J2ME是一種新的、非常小的JAVA應用程序運行環境,他所定義的構架主要用於在手持式設備上推廣使用JAVA技術。SUN公司將為各種硬體規模的設備提供合適的配置,這些配置包括虛擬機、核心類庫及API。

閱讀全文

與手機主板編譯器相關的資料

熱點內容
小天才app怎麼升級v242 瀏覽:544
簡單手工解壓玩具製作大全 瀏覽:925
免費編程電子書 瀏覽:869
想玩游戲什麼app最合適 瀏覽:560
安卓手機如何用airportspro 瀏覽:448
怎麼清理idea編譯緩存 瀏覽:951
鏡頭app怎麼推廣 瀏覽:437
什麼app隨便看電視劇 瀏覽:307
2021程序員薪酬 瀏覽:708
糖豆廣場怎麼下載app 瀏覽:213
qtvs2019選哪個編譯器 瀏覽:124
壓縮空氣管能焊嗎 瀏覽:284
linux中yum命令 瀏覽:397
在職演算法工程師 瀏覽:706
電碼加密函數方法有幾種 瀏覽:802
後綴是pdf 瀏覽:720
pr導出壓縮 瀏覽:32
命令語氣 瀏覽:245
脊柱解剖pdf 瀏覽:714
plc入門編程題目及答案 瀏覽:383