您的位置:首页 > 其它

mtk平台,相关问题总结

2010-08-10 11:07 441 查看
http://hi.baidu.com/cwt0408/blog/item/f3766f1136ec26cfa7ef3fdc.html

编译前请将..customcommon vram_lid_statistics.h文件和tst文件夹的属性、plutommiCustomerCustomize下的GCML.txt改为可读写。

Release 版本的时候,MMI/MiscFramework/MiscFrameworkSrc/UCS2.c不能删除,因为,resgen要用倒ucs2.c

1:深路经覆盖浅路径文件
2:只有ADD_APPLICATION_MENUITEM,ADD_APPLICATION_MENUITEM2两种添加菜单方式
3:添加菜单的时候一定要,指定子菜单的个数
4:CmsWapMmsAdp.h文件中,如果是26项目,不要打开28开关
#define SUPPORT_MTK_6226
#if 0
#ifdef SUPPORT_MTK_6228
#define CMS_SURPPORT_PNG_BMP
#endif
#endif

5:Res_SAT.c中,如果用 移软的 库,要将
#ifndef CMS_NEW_APP
ADD_APPLICATION_MENUITEM((SERVICES_WAP_MENU_ID,MAIN_MENU_SERVICES_MENUID,0,SHOW,NONMOVEABLE|SHORTCUTABLE,DISP_LIST,
SERVICES_WAP_STRING_ID,SERVICES_WAP_IMAGE_ID));
#endif

注释掉

6:DataAccountDef.h中添加

#include "custom_mmi_default_value.h"
用来防止
#ifdef MAX_GPRS_USER_NAME_LEN
#define MAX_GPRS_USERNAME MAX_GPRS_USER_NAME_LEN-1
#else
#define MAX_GPRS_USERNAME 15
#endif
#ifdef MAX_GPRS_PASSWORD_LEN
#define MAX_GPRS_USERPASSWD MAX_GPRS_PASSWORD_LEN-1
#else
#define MAX_GPRS_USERPASSWD 15
#endif
的偏差

7:头文件打不开,很可能在
make中的相应文件里,没有加这个路径
如:plutommi.inc文件中没有包含相应路径

8: user agent profile 在文件cmswapmmsadp.c

9:mtk 28, 在mms_send_message函数中,要将

MMS_SetMaxSize(gconfig.sendsize, gconfig.retrievesize);
放在

MMS_Init();
之后,否则,发彩信会重启
10:mms_init_global_param此函数中设置了mms的相关参数,
还有
mms_init_pre_setting_file_chinamobile

改为gconfigtemp.gprs_mode =4

[2 wap]
wap里的wap_init_pre_setting_file_chinamobile函数
帐号改为gWapTemp.gprs_mode = 14//WAP_SERVICE_CHINAMOBILE+GSM_NET_ACCOUNT;

11:cmswapmmsadp.h中有wap,mms相关设置

12:将开关
#if defined(CMS_NEW_APP) || defined(MMS_SUPPORT)
#define __MMI_STATUS_ICON_MMS__
#endif
打开,否则来彩信的时候没有未读图标

13:收发彩信的时候,底下的白色部分
修改mmi_mms_show_send_receive_status函数中的
UI_fill_rectangle(0,MMS_PROGRESS_INDICATOR_HEIGHT,UI_device_width-1,
10,UI_color(255,255,255));
14:
我们发了新版本给贵方,如果需要打trace请在手机上开启trace,方法:
1:Idle->输入*#34364#,选择第2项设备,--〉7项,set uart->1项 TST Config-〉
uart port选择uart1完成,重启

15:gif重复播放,gif图像消失的解决方式
(1)在播放前添加 gdi_image_gif_reset();

