MTK的驱动和MMI经验总结.docx

上传人:b****8 文档编号:30376512 上传时间:2023-08-14 格式:DOCX 页数:53 大小:446.51KB
下载 相关 举报
MTK的驱动和MMI经验总结.docx_第1页
第1页 / 共53页
MTK的驱动和MMI经验总结.docx_第2页
第2页 / 共53页
MTK的驱动和MMI经验总结.docx_第3页
第3页 / 共53页
MTK的驱动和MMI经验总结.docx_第4页
第4页 / 共53页
MTK的驱动和MMI经验总结.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

MTK的驱动和MMI经验总结.docx

《MTK的驱动和MMI经验总结.docx》由会员分享,可在线阅读,更多相关《MTK的驱动和MMI经验总结.docx(53页珍藏版)》请在冰豆网上搜索。

MTK的驱动和MMI经验总结.docx

MTK的驱动和MMI经验总结

MTK的驱动和MMI经验总结

1.Windows必须安装在C盘,否则会出现modis编译问题。

2.语言和输入法移植

2.1资源修改–这是我们需要修改的,2.2开始MTK已经帮你做好了。

2.1.1在mcu\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.1Zi

a.新建mcu\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

将代码放到下面目录:

mcu\vendor\inputmethod\T9\project\PROJECTNAME\v?

_official\

移植比较麻烦,具体参考:

SOP_T9_Input_Method_Resource_Generation_07A.pdf

SOP_T9_Input_Method_Resource_Generation_08B.pdf

SOP_T9_Input_Method_Resource_Generation_09BV2.pdf

2.1.3.3CStar不说了

2.2SSC

有几个文件需要修改。

a.mcu\\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.3mcu\\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.pdf和

SOP_Language_and_Input_Method_Porting_Guide_08A.pdf文件。

3.如何修改软件版本号?

修改下面文件:

mcu\make\Verno_.bld

4.如何修改工程命令?

如将默认*#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。

文件:

mcu\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_EXIST

custom1_create,KAL_FALSE

#else

NULL,KAL_FALSE

#endif

10,0

},

/*INDX_CUSTOM2*/

{"CUST2","CUST2Q",211,1024,

#ifdefCUSTOM2_EXIST

custom2_create,KAL_FALSE

#else

NULL,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.mak

1.设置BB

PLATFORM=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_EVB

MCU_CLOCK=MCU_245_76M

#MCUclocksetting,MCU_13M,MCU_26M,MCU_39M,MCU_52M,MCU_104M

 

MCU_DCM=DCM_ENABLE

#DCM_ENABLE,DCM_DISABLE

#DynamicClockManagement

#AvailableBBchip:

MT6217,MT6226,MT6226M,MT6227,MT6228,MT6229...etc.

EXT_CLOCK=EXT_26M

#Externalclocksourcesetting,EXT_13M,EXT_26M

2.设置RFModule

RF模块:

UMTS_RF_MODULE=CUSTOM_MT6160

RF_MODULE=AD6546_CUSTOM

晶振类型:

AFC_VCXO_TYPE=VCTCXO

#VCTCXO:

VCTCXO

#VCXO:

VCXO

#VCXO_SC:

VCXOwith7areaslopecontrol

#VCXO_TC:

VCXOwithtemperaturecompensation

#VCXO_SC_TC:

VCXOwith7areaslopecontrol&temperaturecompensation

COM_DEFS_FOR_CUSTOM_MT6160=MT6160_RFCUSTOM_MT6160

UMTS_BAND_I=TRUE#TRUE,FALSE

UMTS_BAND_II=TRUE#TRUE,FALSE

UMTS_BAND_III=FALSE#TRUE,FALSE

UMTS_BAND_IV=FALSE#TRUE,FALSE

UMTS_BAND_V=TRUE#TRUE,FALSE

UMTS_BAND_VI=FALSE#TRUE,FALSE

UMTS_BAND_VII=FALSE#TRUE,FALSE

UMTS_BAND_VIII=FALSE#TRUE,FALSE

UMTS_BAND_IX=FALSE#TRUE,FALSE

UMTS_BAND_X=FALSE#TRUE,FALSE

驱动代码:

mcu\custom\l1_rf\$(RF_MODULE)\l1d_custom_rf.h

mcu\custom\l1_rf\$(RF_MODULE)\m12193.c

3.设置PMIC–电源管理模块

PMIC=MT6326

#ChargeFunction,NONE,MT6305orMT6318

4.设置LCD

LCD_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_LCM

MAIN_LCD_SIZE=320X480

#Todistinguishthemainlcdsize.

#Wecanuseittocopythematchingresources,suchthemecomponents.h,Fontres.c,L_xxx.h,etc,toPLUTO_MMIfolder

SUB_LCD_SIZE=NONE

#NONE,48X64BW,64X96,96X64BW,96X64,128X128

COM_DEFS_FOR_BROADMOBI68_09B_LCM=BROADMOBI68_09B_LCMTFT_MAINLCD

#TFT_MAINLCD–LCD类型

驱动代码:

mcu\custom\drv\LCD\$(LCD_MODULE)\lcd.c

mcu\custom\drv\LCD\$(LCD_MODULE)\lcd_hw.h

mcu\custom\drv\LCD\$(LCD_MODULE)\lcd_sw.h

mcu\custom\drv\LCD\$(LCD_MODULE)\lcd_sw_inc.h

mcu\custom\drv\LCD\$(LCD_MODULE)\lcd_rnd.h

5.设置Camera

CMOS_SENSOR=OV2655

#OV9640,PAS105,OV9650

#MT9D011,

#6229uses2Msensor-MT9D011

SENSOR_ROTATE=SENSOR_ROTATE_0

#SENSOR_ROTATE_0,SENSOR_ROTATE_90,SENSOR_ROTATE_180,SENSOR_ROTATE_270

HORIZONTAL_CAMERA=TRUE

#FALSE,TRUE

#Toenablehorizontalcamerafeature.

#AddHORIZONTAL_CAMERAtoglobalcompileoptionwhenthevalueisTRUE.

WEBCAM_SUPPORT=TRUE

#TRUE,FALSEforWEBCAMERAsupport

SENSOR_TYPE=RAW

#RAW,YUV,DIRECT,NONE

对摄像头FineTune直接联系厂商或MTK。

驱动代码:

mcu\custom\drv\camera\PROJECTNAME\camera_hw.c

mcu\custom\drv\camera\PROJECTNAME\camera_tuning_oper.c

6.FM设置

FM_RADIO_CHIP=MT6188A1#NONE,TEA5767HN,

FM_RADIO_RECORD=FALSE#TRUE,FALSE

7.TP(TouchPanel)设置

TOUCH_PANEL_SUPPORT=TP_INTERNAL#NONE,MT6301,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1