MTK平臺個人筆記精髓_第1頁
MTK平臺個人筆記精髓_第2頁
MTK平臺個人筆記精髓_第3頁
MTK平臺個人筆記精髓_第4頁
MTK平臺個人筆記精髓_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

關(guān)于MTKSimulatorMTKsimulator的工程文件是PixtelMMI.dsw。打開PixtelMMI.dsw,檢查文件default_Fmrdo.c、default_mmi_pro、default_mmi_settings.c、default_version.c文件是否存在工程文件中,上述文件存放目錄:項目所在目錄\custom\app\MILAN_BB。在調(diào)試運(yùn)行過程中會提示某些DLL文件無法連接,這是VC沒有安裝。DLL文件所在目錄:VC安裝盤\VC98\DEBUG。把缺失的文件復(fù)制到window安裝目錄下的System32目錄里。運(yùn)行MTKSimulator,選取Simulator,會運(yùn)行MMINWSimulator;在MMINWSimulator菜單中,選取MenuMessages,會彈出一個SendEvent窗口,窗口里有一個Events列表,列表里有不同用途種類的Events;如果需要啟動手機(jī),選取BootUpEvents,點擊OK按鈕,MTKSimulator模擬開機(jī)過程。>關(guān)于調(diào)試語句的說明kal_print語句:該語句只能打印字符串信息。Trace_out語句:該語句可以輸出格式化字符串。ASSERT語句:斷言語句。Trace語句:可以輸出格式化字符串。關(guān)于MTKTarget的編譯連接批處理命令:Milan.bat。?概述在windows下,打開dos編輯窗口(開始一〉運(yùn)行一〉cmd),找到工程代碼所在根目錄,如:E:\MTK6217輸入編譯批處理命令:格式:make[custom二"projectName"]"project""action"["modules"]Example:makecustom=mtk6217gprsnewModules:用于對單個模塊進(jìn)行編譯的選項。如果沒有指定,則對所有的模塊進(jìn)行編譯處理。如果指定了模塊名,則對指定的模塊進(jìn)行編譯處理。后面的modules是nucleus之類的,可以不用寫,中間的除了mtk6217工程名外可以照寫,mtk6217工程名可以在你的源代碼的make目錄下有個工程文件名,比如我的例子就叫mtk6217_gprs.mak,你將你的替換就可以了,另外,除了上面的仁兄跟你說的ADS1.2以上perl也要5.**,我用的是ActivePerl-5[l].6.1.631-MSWin32-x86.msi名字的,你查找下載一下,最后你還需要安裝VC6,這才能確保編譯不出錯。New:全面的編譯,包括了所有的資源,代碼,會把生產(chǎn)的所有的。bj都刪除掉,重新產(chǎn)生;還有一些代碼的拷貝,特別是資源和定義頭,如:mmi_features.h編譯選項說明:New:全面的編譯,包括了所有的資源,代碼,會把生產(chǎn)的所有的obj都刪除掉,重新產(chǎn)生;還有一些代碼的拷貝,特別是資源和定義頭,如:mmi_features.hupdate:主要是資源和代碼的編譯,一般不怎么用,比new要編譯的少一點,也是比較全面的編譯remake:這個最常用,如果你沒有修改資源(圖片、鈴聲、字符串),只修改了*.c文件,就用這個編譯就可以了,會從新產(chǎn)生bin文件還有一個值得要說的是resgen,這個是專門用于編輯資源的,和remake編譯配合(先resgen產(chǎn)生資源,再remake)比較快。M訂an.bat執(zhí)行流程Milan.bat:選擇資源文件,根據(jù)資源文件得選項,復(fù)制不同得資源配置文件,并改名為custom_config.bld,根據(jù)用戶選擇得編譯選項調(diào)用make.batcus-tom=Milangprsnew/update/remake。Make.bat:判斷當(dāng)前得操作系統(tǒng)后,調(diào)用相應(yīng)得批處理m_win2k.bat%*,%*表示調(diào)用make.bat命令行的所有參數(shù)作為m_win2k.bat的命令行參數(shù)。M_win2k.bat:根據(jù)命令行參數(shù)設(shè)置環(huán)境變量DEFAULT_CUSTOM、CUSTOMER、PROJECT、ACTION等,生成了編譯配置文件~labelbuild.tmp、~buildinfo.tmp、~cleanmod.tmp、~updatemod.tmp、~remakemod.tmp,調(diào)用命令:tools\make.exe-fmake\gsm2.mak-r-RCUSTOMER=%CUSTOMER%PROJECT=%PROJECT%%ACTION%,再milan這個項目編譯處理中:%CUSTOM%=Milan,%PROJECT%=gprs,%ACTION%=new/update/remake。Gsm2.mak:包含其他的makefile文件:option.mak,~buildinfo.tmp,Milan_gprs.make,custom.bld,verno_Milan.bld,~cleanmod.tmp,~updatemod.tmp,~remakemod.tmp、comp.mak。關(guān)于Perl、ADSvl_2的路徑設(shè)置Perl的搜索路徑設(shè)置是在Milan.bat批處理中;ADSv1_2的搜索路徑設(shè)置是在make路徑下的文件Option.mak;源程序編譯配置文件在make目錄下,.pth文件表示該模塊下需要編譯的源文件所在的相對目錄;.lst文件表示需要編譯的源程序的相對文件名;.inc文件表示頭文件的路徑;.def文件表示定義的條件編譯宏。>如何在NVRAM增加一個保存記錄的文件custom_nvram_editor_data_item.h(目錄:MILAN0538\custom\app\MILAN_BB)nvram_user_defs.h(目錄:MILAN0538\custom\app\MILAN_BB)nvram_user_config.c(目錄:MILAN0538\custom\app\MILAN_BB)NVRAMEnum.h(目錄:MILAN0538\plutommi\mmi\Framework\NVRAMManager\NVRAMManagerInc)>MTK架構(gòu)MMI||primitivebasedprimitiveinterface|parameterconverter|functioninterfaceL4A|functionbased|Layer4L4CLayer4說明:就是mmi和L4A是依賴primitive通訊,即messageprimitivebased;l4a和l4c用functioncall的方式聯(lián)系functionbased;layer4就是一個中轉(zhuǎn)站,中轉(zhuǎn)各layer和mmi的通訊.MTK6219手機(jī)解決方案由5部分組成1.L1tocolstack4.MMI5.MTK6219solution提供了3個測試工具1.Catcher2.META3.MCT。MTK6219softwaresolution可分為3部分1.MSExecutableSoftwareOS:OSAdaptationLayer;MTK采用的是NucleusOS,OSL的目的是為了使MTK軟件方案適應(yīng)于NucleusOS,在NucleusOS的基礎(chǔ)上封裝了一層,該層就是OS。L1ProtocalStackGSMPhysicalLayer支持5—Series技術(shù)規(guī)范下的比特流發(fā)送。為上層提供服務(wù),Controlthemapping和調(diào)度邏輯通道和物理通道。實現(xiàn)了TDMAframing和無線控制。Layer1Asynchronous:處理來自上層的消息和將消息處理的結(jié)果發(fā)送給上層。SurroundingCellEngine:handlestheneighborcellpowermeasurementandneighborcellsynchronizationinformationacquisition.Layer1Control:handlestheTDMAschedulingontheradioenvironment,includingtimingadvanceandpowercontrolcommandfromservingbasestation.Layer1Driver:handlestheDSPandRadiocontrol.。Drivers:DeviceDriver,likeSIM,UART,GPIOetc.Driver為MCU所有的外圍設(shè)備提供了控制功能接口。該模塊處理許多手機(jī)用戶可見的操作,比如按鍵處理、LCD顯示。與L4entity進(jìn)行交互,提供在設(shè)備控制功能函數(shù),用于訪問設(shè)備的寄存器。與MCU外圍設(shè)備相關(guān)的SIM:SubscriberIdentityModuleUART:UniversalAsynchronousReceiver/TransmitterSPI:SerialPortInterfaceGPIO:GeneralPurposeInput/OutputGPT:GeneralPurposeTimerRTC:RealTimeClockWDT:WatchDogTimerPWM:PulseWidthModulationAlerterKeypadPMIC:PowerManagementICBMT:BatteryChargingManagementtaskAUXtask:AuxiliarytaskADCSched.:AnalogtoDigitalConverterSchedulerUSBtask:TheUSB1.1protocolanddriverIrDAtask:TheIrDAanddriverCamera:Cameradriverforintegratingwith3rdpartycameramoduleMSDC:Memorycarddriver,supportingSD,MMCcardsandMemoryStick與MCU虛擬設(shè)備相關(guān)的Resizer:SoftwareforcontrollingresizerengineImageDMA:SoftwareforcontrollingthededicatedDMAchannelsforimages.ImageProc.:SoftwareforcontrollingImageeffectengine.G2D:Graphic2Dengine.LCD:LCDinterface,support4layers.ISP:SupportimageprocesstocompensatetheLens/sensoreffect.GIFdecoder:SoftwareforcontrollinghardwareGIFdecoder.Mpeg4/H.263codec:SoftwareforH.263/Mpeg4de-code/encode.JPEGcodec:SoftwareforcontrollinghardwareJPEGdecoder/encoderL2/L3/L4ProtocolStack:GSMProtocalStackLayer.該模塊包含了許多GPRS/GSM的Requirement,為應(yīng)用程式提供了一個GSM/GPRS平臺;該軟件平臺能簡單容易地通過AT命令使用LocalMMI或PC控制。結(jié)構(gòu)如下:RMI:RemoteMMI,forexample,PCside.UseAT-commandtocommunicatewithProtocolStackthroughUARTport.FMI:FeaturerichMMI,describedintheabovesection.Thisistheproductionco-workedwithPixtel.L4:Layer4.L4isataskthroughwhichFMIand/orRMIcommunicatewithPS.L4taskincludesseveralsub-modules.ATCI:ATcommandinterpreter.InterpretstheATcommandsfromPCsideandcommandstheL4Ctodotherelativeactions.L4A:L4adaptationlayerforFMI.TheSAPbetweenFMIandL4Aisprimitivebase.L4C:L4controlentity.Handlesallapplicationsrequestandresponse.UEM:Userequipmentsadaptation.Adaptationfordrivers,likeKeypad,LED,GPIO,Audio卐tc.PHB:Phonebookmanagement.Handlesthephonebooksrelatedprocessing,like:sorting卐tc.SMU:SIMmanagementunit.Handlethesecuritymanagement,andSTK.CSM:Circuitswitchingprotocolstackmanagement.RAC:Registrationaccesscontrol.SMSAL:Shortmessageserviceapplicationlayer.TCM:Terminalcontextmanagement.NVRAM:Non-volatileRAM.Thisisadaptationlayertoflashmemory.SIM:Subscriberidentitymodule.HandleSIMbehaviorasETSI11.11description.DATA:Circuitswitcheddataservice.Datataskincludesseveralsub-modules.FAX:Group3Facsimile.TDT:Transparentcircuitswitchingdata.L2R:Layer2relayprotocolfornon-transparentcircuitswitchingdata.RLP:Radiolinkprotocolfornon-transparentcircuitswitchingdata.CC:Circuit-switchedcallcontrol.SS:Supplementaryservice.SMS:Shortmessageservice.SM:Sessionmanagement.MM/GMM:Mobilitymanagement/GPRSmobilitymanagement.SNDCP:Subnetworkdependentconvergenceprotocol.LLC:Logicallinkcontrol.RR:Radioresourcemanagement.RRtaskincludesseveralsub-modules.RRM:HandlescellselectionandPLMNselection.RMPC:HandlestheproceduresinIdle/Dedicatedstateincludingthesurroundingcellschemeandmeasurementreporting.LAPDM:HandlestheproceduredefinedinGSMlayer2.RLC:Radiolinkcontrolprotocol.MAC:Mediumaccesscontrolprotocol.MPAL:AdaptationlayerforRRandL1A.PPP:PointtoPointprotocollayer.ThisisclientPPPlayer.MMI:該部分包含了用戶界面框架、應(yīng)用程式和與協(xié)議棧的通訊;