16:Idle 来短信 进入了短信inbox,没有进合一接口
#if defined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE)
extern void mmi_mms_entry_inbox(void);
#endif
void mmi_msg_exit_inbox_list_dummy(void)
{
memset(&currHistory, 0, sizeof(currHistory));

#if defined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE)
currHistory.scrnID = SCR_ID_MMS_INBOX;
#else

currHistory.scrnID = SCR_ID_MSG_INBOX_LIST;
#endif

SetMessagesCurrScrnID(0);
g_msg_cntx.MessagesScrnIdToDelHistoryNodes = SCR_ID_MSG_INBOX_LIST;
g_msg_cntx.MessagesScrnIdDelUptoHistoryNodes = SCR_ID_MSG_INBOX_LIST;

#if defined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE)
currHistory.entryFuncPtr = mmi_mms_entry_inbox;
#else
currHistory.entryFuncPtr = mmi_msg_entry_inbox_list;
#endif
17:filter.txt文件用于模拟器的编译,此文件中定义的开关,都将被模拟器过滤掉,所以如果第三方release的软件不能支持模拟器就要将其在模拟器上过滤掉

18:
MTK23:我们模拟器在开机无法正常启动时,可以将MTK23_07AW0736MPmodisWIN32FSDRIVE_CNVRAMNVD_DATA下的数据文件全部清除,在从新启动模拟器,一般都可以成功启动。这是因为我们在修改nvram值的时候,这个目录下的值没有从新生成,所以会出现错误

19:editor出现滚动条覆盖虚拟键盘的情况,有可能是mmi_pen_editor_vk_show()中算的changed_height不对

20:去掉手机触摸屏校验在PhnsetNeedFactoryDefaultCalibration()中

21:recorder在退出的时候,要清除与hmchip之间所注册的handler
此外:mdi_video_rec_save_file()中一句代码不应该注释掉,记得要打开media_vid_file_merge()
vis_merge_recorder_file()是用来保存视频文件的

22:recorder在stop的时候,没有stop preview,所以我们要加上stop preview的消息,然后我们还需要close file。media_vid_close()是player用的

23默认支持超级终端,如果要使用Mtk的Trace,设置步骤:
1 . 输入*#3646633#,进入工程模式
2. DeviceSet UART Trace setting 选择Trace setting ON 手机重起之后就可以了
3. 如果只关心cdma_print 的Trace信息。只选择MOD_DISPATCH模块即可

24:指定模拟器heap大小,ZM300 300指定义的大小(手写时候出现的问题)

25:手写在imeres.c中,参数
IME_HAND_WRITING_ATTRIB(MMI_FALSE, IME_HAN_WRITING_INVALID_INPUT_MODE, GUI_VIRTUAL_KEYBOARD_TRAY, PEN_EDITOR_SIMPLIFIED_CHINESE)中
PEN_EDITOR_SIMPLIFIED_CHINESE用于在手写时,获取当前的输入法后,此参数将被mmi_pen_editor_get_hand_writing_type_by_input_mode()返回并传给手写模块,用于识别当前输入法,给出相近文字

26:手写可以用库来调试,步骤如下:
1:用wentonginterface.c替换掉原来的文件,并将WTRecognizeUShort定义换为WTRecognize。
#ifdef DEBUG_IN_WIN32_FOR_HANDWRIGING
WTError WTRecognize(unsigned short * PointData,short PointsNumber,unsigned short *CandidateResult,char *RamAddress);
#else
WTError WTRecognizeUShort(unsigned short * PointData,short PointsNumber,unsigned short *CandidateResult,char *RamAddress);
#endif
2:RecoCore.obj为手写模拟器的库,加入即可。此过程遇到模拟器heap大小问题,如25所示修改

27:修改editor默认输入法的时候,在Nvram_cust_pack.c中数组
kal_uint8 const NVRAM_CACHE_SHORT_DEFAULT[NVRAM_CACHE_SIZE]=
{
}
中修改
0x0E, 0x00,
记住此时还需修改
0x0E, 0x00,
后者用于恢复出厂设置的时候,系统来取值

修改nvram的时候,要相应升级custom_nvram_editor_data_item.h中,
#define NVRAM_EF_CACHE_SHORT_LID_VERNO "004"

我们现在发现一个问题,如果我们修改了nvram里面的一个默认设置的值,如果我们不修改对应的版本号的话,在升级手机的时候就必须要format才可以正常读出我们新设置的值,但是在实际的操作中,这样会把经过硬件校准过的数据清除掉(尤其是客户在量产后进行升级),会造成一些预想不到的错误,所以请大家在修改了nvram的值以后,一定要修改相应的版本号。举例如下:
如果我们修改了:NVRAM_EF_PHB_COMPARE_DIGIT_DEFAULT
那应该同时修改与其对应的NVRAM_EF_PHB_COMPARE_DIGIT_LID的版本:VER(NVRAM_EF_PHB_COMPARE_DIGIT_LID)即:NVRAM_EF_PHB_COMPARE_DIGIT_LID_VERNO

一般的情况,我们修改的方法是:增加一个版本号
请各个review leader在给大家review的时候一定要注意这个问题。
28:
将lib解开的命令
ar -x custom.lib
将文件打包成lib的命令
ar -crus custom.lib *.obj

29:vc模拟器出现error LNK2005错误,如:
mstdXXXX.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCD.lib(delop.obj)

这是因为两个vc库冲突,把后者LIBCD.lib在vc设置中屏蔽掉即可。
方法如下:
Vc设置==》link==》选择input选项,在ignore libraries中写上LIBCD.lib(要屏蔽的库)
即可

30:mtk底层声音转换在InitializeResourceVariables()函数中,诸如:
resource_tones=
resource_midis =
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: