MTK开发日志参考资料_第1页
MTK开发日志参考资料_第2页
MTK开发日志参考资料_第3页
MTK开发日志参考资料_第4页
MTK开发日志参考资料_第5页
已阅读5页,还剩38页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MTK开发笔记1.Windows必须安装在C盘,否则会出现modis编译问题。2.语言和输入法移植2.1资源修改–这是我们需要修改的,2.2开始MTK已经帮你做好了。2.1.1在\plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中添加新语言的字符串资源。2.1.2用MCT工具生成新的字库,需要注意的是LanguageID必须和ref_list.txt中一致。2.1.3输入法资源包括Zi、T9和CStar。2.1.3.1Zia.新建\vendor\inputmethod\ZI\project\PROJECTNAME\v?_official\目录。b.将第三方提供的Zi文件拷贝到该目录。c.将所有ZI8DatXX.c文件扩展名改成.h文件,并将其包含到IMEResZi.h中。d.将输入资源添加到mtk_gIMELDBArray数组中。e.上面步骤,第三方可能已经提供IMEResZi.h文件。如果提供了就不用这些步骤了。2.1.3.2T9将代码放到下面目录:\vendor\inputmethod\T9\project\PROJECTNAME\v?_official\移植比较麻烦,具体参考:SOP_T9_Input_Method_Resource_Generation_07A.pdfSOP_T9_Input_Method_Resource_Generation_08B.pdfSOP_T9_Input_Method_Resource_Generation_09BV2.pdf2.1.3.3CStar不说了2.2SSC有几个文件需要修改。a.\plutommi\mmi\SSC\SSCInc\SSCStringHandle.h:增加新的SSC码,需要和ref_list.txt、FontRes.c中的一致。#defineSSC_AUTO"*#0000#"#defineSSC_SCHINESE"*#0086#"#defineSSC_TCHINESE"*#0886#"#defineSSC_ENGLISH"*#0044#"#defineSSC_DEFAULT"*#0044#"#defineSSC_SPANISH"*#0034#"//添加你的SSC码//#defineSSC_XXXXX"*#00XX#"2.3\plutommi\mmi\SSC\SSCInc\SSCStringHandle.c:将新的SSC码加入到ssc_table2表中。SSCStringTableExssc_table2[]={{SSC_AUTO,MMI_FALSE,SSC_STR_ERR_SET_DEFAULT,SSC_SCR_LANGUAGE_DEFAULT_STR_ID},{SSC_ENGLISH,MMI_FALSE,SSC_STR_ERR_SET_ENGLISH,SSC_SCR_LANGUAGE_ENGLISH_STR_ID},#ifdefined(__MMI_LANG_TR_CHINESE__){SSC_TCHINESE,MMI_FALSE,SSC_STR_ERR_SET_TCHINESE,SSC_SCR_LANGUAGE_TCHINESE_STR_ID},#endif#ifdefined(__MMI_LANG_SPANISH__){SSC_SPANISH,MMI_FALSE,SSC_STR_ERR_SET_SPANISH,SSC_SCR_LANGUAGE_SPANISH_STR_ID},#endif……2.4mcu\\plutommi\mmi\Setting\SettingSrc\PhoneSetup.c:加到auto_lang_struct数组中。staticStructAutoLangauto_lang_struct[]={/*ISO6392-alphabetLanguageCodes*/{CBS2_ZH,SSC_SCHINESE},{CBS2_TW,SSC_TCHINESE},{CBS0_ENGLISH,SSC_ENGLISH},{CBS0_SPANISH,SSC_SPANISH},{CBS2_TH,SSC_THAI},{CBS0_FRENCH,SSC_FRENCH},{CBS0_GERMAN,SSC_GERMAN},{CBS0_ITALIAN,SSC_ITALIAN},……2.5MTK代码已经帮你完成,具体参考SOP_Input_Method_Porting_Guide_07A.pdfSOP_Language_and_Input_Method_Porting_Guide_08A.pdf3.如何修改软件版本号?修改下面文件:make\Verno_<PROJECTNAME>.bld4.如何修改工程命令?如将默认*#8375#(显示版本号)改成*#8376#。文件:\plutommi\Customer\CustResource\PLUTO_MMI\CustResDefPLUTO.h修改:#ifdef__MMI_AUTO_LANG_EN__#defineMMI_DEFLANGSSC_FOR_AUTO"*#0044#"#endif#defineSSC_SW_VERSION"*#8375#"#defineSSC_HW_VERSION"*#357#"//Notusedif__MMI_HW_VERSION__isnotturnedon#defineSSC_ENGINEERING_MODE"*#3646633#"#defineSSC_FACTORY_MODE"*#66*#"#defineSSC_FACTORY_MODE_AUTOTEST"*#87#"#defineSSC_SERIAL_NUMBER"*#33778#"……5.有关SIMLock代码参考哪些文档?请参考:2G-PS\Personalization_Lock_SIM_ME_Lock_After_06A0632MP.pdf位于:DCC\FeaturePhoneData\Software_Customer\StandardPackage\2G-PS\6.如果添加一个Task?a.添加taskindex和modid。文件:\custom\system\PROJECTNAME\custom_config.h/**************************************************************************[VeryImportantMessage]*1.ComponentTaskIndex(Pleaseaddbeforesystemservice)*2.Customersareallowedtocreateatmost16tasksasdefinedin*config\include\stack_config.h(MAX_CUSTOM_TASKS=16)*************************************************************************/typedefenum{INDX_CUSTOM1=RPS_CUSTOM_TASKS_BEGIN,INDX_CUSTOM2,#ifdef__FLAVOR_VENDOR_SDK__INDX_VS,#endif//addyourtaskindexhere.//INDX_XXX,RPS_CUSTOM_TASKS_END}custom_task_indx_type;/**************************************************************************[VeryImportantMessage]*1.Componenttask'smoduleid(Pleaseaddbeforesystemservice)*2.Customersareallowedtocreateatmost16taskmoduleIDasdefined*inconfig\include\stack_config.h(MAX_CUSTOM_MODS=16)*************************************************************************/typedefenum{MOD_CUSTOM1=MOD_CUSTOM_BEGIN,MOD_CUSTOM2,#ifdef__FLAVOR_VENDOR_SDK__MOD_VS,#endif//addmoduleidhere.//MOD_XXX,MOD_CUSTOM_END}custom_module_type;b.添加modid和taskindex的映射。注意位置需要对应。/**************************************************************************Global*custom_mod_task_g**DESCRIPTION*moduletotaskindexmapping.*forexample:*INDX_CUSTOM1->MOD_CUSTOM1*meansmoduleMOD_CUSTOM1belongstoINDX_CUSTOM1task**Pleasearrangethemappingaccordingtocustom_config.hcustom_module_type*sequence.**GLOBALSAFFECTED**************************************************************************/custom_task_indx_typecustom_mod_task_g[MAX_CUSTOM_MODS]={INDX_CUSTOM1,/*MOD_CUSTOM1*/INDX_CUSTOM2,/*MOD_CUSTOM2*/#ifdef__FLAVOR_VENDOR_SDK__INDX_VS,#endif//addyoutaskindexhere.//INDX_XXX,INDX_NIL/*PleaseendwithINDX_NILelement*/};/**************************************************************************Global*custom_comp_config_tbl**DESCRIPTION*Thearraycontainssystemcomponenttasks'configurationinformation**GLOBALSAFFECTED**************************************************************************/constcomptask_info_structcustom_comp_config_tbl[MAX_CUSTOM_TASKS]={/*INDX_CUSTOM1*/{"CUST1","CUST1Q",210,1024,#ifdefCUSTOM1_EXISTcustom1_create,KAL_FALSE#elseNULL,KAL_FALSE#endif,10,0},/*INDX_CUSTOM2*/{"CUST2","CUST2Q",211,1024,#ifdefCUSTOM2_EXISTcustom2_create,KAL_FALSE#elseNULL,KAL_FALSE#endif,10,0},#ifdef__FLAVOR_VENDOR_SDK__/*INDX_VS*/{"VS","VSQ",212,1024,vs_sys_task_001_create,KAL_FALSE,10,0},#endif//addyourcomptask_info_structhere.//pleasereferencetocomptask_info_structdefine./*INDX_XXX*//*{“XXX”,“XXXQ”,211,1024,XXX_create,KAL_FALSE}*/};c.实现XXX_create。详细参考代码中的custom1_create函数实现方式。d.定义MSGID。文件:/*Addcustomizationmessageidhere*/MSG_ID_CUSTOM1_CUSTOM2=CUSTOM_MSG_CODE_BEGIN,MSG_ID_CUSTOM2_CUSTOM1,//addMSGIDhere.//MSG_ID_XXX,7.如何添加一个新的NVRAM项?NVRAM根据级别分3种region:MT–系统,不对用户开放。MP–和应用相关的,用户可以读到,写入。CT–专门针对用户的,某个客户专用的一般放这里。步骤如下:a.定义新的LID,以及size和total数量。MT:mcu\interface\ps\nvram_data_items.h在nvram_lid_core_enum中添加新的LID。MP:mcu\custom\common\PLUTO_MMI\nvram_common_defs.h在nvram_lid_commapp_enum中添加新的LID。MP:\custom\app\PROJECTNAME\nvram_user_defs.h在nvram_lid_cust_enum中添加新的LID。b.驱动开发以下未说明文件的配置在项目make文件上进行:mcu\make\PROJECTNAME.mak1.设置BBPLATFORM=MT6268#HardwarePlatform,MT6208,FPGA,MT6218,MT6218B,MT6219,MT6226,MT6227,MT6228,MT6229...etc.BOARD_VER=BROADMOBI68_09B_BB#Basebandmainboarddescription,SHOULDBEONEOFTHEFOLLOWINGS#MT6208_EVB,MT6208_CEVB,MT6205_CEVB,ORDNANCE,KLM2003_BB,CHICAGO2003_BB,#MT6218_MW001,CANNON,MT6218B_EVB,JUPITER_EVB,MT6219_EVB,#MT6226_EVB,MT6227_EVB,MT6228_EVB,MT6229_EVBMCU_CLOCK=MCU_245_76M#MCUclocksetting,MCU_13M,MCU_26M,MCU_39M,MCU_52M,MCU_104MMCU_DCM=DCM_ENABLE#DCM_ENABLE,DCM_DISABLE#DynamicClockManagement#AvailableBBchip:MT6217,MT6226,MT6226M,MT6227,MT6228,MT6229...etc.EXT_CLOCK=EXT_26M#Externalclocksourcesetting,EXT_13M,EXT_26M2.设置RFModuleRF模块:UMTS_RF_MODULE=CUSTOM_MT6160RF_MODULE=AD6546_CUSTOM晶振类型:AFC_VCXO_TYPE=VCTCXO#VCTCXO:VCTCXO#VCXO:VCXO#VCXO_SC:VCXOwith7areaslopecontrol#VCXO_TC:VCXOwithtemperaturecompensation#VCXO_SC_TC:VCXOwith7areaslopecontrol&temperaturecompensationCOM_DEFS_FOR_CUSTOM_MT6160=MT6160_RFCUSTOM_MT6160UMTS_BAND_I=TRUE#TRUE,FALSEUMTS_BAND_II=TRUE#TRUE,FALSEUMTS_BAND_III=FALSE#TRUE,FALSEUMTS_BAND_IV=FALSE#TRUE,FALSEUMTS_BAND_V=TRUE#TRUE,FALSEUMTS_BAND_VI=FALSE#TRUE,FALSEUMTS_BAND_VII=FALSE#TRUE,FALSEUMTS_BAND_VIII=FALSE#TRUE,FALSEUMTS_BAND_IX=FALSE#TRUE,FALSEUMTS_BAND_X=FALSE#TRUE,FALSE驱动代码:mcu\custom\l1_rf\$(RF_MODULE)\l1d_custom_rf.hmcu\custom\l1_rf\$(RF_MODULE)\m12193.c3.设置PMIC–电源管理模块PMIC=MT6326#ChargeFunction,NONE,MT6305orMT63184.设置LCDLCD_MODULE=BROADMOBI68_09B_LCM#BasedontheLCMsolutions(evenmultipleLCMmodulesforthisproject)#SHOULDBEONEOFTHEFOLLOWINGS,basedontheLCM#MTKLCM-Mono,102x64#MTKLCM_COLOR-Color,120x160,forMT6218_MW001orMT6205_CEVB#ORDNANCELCM-Mono,112x64#KLMLCM-Color,128x128#INFOLCM-Color,128x128#TOPPOLY_LCM-Color,128x160,forMT6218B_EVB#SONY_LCMMAIN_LCD_SIZE=320X480#Todistinguishthemainlcdsize.#Wecanuseittocopythematchingresources,suchthemecomponents.h,Fontres.c,L_xxx.h,etc,toPLUTO_MMIfolderSUB_LCD_SIZE=NONE#NONE,48X64BW,64X96,96X64BW,96X64,128X128COM_DEFS_FOR_BROADMOBI68_09B_LCM=BROADMOBI68_09B_LCMTFT_MAINLCD#TFT_MAINLCD–LCD类型驱动代码:\custom\drv\LCD\$(LCD_MODULE)\lcd.c\custom\drv\LCD\$(LCD_MODULE)\lcd_hw.h\custom\drv\LCD\$(LCD_MODULE)\lcd_sw.h\custom\drv\LCD\$(LCD_MODULE)\lcd_sw_inc.h\custom\drv\LCD\$(LCD_MODULE)\lcd_rnd.h5.设置CameraCMOS_SENSOR=OV2655#OV9640,PAS105,OV9650#MT9D011,#6229uses2Msensor-MT9D011SENSOR_ROTATE=SENSOR_ROTATE_0#SENSOR_ROTATE_0,SENSOR_ROTATE_90,SENSOR_ROTATE_180,SENSOR_ROTATE_270HORIZONTAL_CAMERA=TRUE#FALSE,TRUE#Toenablehorizontalcamerafeature.#AddHORIZONTAL_CAMERAtoglobalcompileoptionwhenthevalueisTRUE.WEBCAM_SUPPORT=TRUE#TRUE,FALSEforWEBCAMERAsupportSENSOR_TYPE=RAW#RAW,YUV,DIRECT,NONE对摄像头FineTune直接联系厂商或MTK。驱动代码:mcu\custom\drv\camera\PROJECTNAME\camera_hw.cmcu\custom\drv\camera\PROJECTNAME\camera_tuning_oper.c6.FM设置FM_RADIO_CHIP=MT6188A1#NONE,TEA5767HN,FM_RADIO_RECORD=FALSE#TRUE,FALSE7.TP(TouchPanel)设置TOUCH_PANEL_SUPPORT=TP_INTERNAL#NONE,MT6301,MT6301B,TP_INTERNALTOUCH_PANEL_SHORTCUT_SUPPORT=FALSE#FALSE,TRUE#TRUEfortouchpanelsizeneedtobelargerthanLCDsize#Supporttouchpanelshortcutfunctionality8.MSDC–大容量设备管理器设置MSDC_CARD_SUPPORT_TYPE=MSDC_SD_MMC#MSDC_SD_MMCforSD/MMCcardsupport#MSDC_MSforMScardsupport#MSDC_MSPROforMS-PROcardsupport#NONE#MT6218B,MT6217,MT6219supportMSDC#MT6218,MT6205B,MT6208don'tsupportMSDC9.USB设置USB_SUPPORT=TRUE#MT6218BandMT6219chipsupportUSBUSB_MULTIPLE_COMPORT_ENABLE=FALSE#TRUE/FALSE.ToenableUSBmultiplecomportfeatureUSB_HS_SUPPORT=TRUE#TRUE,FALSEUSB_COM_PORT_SUPPORT=TRUE#TRUE,FALSEUSB_MASS_STORAGE_SUPPORT=TRUE#TRUE,FALSEUSB_IN_META_SUPPORT=FALSE#TRUE,FALSE#ToenableUSBsuuportinMETAmodefeatureUSB_IN_NORMAL_MODE_SUPPORT=TRUE#TRUE,FALSE#ToenableUSBmassstoragesupportinnormalmodeUSB_DOWNLOAD=NORMAL#NONEorNORMALorSECURE#ToenableFactoryDownload/ConnectionviaUSBcable10.AudioCodec–音频解码器AMRWB_DECODE=TRUE#TRUE/FALSEAMRWB_ENCODE=TRUE#TRUE/FALSE#MT6219DSPcannotsupportAMRWB_ENCODEwhenGPRSconnectionDAF_ENCODE=FALSE#TRUE,FALSEDAF_DECODE=TRUE#TRUE/FALSEAAC_DECODE=TRUE#TRUE/FALSEAAC_PLUS_DECODE=TRUE#TRUE/FALSEAAC_PLUS_PS_DECODE=FALSE#TRUE,FALSEMMF_DECODE=FALSE#TRUE,FALSEMMF_DECODEsupportinMT6218B,MT6217,MT6219andlaterchipWMA_DECODE=FALSE#MT6228supportWMADECODE11.Image/ViddoCodec–视频解码RawRGBèJPEG/JPEGèRawRGB转换,可以是硬件或软件进行解码。JPG_DECODE=JPG_HW#NONE,JPG_SW,JPG_HW.JPG_ENCODE=JPG_HW#NONE,JPG_SW,JPG_HW.GIF_DECODE=TRUE#TRUE/FALSEPNG_DECODE=PNG_HW#NONE,PNG_HW,PNG_SWMJPG_DECODE=FALSE#TRUE/FALSEMJPG_ENCODE=FALSE#TRUE/FALSEMP4_DECODE=TRUE#TRUE,FALSEMP4_ENCODE=TRUE#TRUE,FALSE12.BT–蓝牙BLUETOOTH_SUPPORT=BTMTK_MT6612#NONE,BTMTK,BTMTK_MT6601,BTMTK_MT6612,BTMTK_MT6612,BTMTK_MT6616BLUETOOTH_VERSION=BT_VER_30#NONE,BT_VER_PRE21,BT_VER_21,BT_VER_3013.IrDa–红外IRDA_SUPPORT=FALSE#IRDAsupportfeature14.MS(MitionSensor)-加速传感器MOTION_SENSOR_SUPPORT=NONE#NONE,KXP84_SPI,KXP84_I2C,KXP74_SPI,MXC6202_I2C,MMA7660_I2C,KXTF9_I2C#Formotionsensorfunctionsupportornot.15.EMI配置设备类型为NANDFlash的make文件配置:NAND_FLASH_BOOTING=ONDEMAND#NONE,ENFB,ONDEMAND,MIXED,BASIC#NONE:NORXIPProjectandit'snotNANDFLASHBOOTING#ENFB:MMIImagesandstringputonTHIRD_ROManddynmaicloadintoRAMbyapplication.DefaultforMT6228/29/30#ONDEMAND:MMIResourceandSomeNon-Real-TimeAppROputonNANDandon-demandpagein.#ARM9MMURequired.DefaultforMT6235/38#MIXED:BothENFBandOn-DemandPageInmechanismenabled.ARM9MMURequired.PickthistosupportMBAFeature.#BASIC:NandFlashBootingisturnedon,butnoneofENFBandONDEMANDexists.OnlyROMandSECONDARY_ROM.NAND_SUPPORT=TRUE#NANDSUPPORTSYSTEM_DRIVE_ON_NAND=TRUE#FALSE:SystemDriveonNORflash#TRUE:SystemDriveonNANDflashFOTA_UPDATE_PACKAGE_ON_NAND=FALSE#TRUE,FALSE设备类型为NORFlash的make文件配置:NAND_FLASH_BOOTING=NONENAND_SUPPORT=FALSESYSTEM_DRIVE_ON_NAND=FALSE文件位置:mcu\tools\MemoryDeviceList\MemoryDeviceList_XXXX.xls在数据库文件中查找是否有我们用到的EMI类型型号,如果没有则MTK不支持,如果有则写入EMI配置文件:mcu\custom\system\PROJECTNAME\custom_memorydevice.h第一步:设置设备类型。/*****************************************************************************Step1:SpecifymemorydevicetypeanditscompletepartnumberPossiblememorydevicetype:NOR_RAM_MCP,LPSDRAM,NOR_LPSDRAM_MCP*****************************************************************************/#defineMEMORY_DEVICE_TYPELPSDRAM#defineCS0_PART_NUMBERH8BCS0SI0MBR//EHD013111MA_60//如果设备类型为NOR_RAM_MCP,则需要如下配置://#defineCS0_PART_NUMBERLRS1828C//#defineCS1_PART_NUMBERLRS18//CS0和CS1要一致,PART_NUMBER则根据实际通过数据库xls文件查询。第二步:设置FLASH和RAM访问类型。/*****************************************************************************Step2:SpecifyaccesstypeforNOR_RAM_MCP;forLPSDRAM,justassignUNDEF_ACCESStobothitems(NOR_ACCESS_TYPEandRAM_ACCESS_TYPE)Possibleaccesstypes:ASYNC_ACCESS,SYNC_ACCESS,UNDEF_ACCESS*****************************************************************************/#defineFLASH_ACCESS_TYPESYNC_ACCESS#defineRAM_ACCESS_TYPESYNC_ACCESS//设置对于LPSDRAM类型来说,这项忽略,不过一般选UNDEF_ACCESS。第三步:设置NOR_FDM版本,支持大容量的NOR-FLASH/*****************************************************************************Step3:FDMVersionChooseMTKNORFDMisupgradedto5.0from2006/Q3tosupportlargeNOR-flashdisk(multi-bank),forexample,diskspacelargerthan64blocks.ThemajordifferenceofNORFDM5.0andNORFDM4.0asbelow:1.RAMconsumptionTomanage32MBINTELM18NOR-flashdisk,FDM5.0consumes1KB,butFDM4.0takes32KB.2.AddressableblocknumbersTheaddressablespaceofNORFDM5.0is65K-1blocks,butNORFDM4.0islimitedat128-1blocks.3.IdlereclaimandmanualreclaimareimplementedonNORFDM5.0.ToenableNORFDM5.0onNOR-flashdisk,pleaseenablethefollowingdefinitionandcustomizecustom_flash_norfdm5.c;theoptionisswitchon/offatcustomersitewithoutdelivernewlibrary.[REMIND]========Tomanagesmalldiskspace,likesmallerthan64blocks,FDM4.0isrecommended.*****************************************************************************///#define__NOR_FDM5__//由于我们使用LPSDRAM,所以不用定义//一般大于128个blocks才启用,否则注解掉。第四步:FAT配置存储区可划分为代码区和文件存储区,而文件存储去有可分为用户区域和系统区域,系统区域可用来放NVRAM和MMS文件。文件存储区用户区域|系统区域||很多NOR-Flash手机通常不舍用户区域,而NANDFlash一般会设置一定的用户区域。如果是NORBooting类型(例子)://文件系统起始位置为14MB处,也就是说代码区域就是从0x0000000~0x0E00000#defineNOR_BOOTING_NOR_FS_BASE_ADDRESS0x0E00000//文件系统总的容量2MB,包括用户区域和系统区域#defineNOR_BOOTING_NOR_FS_SIZE0x0200000//用户区域500个SECTORS,每个SECTOR为512Bytes,这样总共用户区域就是0.25MB#defineNOR_BOOTING_NOR_FS_FIRST_DRIVE_SECTORS500如果是NAND-FLASHBooting类型(例子)://文件系统起始位置为64MB处,也就是说代码区域就是从0x00000000~0x04000000#defineNAND_BOOTING_NAND_FS_BASE_ADDRESS0x04000000//文件系统总的容量192MB,包括用户区域和系统区域#defineNAND_BOOTING_NAND_FS_SIZE0x0C000000//用户区域262144个SECTORS,每个SECTOR为512Bytes,这样总共用户区域就是128MB#defineNAND_BOOTING_NAND_FS_FIRST_DRIVE_SECTORS262144还有一种变态的情况就是,NOR-BOOTING,但是文件系统是NAND的,这种情况基本较少,不翻译了,将就这看吧:***********************************************************************Step5:ForNOR-XIPconfiguration,if1."SYSTEMDRIVEONNAND"or2."SYSTEMDRIVEONNOR"andFOTA"UPDATEPACKAGEONNAND"featureisenabled.UsersareresponsibletospecifyFS(filesystem)regioninformationonNAND-flashhere!Step1.StartaddressofFSregiononNAND-flash,Step2.TotalFSsizeonNAND-flashdiskStep3.Thefirstdrive(orpartition)sizeofFSregion.ifnoadditionaldriveonNAND-flashdisk,itshouldbe0.Formoredetails,pleaserefertoREMIND1and2.Forexample,on128MBNAND-flash,becausecodeisalreadylocatedonNORflash,total128MBNAND-flashspaceisreservedforNAND-flashdisk.Reserve~110MBforuserdrive,remainaround15MBforsystemdrive.#defineNOR_BOOTING_NAND_FS_BASE_ADDRESS0x00000000#defineNOR_BOOTING_NAND_FS_SIZE0x08000000//128MB#defineNOR_BOOTING_NAND_FS_FIRST_DRIVE_SECTORS220000//110000KB[REMIND]========1.Itisspecialforflashdiskwhichhastwodrives(orpartitions),thefirstleadingisuserdrive,visibleonUSBdisk,thesecondmaybesystemdrive,andinvisiblefromUSBdisk.2.Forprojectswith__UP_PKG_ON_NAND__defined,NOR_BOOTING_NAND_FS_FIRST_DRIVE_SECTORSwillbeignored.Thatis,NANDflashisallowedtocreateonlyonedrive(orpartition)inthiscase.3.For"SYSTEMDRIVEupdatepackagewillbelocatedinthetopofFSregionbydefault.Auto-Genwillreserverequiredspaceautomatically.[VERYIMPORTANTNOTICE]=======================1.Thevaluesinstep1~3MUSTbesetif__FS_SYSDRV_ON_NAND__or__UP_PKG_ON_NAND__isdefined!!2.ThespareareaisexcludingfromtheFSSPACE!!3.Pleaseassigntheexactintegervalueintermsofsectors(onesectorequalto512Bytes)inNOR_BOOTING_NAND_FS_FIRST_DRIVE_SECTORS.MUSTNOTassignas(TOTAL_FS_SIZE-SIZE_OF_SYSTEM_DRIVE),becausesystemwillkeepsomespacesfordiskmanagement.*****************************************************************************/#defineNOR_BOOTING_NAND_FS_BASE_ADDRESS0x00000000#defineNOR_BOOTING_NAND_FS_SIZE0x08000000#defineNOR_BOOTING_NAND_FS_FIRST_DRIVE_SECTORS220000第五步:从新生成EMI配置和SCATTER文件。在project.mak文件中SYSGEN_ENABLE=TRUEMake[prject_name]umtsemiclean–先清理emi配置Make[prject_name]umtssysgen--生成emi和scatter16.使用DrvTool对GPIO/GPO,EINT,ADC,KEYPAD等进行配置,生产驱动代码。首先确认:DRV_CUSTOM_TOOL_SUPPORT=TRUE,否则不能使用DrvTool配置,这个设置将启用__CUST_NEW__宏。DrvTool的路径为:mcu\custom\drv\Drv_Tool\DrvGen.exe在工程中,有一个已经配置好的默认驱动配置文件codegen.dws,位于:mcu\custom\drv\misc_drv\PROJECTNAME\codegen\16.1打开DrvTool首先要保证project.mak文件中:DRV_CUSTOM_TOOL_SUPPORT=TRUE运行工具,运行界面如下:点击Open按钮打开刚才的codegen.dws,然后单击Edit按钮可进入编辑界面。16.2GPIO/GPO设置。不同的平台有不同GPIO/GPO口数量。如MT6268平台,有99个GPIO口,无GPO口。切换到GPIO设置页面,界面如下:可设置的GPIO/GPO口如下:GPIO_DIR(方向控制寄存器)对应Def.Dir列GPIO_PULLEN(上位/下拉寄存器)对应InPullEn列GPIO_DINV(输入倒置寄存器)对应INV列GPIO_DOUT(数据输出寄存器)对应Out列GPIO_DIN(数据输入寄存器)对应In列GPIO_MODE(模式设置寄存器)对应M0/M1/M2/M3列参考硬件工程师提供的GPIO/GPO配置表进行设置。16.3设置EINT(外部中断)。中断有耳机插入检测中断,触摸屏中断,充电中断等,参考硬件工程师提供的EINT配置表设置EINT。16.3ADC设置ADC有电池电压通道,充电电流感应电压通道,USB检测通道等,详细参考硬件工程师提供的ADC配置表设置ADC。16.4keypad设置键盘的硬件实现是一个二维矩阵,交叉点代表一个按键。详细参考硬件工程师提供的键盘矩阵配置表设置按键定义。17.PWM(脉宽调制)设置-主要用于对屏幕背光灯、按键背光灯、闪光灯等亮度的设置调整。文件路径:mcu\custom\app\PRJECTNAME\nvram_user_config.ckal_uint32constNVRAM_EF_CUST_HW_LEVEL_TBL_DEFAULT[]={/*屏幕背光灯*/200,20,/*PWM1Level1*/200,40,/*PWM1Level2*/200,60,/*PWM1Level3*/200,80,/*PWM1Level4*/200,100,/*PWM1Level5*//*按键背光灯*/200,0,/*PWM2Level1*/200,0,/*PWM2Level2*/200,0,/*PWM2Level3*/200,0,/*PWM2Level4*/200,0,/*PWM2Level5*//*闪光灯*/200,20,/*PWM3Level1*/200,40,/*PWM3Level2*/200,60,/*PWM3Level3*/200,80,/*PWM3Level4*/200,100,/*PWM3Level5*///LCD对比度设置。#if(definedMTKLCM)34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,#elif(definedMTKLCM_COLOR)/*MainLCDcontrastlevel1~15*/148,149,150,151,152,153,154,155,156,158,160,162,164,166,168,#else/*MainLCDcontrastlevel1~15*/120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,#endif/*MainLCDBiasParam(Reserved)*/0,0,0,0,0,/*MainLCDLinerateParam(Reserved)*/0,0,0,0,0,/*MainLCDTemperatureParam(Reserved)*/0,0,0,0,0,//子LCD对比度/*SubLCDcontrastlevel1~15*/20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,/*SubLCDBiasParam(Reserved)*/0,0,0,0,0,/*SubLCDLinerateParam(Reserved)*/0,0,0,0,0,/*SubLCDTemperatureParam(Reserved)*/0,0,0,0,0,//电池电量等级设置。/*BatteryvoltageLevel*/3350000,/*LowBatteryPoweroff*/3400000,/*LowBattery*//*batterylevel1~8*/3550000,3640000,3740000,3870000,9999999,9999999,9999999,9999999,/*电池的等级对应下面枚举。文件位于:mcu\ps\l4\include\device.htypedefenum{BATTERY_LOW_POWEROFF=0,BATTERY_LOW_TX_PROHIBIT,BATTERY_LOW_WARNING,BATTERY_LEVEL_0,BATTERY_LEVEL_1,BATTERY_LEVEL_2,BATTERY_LEVEL_3,BATTERY_LEVEL_4=BATTERY_LEVEL_3,/*BATTERY_LEVEL_4*/BATTERY_LEVEL_5=BATTERY_LEVEL_3,/*BATTERY_LEVEL_5*/BATTERY_LEVEL_6=BATTERY_LEVEL_3,/*BATTERY_LEVEL_6*/BATTERY_LEVEL_LAST=9}battery_level_enum;*///=======================================================================200,20,/*PMIC6318PWMLevel1*/200,50,/*PMIC6318PWMLevel2*/200,80,/*PMIC6318PWMLevel3*/200,90,/*PMIC6318PWMLevel4*/200,100/*PMIC6318PWMLevel5*/};文件路径:mcu\custom\drv\misc_drv\PROJECTNAME\custom_hw_default.ckal_uint32PWM1_Level_Info[PWM_MAX_LEVEL][2]={/*Freq,duty*/{200,20},/*Level1*/{200,40},/*Level2*/{200,60},/*Level3*/{200,80},/*Level4*/{200,100}/*Level5*/};kal_uint32PWM2_Level_Info[PWM_MAX_LEVEL][2]={/*Freq,duty*/{200,20},/*Level1*/{200,40},/*Level2*/{200,60},/*Level3*/{200,80},/*Level4*/{200,100}/*Level5*/};kal_uint32PWM3_Level_Info[PWM_MAX_LEVEL][2]={/*Freq,duty*/{200,20},/*Level1*/{200,40},/*Level2*/{200,60},/*Level3*/{200,80},/*Level4*/{200,100}/*Level5*/};//PWM4,5,6foroldPWNconfigurationbeginkal_uint32PWM4_Level_Info[PWM_MAX_LEVEL][2]={/*Freq,duty*/{200,20},/*Level1*/{200,40},/*Level2*/{200,60},/*Level3*/{200,80},/*Level4*/{200,100}/*Level5*/};//WeusePWM5asLCDbacklight//AndtheLCDbacklightcomponentisconfiguredinsidedtoinvertthesignalfromPWM//Soweneedtoinvertdutysettingforeachlevelkal_uint32PWM5_Level_Info[PWM_MAX_LEVEL][2]={/*Freq,duty*/{200,80},/*Level1*/{200,60},/*Level2*/{200,40},/*Level3*/{200,20},/*Level4*/{200,0}/*Level5*/};kal_uint32PWM6_Level_Info[PWM_MAX_LEVEL][2]={/*Freq,duty*/{200,20},/*Level1*/{200,40},/*Level2*/{200,60},/*Level3*/{200,80},/*Level4*/{200,100}/*Level5*/};//PWM4,5,6foroldPWNconfigurationendkal_uint32Alter_Level_Info[PWM_MAX_LEVEL][2]={/*Freq,duty*/{200,20},/*Level1*/{200,40},/*Level2*/{200,60},/*Level3*/{200,80},/*Level4*/{200,100}/*Level5*/};18.声音模块设置。18.1声音模块和用户之间的数据传输通道用下面宏来定义,文件位置:mcu\\interface\l1audio\l1audio.h/**//*AudioOutputDeviceDefinition*//**/#defineL1SP_BUFFER_00x01/*NOTE:Don'tusebufferdefinitiondirectly*耳机语音数据/#defineL1SP_BUFFER_10x02/*Usespeakerdefinitionbelow*手机声音/#defineL1SP_BUFFER_ST0x04/*耳机左右声道声音*/#defineL1SP_BUFFER_EXT0x08#defineL1SP_BUFFER_EXT_G0x10#defineL1SP_STEREO2MONO0x20/*Donotusethistermforspeakerdefinition*/#defineL1SP_BUFFER_ST_M(L1SP_BUFFER_ST|L1SP_STEREO2MONO)#defineL1SP_EXT_DAC_BUF00x40#defineL1SP_EXT_DAC_BUF10x80#defineL1SP_LNA_00/*手机麦克风数据*/#defineL1SP_LNA_11/*耳机麦克风*/#defineL1SP_LNA_FMRR318.2设置音乐通道,文件路径:mcu\\custom\audio\PROJECTNAME\audcoeff.c//普通麦克风通道constunsignedcharL1SP_MICROPHONE1=L1SP_LNA_0;//耳机模式麦克风通道constunsignedcharL1SP_MICROPHONE2=L1SP_LNA_1;//普通听筒通道constunsignedcharL1SP_SPEAKER1=L1SP_BUFFER_0;//耳机模式听筒通道constunsignedcharL1SP_SPEAKER2=L1SP_BUFFER_ST;//音量放大器输出通道constunsignedcharL1SP_LOUD_SPEAKER=L1SP_BUFFER_ST_M|L1SP_BUFFER_EXT;18.3音量设置,文件路径:mcu\\custom\audio\PROJECTNAME\nvram_default_audio.ckal_uint8constNVRAM_EF_CUST_ACOUSTIC_DATA_DEFAULT[]={…},通过这个数组设置音量增益。18.4设置扩音。文件:mcu\custom\audio\PROJECTNAME\afe.c首先要设置正确gpio口,修改如下:voidAFE_SwitchExtAmplifier(charsw_on){……//这个变量要在DrvTool中配置,否则没有该变量。//注意要在__CUST_NEW__宏内。externconstchargpio_afe_amplifier_pin;if(sw_on){GPO_WriteIO(1,gpio_afe_amplifier_pin);}Else{GPO_WriteIO(0,gpio_afe_amplifier_pin);}……}然后:不知道啥东西??voidAFE_Initialize(void){///AFE_VAC_CON0::VCALIischipdependent,willbesetinl1audio\afe2.c///immediatelyafterthisfunctioniscalled.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论