MMI和L4之間是通過消息進(jìn)行交互得(TheinterfacebetweenMMIandl4isprimitivebased)。FrameworkOSL:OSadaptationlayerTask:communicationwithL4task.:communicationwithstoragedevice.GUIThemeUIcomponentCategoryscreenFontEditorT9orEziinputmethod.AccessLCDdriver.Customizationtool.ApplicationPhonebookMessages(SMS,EMS4.0,CB)CallhistorySetting.(Phonesetting,networksetting,securitysetup)5kindsofuserprofiles(情景模式:戶外、會議、家中等)FunandgamesOrganizersServicesShortcutsIncallmanagement.Interruptevents,likecharging,alarm.6.GDIandMDIinterface:6.GDIandMDIinterface:GDI:GraphicDeviceInterface,likemulti-layerscontrol.GDIisabbreviateforGraphicDeviceInterface,whichprovidesAPIsforupperMMIapplications,WAP,andJAVAtoprocessgraphicrelatedmanipulation,eitherbysoftwareorbyaccessgraphicrelatedHWdevice(LCD,HWfontengine,HWdecoder,etc).MDI:MultimediaDeviceInterface,includingaudioandMPEG4filescontrol.7.WAP&MMS:ThisisfromTelecaObigoQ3Cversion.MediaTekhadseveraltaskstoprovideInternetapplications.Currently,wesupportWAP1.2.1and2.0,MMS1.1.Mobilesuiteframework:ThisisadaptationlayertoprotocolstackandGUIinterface.Security:ThiscoversWTSLclass1,2.STK:stack.Provision:isionservice.Push:service.Browseservice:WMLscriptparsing.MMSservice:MMSscriptparsing.SMILservice:SMILscriptparsing.MMSApp:MMSdisplayandscenariohandling.BrowserApp:application.TheMobileEngineeringTestArchitecture(META):提供了RF測試、NVM讀寫測試、相關(guān)的語音測試(包括鈴聲和語音)。META由META—TARGET、META—LAB和META—Factory組成。META—TARGET是MT62XX系列的圖形硬件平臺。在只有TST任務(wù)、FT任務(wù)、NVRAM任務(wù)、L1語音任務(wù)的測試模式下才能運(yùn)行META—TARGET。META—LBA和META—Factory是pc端的應(yīng)用程序。META—LBA提供了通用的測試功能:RFTX/RX/AFC測試、基帶測試(包括registeraccess和AUXADCtesting)、NVRAM調(diào)整、聲音調(diào)試(語音的播放、記錄和刪除,鈴聲的下載和播放),這些測試因為沒有專用設(shè)備支持,必須手工操作。而META—Factory是為工廠生產(chǎn)線提供RF的校準(zhǔn)功能,它支持專用設(shè)備控制oMETA—LBA是用于實驗室或工廠,主要用于RF,BB(Base—band)和系統(tǒng)集成設(shè)計,而META—Factory主要用于產(chǎn)品生成線上自動校準(zhǔn)手機(jī)參數(shù)的。Catcher:Catcher是pc端工具軟件,主要功能是記錄消息(primitive)和調(diào)試信息。工程師可使用它去分析手機(jī)的運(yùn)行狀態(tài)。具體參考文檔:MT6219_SW_ReleaseNote.pdfMTK資源生成使用說明MTK的資源一般由字符串、圖形文件、菜單、字形庫等組成;字符串資源生成使用說明:資源文件說明字符串資源的文件名為ref_list.txt,該文件是Excel文檔,格式為:字符串ID+各個語言種類對應(yīng)的字符串。修改時用MicrosoftExecel制表程式進(jìn)行編輯。再增加或刪除字符串時,要修改最后一行##number的數(shù)值,它表示字符串的總數(shù)(聽說不改也沒有什么影響,我沒有去驗證,建議進(jìn)行修改,這樣可能兼容性會更好一些)注意:字符串資源文件ref_list.txt在MTKMilan0538版本中有好幾個同名的文件。但有效的文件是在目錄mi-lan0538(128160)\Milan0538\plutommi\Customer\CustResource\PLUTO_MMI下。字符串相關(guān)宏:ADD_APPLICATION_STRING(stringld,string)在c源代碼文件編寫過程中,經(jīng)常使用用于字符串資源的宏:ADD_APPLICATION_STRING(stringld,string);宏ADD_APPLICATION_STRING的目的:在資源生成過程中,會在源代碼文件去查找使用宏ADD_APPLICATION_STRING的語句,根據(jù)傳入stringld的字符串ID,去字符串資源文件中查找是否有該ID的字符串。如果有則從字符串資源文件中提取出來;如果沒有則定義該ID號,根據(jù)該ID和默認(rèn)的字符串(一般是英文)string定義一個新的字符串。字符串相關(guān)宏:ADD_APPLICATION_STRING2(stringId,string,display)該宏的前兩個參數(shù)與宏ADD_APPLICATION_STRING(stringId,string)功能相同,第三個參數(shù)display的功能不太清楚。修改ReadExcel.c文件:包含定義字符串ID的頭文件。生成的資源文件CustStrRes.cStrRes_x[]foreachlanguageOneStrMapSearch[]indexofStrMap_x[]gStringList[MAX_LANGUAGES]CustStrMap.cStrMap_x[]foreachlanguageOffsettoStrRes_x[]圖形資源生成使用說明圖形資源文件說明圖形資源集中在以下目錄:milan0538(128160)\CustomRes_Milan和milan0538(128160)\Milan0538\plutommi\Customer\Images;其中在Image目錄下的圖形資源文件存放的主要是第三方提供的資源和一些游戲資源,其他的圖形資源存放在CusttomRes_Milan目錄中,在圖形資源文件處理過程中,ID號會根據(jù)資源文件名相對與當(dāng)前目錄的相對文件名生成。與資源相關(guān)的資源代碼文件的路徑為:mi-lan0538(128160)\Milan0538\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目錄下,在對應(yīng)的文件中使用ADD_APPLICATI0N_IMAGE2加入資源文件。圖形資源相關(guān)的宏:ADD_APPLICATION_IMAGE(ImageId,Img)ImageId是Imag圖形資源文件的ID號,Imag是圖形資源文件名信息;根據(jù)ImageId和Image生成一個以ID為標(biāo)識的圖形資源數(shù)據(jù)。圖形資源相關(guān)的宏:ADD_APPLICATI0N_IMAGE2(ImageId,)該宏的前兩個參數(shù)與宏ADD_APPLICATION_IMAGE(ImageId,Img)的前兩個參數(shù)功能相同,第3個參數(shù)的功能未知。生成的資源文件CustImgRes.cCustImgMap.cCustImgHWData.h菜單資源生成使用說明菜單資源ID說明每一個菜單項都有一個唯一的ID,菜單項ID的聲明在頭文件GlobalMenuItems.h中,需要增加菜單項時,在enumGLOBALMENUITEMSID枚舉定義中加入菜單項的ID號。菜單資源相關(guān)的宏:ADD_APPLICATION_MENUITEMADD_APPLICATION_MENUITEM((MITEM_IMAH_OPT_PSEUDO,0,10,MITEM_IAH_OPT_SWAP,MITEM_IAH_OPT_CONFER,MITEM_IAH_OPT_END_HLD,MITEM_IMA_OPT_END_ONE_ACT,//MTKamandaadd1129MITEM2019_CM_ALL_ACTIVE_END,MITEM_IAH_OPT_END_ALL,MITEM_INC_OPT_DEFLN,MITEM_INC_ACT_OPT_MUTE,MITEM_INC_ACT_OPT_LOUDSP,MITEM2024_CM_DTMF,SHOW,NONMOVEABLE,DISP_LIST,STR_SCR1002_CAPTION,0));每一個菜單現(xiàn)項包含的信息為:該菜單項的ID,它的父菜單項的ID,子菜單項的總數(shù),各個子菜單的ID,SHOW/HIDE菜單項的屬性,菜單項的顯示模式,該菜單顯示的標(biāo)題,該菜單在標(biāo)題欄顯示的圖標(biāo)ID。生成的資源文件CustMenuTree_Out.c---inputMCTtoolCustMenuRes.c---resourceofmenufromtargetbuildCustMenuToolRes.c---resourceofmenufromtool經(jīng)驗總結(jié):ADD_APPLICATION_MENUITEM()里面進(jìn)行添加菜單項,包括該菜單的id,字符串,圖標(biāo),母菜單id,子菜單id等等。在顯示該菜單界面時,會根據(jù)該菜單id找到所有相關(guān)的子菜單id,并畫出所有子菜單的字符串和圖標(biāo)。在進(jìn)入該界面前還對菜單設(shè)置handler。在編譯的過程中,還會生成一些met用的文件。里面列出所有的菜單項,函數(shù)是ADD_APPLICATION_MENUITEM2()。mtk調(diào)整菜單的經(jīng)驗:應(yīng)該修改這個文件:plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\Res_MainMenu.c,你可能修改了plutommi\Customer\Res_MMI目錄下的文件了,那里的文件基本都是拷貝過去的字形庫與字形庫相關(guān)的數(shù)據(jù)類型每一類的字形庫數(shù)據(jù)由3部分組成:記錄該類所有編碼字形數(shù)據(jù)的數(shù)組、記錄每個編碼字形的寬度的數(shù)組、記錄每個編碼字形數(shù)據(jù)在記錄該類所有編碼字形數(shù)據(jù)的數(shù)組中的偏移量的數(shù)據(jù)。生成的資源文件FontRes.cL_en_family_alpha_small.hL_en_family_alpha_medium.hL_en_family_alpha_large.hL_ch_family_ideog.h中文字庫生成過程用工具軟件MCTExec3.0:在菜單Tools—》FontTools—》FontCustomizer功能生成相應(yīng)的字體信息文件。在FontRes_Chinese.h中替換對應(yīng)的數(shù)據(jù)。如何增加資源步驟1:首先定義該資源的ID號.ID范圍是根據(jù)模塊劃分得,所以增加某個模塊得資源,在該模塊目錄的頭文件所在目錄下查找:模塊名+res.h,—般該模塊使用的所有資源ID都會定義在頭文件里。步驟2:使用對應(yīng)的資源配置宏,表明該資源需要處理:字符串資源配置宏:ADD_APPLICATION_STRING(stringId,string)>ADD_APPLICATION_STRING2(stringId,string,display),另外需要在ref_list.txt要相應(yīng)的增加ID和各個語言種類對應(yīng)的字符串。圖形資源配置宏:ADD_APPLICATION_IMAGE(ImageId,Img)、ADD_APPLICATION_IMAGE2(ImageId,y)。菜單資源配置宏:ADD_APPLICATION_MENUITEM。以上的配置宏都在對應(yīng)模塊的資源C文件里,存放目錄在:mi-lan0538(128160)\Milan0538\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI下。步驟3:執(zhí)行資源批處理remakeResource.bat,在milan0538(128160)\Milan0538\plutommi\Customer目錄下。>隨機(jī)數(shù)產(chǎn)生函數(shù)void__cdeclsrand(unsignedint);MMITask的消息循環(huán)處理主入口函數(shù)為:voidMMI_task(oslEntryType*entry_param)>從消息隊列取消息函數(shù)為:OslReceiveMsgExtQ(…)怎么樣在MTK平臺上加入MENU,APPLICATION?照著res_mainmenu.c自己力口>更改mtk平臺默認(rèn)時間(年月日)?custom_hw_default.cconstkal_uint8DEFAULT_HARDWARE_YEAR=5;constkal_uint8DEFAULT_HARDWARE_MON=1;constkal_uint8DEFAULT_HARDWARE_DAY=1;mtk平臺表示是否有sim卡用哪個變量?全局變量g_pwr_context.IsSimValid的數(shù)值為1表示有SIM卡;數(shù)值為0表示沒有SIM卡。__MMI_USB_CDCACM_ONLY__,這個宏里CDCACM是什么意思?就是USB僅用于theUniversalSerialBusCommunicationDeviceClassAbstractControlModel,沒有usbmassstorage。這個宏對關(guān)機(jī)沒有影響,還是可以當(dāng)作Udisk。就是開機(jī)的時候插入的話沒有massstorage的選項,僅用于充電之類的。就是MMI的featureGDIVSPixtel_UIPixtel_UI是一個非常舊的圖形接口,不支持多個圖形層(multi-layer),它不支持新的功能,如JPEG等。GDI是一個新的圖形接口,支持所有的新功能,除了顯示字符參。GDILayerGDILayer在硬件上支持4層,軟件上可支持15層。BaseLayerBaseLayer在GDI中是永遠(yuǎn)存在的。它和LCM的尺寸相同。默認(rèn)為激活層。所有的Drawing操作都是在激活層上。MainLcd和sublcd分別有一個BaseLayer。調(diào)用函數(shù)gdi_layer_get_active獲取BaseLayer的handleBaseLayer的handle根據(jù)MainLcd和SubLcd分別是GDI_LAYER_MAIN_BASE_LAYER_HANDLE和GDI_LAYER_SUB_BASE_LAYER_HANDLErule(使用規(guī)則)芯片6218和6219支持GDILayer功能。設(shè)置了激活的圖形層后,所有的圖形操作會在激活圖形層中。當(dāng)不使用GDILayer功能時,必須激活BaseLayer。有些功能是由一對函數(shù)組成,必須成對使用,特別小心從一對函數(shù)中間的代碼中返回,沒有實現(xiàn)成對使用的規(guī)則。必須成對使用的函數(shù)有:gdi_layer_lock_frame_buffer和gdi_layer_unlock_frame_buffergdi_layer_push_clip和gdi_layer_pop_clipgdi_layer_push_text_clip和gdi_layer_pop_text_clipgdi_layer_push_and_set_active和gdi_layer_pop_and_restore_active每個GDI函數(shù)是由互斥量保護(hù)著;可以使用GDI_LOCK/GDI_UNLOCK操作加快應(yīng)用程式對GDI的操作。1.例子:GDI_LOCKgdi_layer_lock_frame_bufferpixtel_UI_reset_clipshow_status_icons??gdi_layer_unlock_frame_buffergdi_layer_blt?GDI_UNLOCK>定時器的使用打開定時器函數(shù),注意該定時器值、只執(zhí)行一次。pixtel_UI_start_timer(g_gx_panda_context.timer_elapse,mmi_gx_panda_cyclic_timer);第一個參數(shù)是定時器的周期值,單位為ms;第二個參數(shù)是定時器的回調(diào)函數(shù)關(guān)閉定時器。pixtel_UI_cancel_timer(mmi_gx_panda_cyclic_timer);帶入的參數(shù)是該定時器的回調(diào)函數(shù)。>游戲FrameWork如何使用NVRAM保存信息在NVRAMEnum.h定義一個與應(yīng)用程式相關(guān)的枚舉變量NVRAM_GX_PANDA_SCORE;該枚舉類型有nvram_LID_cust_enum、BYTEDATA、SHORTDATA、DOUBLEDATA,根據(jù)保存數(shù)據(jù)類型在相應(yīng)的枚舉類型定義中加入枚舉變量;游戲Panda的玩家最好成績定義為短整型,NVRAM_GX_PANDA_SCORE加入枚舉SHORTDATA類型中。設(shè)置游戲構(gòu)架全局變量g_gfx_cntx相關(guān)的成員變量,level_count表示有保存NVRAM的數(shù)據(jù)總數(shù);grade_nvram_id_list表示保存在NVRAM數(shù)據(jù)的各個ID號;grade_value_ptr用于保存根據(jù)ID號從NVRAM讀出的數(shù)據(jù)內(nèi)容>按鍵處理注冊某按鍵的處理回調(diào)函數(shù)voidSetKeyHandler(FuncPtrfuncPtr,U16keyCode,U16keyType)參數(shù)funcPtr:處理回調(diào)函數(shù)的指針。參數(shù)keyCode:按鍵的鍵值。參數(shù)keyType:按鍵的狀態(tài):有Down,Up,LongPress,Repeat。注銷某按鍵的處理回調(diào)函數(shù)FuncPtrGetKeyHandler(U16keyCode,U16keyType)參數(shù)keyCode:按鍵的鍵值。參數(shù)keyType:按鍵的狀態(tài):有Down,Up,LongPress,Repeat。MMI任務(wù)住消息循環(huán)處理MMI任務(wù)消息循環(huán)處理主函數(shù)為:voidMMI_task(oslEntryType*entry_param)。>按鍵時間處理Framework。在按鍵事件的處理框架的思路:根據(jù)按鍵總數(shù)和按鍵狀態(tài)定義了一個二維數(shù)組的函數(shù)指針數(shù)組。消息處理過程中,根據(jù)不同的按鍵值和狀態(tài)取出函數(shù)指針,然后調(diào)用數(shù)據(jù)結(jié)構(gòu)大端模式(bigendian)和小端模式(littleendian)大端模式(bigendian)和小端模式(littleendian)指的是數(shù)據(jù)在計算機(jī)體系的存儲模式,由于存在眾多的芯片體系,如x86,powerpc,arm等等,由于各個廠家對數(shù)據(jù)存儲的規(guī)定不一樣,故如果代碼從一個系統(tǒng)移植到另一個系統(tǒng)時有可能遇到模式混亂的問題。例如用一個字長表示1,Intel體系是采用小端模式的,存儲為00000000,00000001b,低字節(jié)放在低地址位;若體系采用的是大端模式,則存儲為00000001,00000000b,低字節(jié)放在高地址位。了解這一點后,就不難用c語言通過對低字節(jié)的強(qiáng)制轉(zhuǎn)換實現(xiàn)對大端小端的判斷了。wordone=1;if(one==(char*)one)//itislittleendian;else//itisbigendian;MTKMMI定制個性化主題!(即用戶能夠任意更改屏幕的背景圖片,TitlePicture等).MTK采用多層顯示結(jié)構(gòu),一般只有四層,背景圖片應(yīng)該是baselayer上面一層,你可以修改這一層來達(dá)到修改背景圖片的目的,至于主題圖片只需要修改title_icon就可以了mtkPHB_LN_ENTRY宏的意思應(yīng)該是通話記錄中已撥電話,未接電話,已接電話的最大數(shù)目吧,各20個記錄。SMS簡介短消息服務(wù)單從字面上來看,所謂短消息就是通過GSM網(wǎng)絡(luò)傳輸?shù)挠邢揲L度的文本信息。而短消息業(yè)務(wù)是GSM系統(tǒng)提供給手機(jī)用戶的一種特殊服務(wù),這項服務(wù)與傳統(tǒng)的語音傳輸通訊業(yè)務(wù)是根本不同的。短消息業(yè)務(wù)按其實現(xiàn)的方式可以分為點到點短消息業(yè)務(wù)和小區(qū)廣播短消息業(yè)務(wù)。點到點短消息業(yè)務(wù)即通過M0(MS發(fā)起短消息業(yè)務(wù))和MT(MS終止短消息業(yè)務(wù))將一條短消息從一個實體發(fā)送到指定目的地址的業(yè)務(wù),被發(fā)送的信息經(jīng)過編碼后消息長度為140個字節(jié),也就是一條短消息可以包含160個英文字母(7Bit編碼)或70個中文漢字(Unicode編碼);還有ConcatnatedSMS,是在header中實現(xiàn)了一個簡單的串接協(xié)議,將多條短信串成一條,具體可以參考GSM03.38和GSM03.40而小區(qū)廣播短消息業(yè)務(wù)是指通過發(fā)送信息的基站向指定區(qū)域中所有短消息用戶發(fā)送短消息的業(yè)務(wù),該業(yè)務(wù)將發(fā)送的短信息編碼后,使消息的長度增加為每頁82個字節(jié),并且最多能發(fā)送20頁之多的信息。通常移動公司會使用這種方式在一定的區(qū)域內(nèi)向所有GSM用戶循環(huán)發(fā)送一些具有通用性的信息,如交通信息、天氣情況、股市信息、新聞等。前面已經(jīng)說過,短消息業(yè)務(wù)是GSM系統(tǒng)中提供的一種GSM手機(jī)之間及與短消息實體之間通過業(yè)務(wù)中心進(jìn)行文字信息收發(fā)的方式,其中業(yè)務(wù)中心是獨立于GSM網(wǎng)絡(luò)的一個業(yè)務(wù)處理系統(tǒng),主要功能是提交、存儲、轉(zhuǎn)發(fā)短消息,并完成與PSTN、Internet等網(wǎng)絡(luò)的互通,以實現(xiàn)來自其他SME(ShortMessageEntity)(如:人工臺/自動臺、咨訊平臺等)的短消息的傳遞。目前短消息業(yè)務(wù)已經(jīng)在全國各大中小城市推出,以往用戶需要到營業(yè)廳進(jìn)行申請開通該業(yè)務(wù),而且每月還需要繳10元的使用費,但現(xiàn)在卻是免費開通,也免去了每月10元的使用費,每條信息收費0.10元,而且是單向的。短消息的優(yōu)點最新的信息如何溝通?如果選擇紙媒體大概需要三天左右;如果選擇傳單散發(fā)一天左右;如果選擇廣播、電視傳播,速度雖然快,但是針對性差;如果選擇互聯(lián)網(wǎng)發(fā)布,不少人還不懂,懂的人也不可能時刻在網(wǎng)上。如果使用手機(jī)短信息,不但可以做到信息的及時發(fā)布,而且可以做到信息的個性化定制即使對方關(guān)機(jī)或是不在服務(wù)區(qū)內(nèi),他也可以在對方開機(jī)或回到服務(wù)區(qū)后傳入對方的手機(jī)。同時,這項服務(wù)只收取發(fā)送方每條信息O.lO元,接收方不花錢。目前可以發(fā)送短消息的實體(SME)包括移動用戶、固定用戶、語音信箱、尋呼中心、信息點播平臺、Internet網(wǎng)絡(luò)及其他業(yè)務(wù)系統(tǒng)。由于短消息發(fā)送占用的是信令通道,當(dāng)移動臺占線而無法通話的情況下仍可接收短消息。當(dāng)移動臺關(guān)機(jī)或不在服務(wù)區(qū)時,短消息發(fā)送會失敗,但短消息中心會保存該短消息,并在HLR中設(shè)置等待標(biāo)志,一旦用戶開機(jī)或返回服務(wù)區(qū),GSM系統(tǒng)會及時通知短消息中心重發(fā)。用戶會即刻收到短消息。通過短消息中心及其相關(guān)增值業(yè)務(wù)系統(tǒng)還可以實現(xiàn)諸如股票交易、銀行業(yè)務(wù)、信息點播、GPS監(jiān)控、e-Mail通知等信息服務(wù),及日程安排、預(yù)約留言、電話號碼薄等等移動服務(wù)。我們可以把短消息業(yè)務(wù)當(dāng)作是GSM系統(tǒng)中最為簡單和方便的數(shù)據(jù)通信方式,它不需要附加其它較為龐大的數(shù)據(jù)終端設(shè)備,僅使用手機(jī)就可以達(dá)到進(jìn)行中、英文信息交流目的。短信息的優(yōu)點總結(jié)下來就是以下幾點:開通方便人們已經(jīng)厭倦了開通新業(yè)務(wù)時煩瑣的手續(xù),而短信息服務(wù)不需要申請,所有的全球通手機(jī)都自動支持。用戶只需要按動幾個鍵,做一些簡單的設(shè)定,就可以享受這項服務(wù)了。收費低廉資費始終是消費者們最關(guān)心的問題。雖然語音業(yè)務(wù)的資費不斷下調(diào),但對普通大眾來說,撥打或者接聽手機(jī)的時候,仍然需要“掐著表”。而不管是長途還是市內(nèi),短信息每發(fā)送一條僅0.1元,而且接收免費。與打和接都是每分鐘0.4元的語音業(yè)務(wù)相比,價格優(yōu)勢不言而喻。內(nèi)容豐富種類繁多的短信中心提供了各種各樣的定制服務(wù),用戶可以自由挑選組合所需信息。證券業(yè)人士可以定制股市行情,地產(chǎn)業(yè)人士可以定制地產(chǎn)信息,經(jīng)常出行的人可以定制天氣預(yù)報,體育迷可以定制體育新聞……如此豐富的內(nèi)容使每個行業(yè)、每個階層的人都能找到屬于自己的信息。隨時隨地短信息不像打電話,必須要求接聽方也同時在另一端。用戶可以隨時隨地發(fā)送短信息,不用管對方有沒有開機(jī),是不是在服務(wù)區(qū),也不用怕已經(jīng)是深夜而打擾對方的睡眠,因為短信息可以存儲在短信平臺的服務(wù)器上,一旦對方開機(jī),短信息就會自動發(fā)送到他那里。文字的特殊魅力現(xiàn)代社會的通信工具使人們習(xí)慣于打電話,逐漸疏于寫信,但在很多方面,文字有著語音所無法替代的效果。比如,時下幾乎每個手機(jī)用戶都曾經(jīng)收到一些幽默、趣聞,這也是語音所無法做到的。以上幾點還僅僅是站在用戶的角度上來看。如果從技術(shù)上的角度上來看,它還有以下幾個優(yōu)點:點到點的通訊方式只要知道對方的手機(jī)號碼,就可以直接向?qū)Ψ降氖謾C(jī)上發(fā)送短信息?;貜?fù)信息也是如此。這樣的工作方式使得手機(jī)就如同Internet網(wǎng)絡(luò)中擁有固定IP地址的計算機(jī)一樣,可以隨時隨地與它建立連接。24小時在線只要手機(jī)不關(guān),那么隨時可以接收短信息。同時,用戶也可以隨時發(fā)送短信息。從廣義上來說就是24小時在線。另外短消息中心具有消息的臨時存儲能力,因此即使是由于關(guān)機(jī)而不能接收消息,在開機(jī)后仍能接收到先前沒有接收的短消息。具有承載多種數(shù)據(jù)的能力短消息有三種模式:塊模式、PDU模式和文本模式。其中支持塊模式的手機(jī)廠商十分少,基本上都支持PDU模式和文本模式。特別值得一提的是:通過PDU編碼的短信息內(nèi)容可以是:文字、聲音或圖像。那么從廣義上來看,也可以將一般的數(shù)據(jù)文件經(jīng)過PDU編碼后進(jìn)行發(fā)送和傳輸。隨著短信息協(xié)議的發(fā)展,短信息將來將能夠支持更多樣化的數(shù)據(jù)??梢詫崿F(xiàn)Push和Pull兩種不同的工作模式總的來說,短消息是以Push方式工作的。如果Push的發(fā)起者是服務(wù)提供商,那么服務(wù)提供商就可以將用戶定制的信息發(fā)送直接推送給用戶。如果Push的發(fā)起者是用戶,接收方是服務(wù)提供商,那么服務(wù)提供商可以使用短信息立即響應(yīng)用戶的請求。這個時候可以說是一種Pull的方式在工作??梢员U蟼鬏斨械陌踩绻脩羰褂肧TK卡,那么短信息在發(fā)送之前,可以通過STK卡將信息加密后進(jìn)行傳輸。在到達(dá)目的地后由接收者將信息解密。實現(xiàn)了點到點的信息安全保障。短信息的這些優(yōu)點是目前很多無線網(wǎng)絡(luò)通訊所不能及的。>關(guān)于CategoryScreen相關(guān)源代碼文件Event.cwgui_categories.cwgui_inline_edit.c數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)wgui_inline_itemtypedefstruct_wgui_inline_item{dwordflags;//菜單屬性的標(biāo)志位,用于標(biāo)明該菜單項的類別。

//INLINE_ITEM_TYPE_SELECT:表示是個選擇菜單。//INLINE_ITEM_TYPE_CAPTION:表示是個TextLabels32key_code;s32key_event;//用于設(shè)置InlineItem為Activation。U8*text_p;//表示激活選項的字符串。UI_image_typeside_img;//菜單項的圖標(biāo)U8show_img_flag;//顯示菜單項圖標(biāo)的標(biāo)志位void*item;//菜單項內(nèi)容指針void(*handler)(s32x,s32y,s32width,s32height,s32key_code,s32key_event,U8**text_p,void*item,dwordflags,U8*history_buffer);//菜單項的處理函數(shù)。}wgui_inline_item;數(shù)據(jù)結(jié)構(gòu)wgui_inline_item_selecttypedefstruct_wgui_inline_item_select{dwordflags;S32n_items;//表示選項的個數(shù)S32*highlighted_item;//激活的選項U8**list_of_strings;//表示描述菜單選項的字符串void(*item_highlighted)(s32item_index);//顯示回調(diào)函數(shù)。}wgui_inline_item_select;數(shù)據(jù)結(jié)構(gòu)Pseventlnfotypedefstruct_PseventInfo{U16eventID;//事件的ID,如定時器、硬件事件PsFuncPtrentryFuncPtr;//對應(yīng)事件ID的處理函數(shù)指針。}PseventInfo;數(shù)據(jù)結(jié)構(gòu)PsInteventInfotypedefstruct_PIntseventInfo{U16eventID;/*fortimer&hardwareevents*///事件的ID號。PsIntFuncPtrentryIntFuncPtr;//事件處理函數(shù)指針PsIntFuncPtrpostIntFuncPtr;//事件傳送處理函數(shù)指針}PsInteventInfo;數(shù)據(jù)結(jié)構(gòu)hiliteInfotypedefstruct_hiliteInfo{FuncPtrShorthintFuncPtr;//提示信息處理函數(shù)指針。FuncPtrentryFuncPtr;//入口處理函數(shù)指針。}hiliteInfo;數(shù)據(jù)類型FuncPtrTypedefvoid(*FuncPtr)(void);局部全局變量staticU16currMaxHiliteInfo;表示maxHilitelnfo數(shù)組Hiliteltem的數(shù)量staticU16maxProtocolEvent;表示數(shù)組protocolEventHandler被使用的總數(shù),很少使用該全局變量。staticU16maxInterruptEvent;表示數(shù)組interruptEventHandler被使用的總數(shù)staticU16currParentID;當(dāng)前Screen的父類IDstaticU16currKeyCode;保存當(dāng)前按鍵的鍵值staticU16currKeyType;保存當(dāng)前按鍵的狀態(tài)(Up、Down、LongPressetc.)staticU16currHiliteID;保存當(dāng)前咼亮顯示的IDstaticU16currEntryScrnID;不太清楚staticFuncPtrcurrEntryFuncPtr;進(jìn)入下個激活Screen的處理函數(shù)指針。staticU16currExitScrnID,currTopScrnID;currTopScrnlD保存當(dāng)前激活的Screen的ID,currExitScrnlD保存當(dāng)前激活Sc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論