天天看点

MTK Q&A(推荐-方案公司常见问题汇集)

为何 0836 的6225 一开始没有信号?

m12196.c 里面 power on 、power off 的动作只针对6205有写过实际代码,但是对6225 及其他平台没有相应代码,修改即可

CTA 软件应该开关哪些功能?

对于目前很多公司而言,不希望花费很多金钱和时间去测试 GPRS 、蓝牙等相关协议;版本号对于测试来说,一定要是相同的,不能变化

1、去掉 GPRS 相关的功能

2、去掉 蓝牙相关的功能

3、增加 CTA 版本号,并保证其在测试前后总是一直的。

4、增加免费游戏

5、SP功能全部去掉。

CTA 版本号应该怎样做?

1、CTA 版本号的目的是为了保证手机在CTA送测期间,被查询到的版本号一致,而实际的版本号通过另外的方式可以查询到,所以生成了一个CTA版本号。

2、由于我们有一个硬件版本号查询的接口,目前就借用了这样一个接口,因此我们实际上只需要修改硬件版本号及其查询字串,就可以用作 CTA 版本号的查询了。

3、硬件版本号查询字串修改,需要找到 SSC_HW_VERSION 进行修改即可,

   而版本号则在对应的 VERNO.BLD 里面修改即可

如何添加一个自定义的 世界时间 地区,如越南 胡志明市?

找到 resource_world_clock_city.c 中与项目对应的数组

const TimeZoneStruct TimeZoneData[]

在其中添加世界时间的一项(位置无要求,程序会根据时区重新排序的):

{时区,地名字串,地名字串缩写,地名字串,地名字串缩写,1}

其中 时区可以上网查,比如北京为东8区 就为 +8 西区为负数

地名字串,地名字串缩写是自己添加字串资源

地图X坐标,地图Y坐标为找到我们实际用的地图背景,对应的地名 x,y坐标即可,用windows自带的画图工具就可查出来

最后一个参数照填就行

如何开启trace?

1、手机端设置

a、用工程模式字串,开启工程模式

b、进入【设备】->【Set UART】->【uart setting】

c、设定 【TST-PS Config】 等于 【UART 1】,【PS Config】等于【无】,[TST-L1 Config】等于【UART 1】

d、确定后,则手机端设置完成

2、PC端设置

a、打开CATCHER

b、【Config】->【Set Database Path】,选中与手机软件对应的db文件

c、【Control】->【Mode】->【Logging】,允许trace记录

d、【Config】->【Configuration RS232】, 选择合适的COM端口

e、【Control】->【Connect】,则可以开始trace

f、【Control】->【Set Filter】,设置需要显示的过滤器

为什么第一次开机的日期格式和默认回复出厂设置的日期格式不一致?

第一次开机使用 DATE_FORMAT 对应NVRAM里的值:

恢复出厂设置是使用 RESTORE_DEFAULT_DATE_FORMAT对应NVRAM里的值;

文件:Nvram_cust_pack.c(注意要修改相关的项目配置文件)

对应关系如下:

0-----DD-MMM-YYYY

1-----DD/MM/YYYY

2-----MM/DD/YYYY

3-----YYYY/MM/DD

4-----YYYY-MM-DD

5-----MMM DD,YYYY

默认开启UART为trace使用

1、目前在主干上面已在GPRS.MAK里面增加相应的宏,按需要把下面的宏设为TRUE即可:

# uart 默认为debug 使用

UART_FOR_DEBUG_DEFAULT = FALSE

#默认关闭TRACE,即FALSE

SIMTECH_DEBUG = FALSE

2、如果不是当前主干,则可以在 Nvram_common_config.c 里面,找到 

NVRAM_EF_PORT_SETTING_DEFAULT

将默认端口调换一下顺序即可,即:

把 99 修改为 0,0修改为99,注意只能修改端口相关的 0 和 99

如何修改工程模式启动字串?

查找 SSC_ENGINEERING_MODE,并修改其定义即可

真机工程为什么在模拟器上面编译不过?

1、target可以通过。

2、按照通常的步骤创建出模拟器

3、编译不通过。

为什么会这样?

1、通常情况下,在没有添加SP的时候是可以正常编译通过的。

2、对于某些SP,会存在没有vc的链接库的情况,导致链接不过。

3、对于某些SP,会导致windos.h里面的BOOL等宏定义被重定义,以至编译失败

4、某些我们自己田间的代码写法有问题,没有考虑target与模拟器的区别,别如直接调用了驱动的函数,而实际上在模拟器上面不存在这些函数.

如何修改默认时区?

同“如何修改默认城市”,因为没有一个默认时区的设置,只有默认城市。

首先,在通常情况下,是没有定义 __MMI_HIDE_HOMECITY__ 的,

所以会定义 __MMI_WCLOCK_CITY_LIST_3__

因此,当我们查找对应城市的时候,应该在被__MMI_WCLOCK_CITY_LIST_3__包含的代码段里面查找。

1、对应的城市,通过 mod_mmiPopulateWClockData 找到城市名称对应的 字串id,例如北京等于 STR_WCLOCK_CITY8 

2、查询 STR_WCLOCK_CITY8 对应的序号:

在 TimeZoneData 里面可以查看到, STR_WCLOCK_CITY8 处于 数组的第 9 给位置,即序号为 8(基于0 开始)

3、查找 NVRAM_CACHE_BYTE_DEFAULT 找到对应 CURRENT_CITY 的一个字节, 修改为对应的序号减一即可。

所以为 0x07

如何修改默认蓝牙设定名称?

BTMMICm.c里面,修改 MMI_BT_DEF_HOST_BT_NAME 的值即可

如何修改sensor的防闪烁频率?

因为某些国家的交流电频率与中国的不一致,

分别为50hz和60hz,可能在国外软件上面需要修改到

1、查找到对应的 VDOREC_DEFAULT_SETTING_BANDING 修改为 VDOREC_SETTING_BANDING_50HZ 或 VDOREC_SETTING_BANDING_60HZ

2、查找到对应的 CAMERA_DEFAULT_SETTING_BANDING 修改为 CAMERA_SETTING_BANDING_50HZ 或 CAMERA_SETTING_BANDING_60HZ

关于电话号码匹配的需求?如何让客户良好的给出电话号码匹配的规则?

修改下面宏的定义即可

PHONEBOOK_COMPARE_LENGTH

如何在pc上隐藏手机盘符,而只显示存储卡盘符?

1、0812, #define PARTITION_SECTORS     0

2、0836, #define NOR_FAT_PARTITION_SECTORS     0

或者采用另外一种方式:

custom_usb_ms_init 

中注释掉以下句子:

USB_Ms_Register_DiskDriver(&USB_NOR_drv);

电话本条数如何修改?

gprs.mak 中有

PHB_SIM_ENTRY     = 250 # Phonebook Entry Number in SIM: 100, 200

PHB_PHONE_ENTRY = 200 # Phonebook Entry Number in NVRAM: 100, 200

PHB_LN_ENTRY = 20 # Call log; Last Number Entry Number: 10, 20, 50

简单的讲,设置过多会编译不过。

如何修改字体?

1、使用mtk提供的range 生成一个range文件,使用工具FontEdit.exe 生成相应的bdf文件。

2、使用mtk工具MCT 来转换bdf文件到C,h文件。

3、复制头文件到相应的目录下;如vendor/font/MTK/official/project/plutommi/content/inc/MainLcd176X220

4、复制C文件中的相关信息到Fontres.c 【vendor/font/MTK/official/project/plutommi/content/src/MainLcd176X220/】

      const RangeData ××××_RangeData[####]={

         const RangeDetails ××××_RangeInfo={

         sCustFontData Pluto_×××× =

               注意

                       {FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},

                     设置;

5、在 FontRes.c 中增加 此种字体的头文件包含;

6、检查 FontFamily 部分,查看前面设置是否正确 ():

    pluto_××_standardFamily  

怎么样增加字体库?

1、制作字库中计划包含的所有字符的unicode的range段;参见fontres.c

2、使用fontEdit工具生成bdf文件;这一步要求使用正确的字库,如Pmingliu.ttf 华文中宋.ttf,并设置正确的charset;

3、使用mct工具转换bdf文件到c文件。

4、移植到fontres.c 并把头文件复制到相应inc目录。

5、编译 r mmiresource,上机验证。

还有如果找不到合适的ttf等字库的情况:

可以自己画bmp位图字体,使用mct工具加到bdf文件中;

关于字体字库是一个专门的学问,有兴趣查查http://www.microsoft.com/typography/otspec/default.htm

颜色配置:

短信阅读界面信息头背景颜色:EMS_viewer_header_background_filler

颜色选择绘制:show_highlighted_inline_color_select_menuitem()

状态栏背景颜色:status_icon_bar_filler_defaultTheme

单行编辑器光标颜色:inline_edit_cursor_color_defaultTheme

单行编辑高亮背景颜色:inline_edit_focussed_filler_defaultTheme

多行编辑界面行分隔线颜色:gui_create_EMS_input_box()--->b->underline_color

编辑区域字体颜色:inputbox_normal_text_color_defaultTheme

编辑界面选字区域:1>箭头 mmi_pen_editor_draw_arrow()

                  2>选字区域背景颜色,选中背景等 candidate_singleline_inputbox_theme

编辑界面虚拟键盘按中键背景颜色:virtual_keyboard_key_down_filler_defaultTheme

popup屏幕背景颜色:popup_screen_background_color_defaultTheme

popup屏幕字体颜色:popup_screen_border_color_defaultTheme

滚动条颜色:scrollbar_background_filler_defaultTheme

滚动条滑块颜色: scrollbar_indicator_filler_defaultTheme

list菜单项高亮背景颜色:list_selected_item_filler_defaultTheme

日历当前日期背景颜色:calendar_cell_current_DefaultTheme

校准界面字体颜色:UpdateCalibrationScreen()--->MMI_multiline_inputbox.normal_text_color

开机请等候界面字体颜色: ShowCategory9Screen()--->MMI_multiline_inputbox.normal_text_color

开机找网界面日期时间字体颜色: set_dt_display--->case DT_NETWORK_SEARCH

电子书字体颜色:ShowCategory75Screen()--->MMI_multiline_inputbox.normal_text_color

编辑区域默认背景颜色:inputbox_filler_defaultTheme(如**USB)

如何手动修改imei?

1. meta 工具

2. 连接好下载线,点击meta工具的reconnect ,按手机开机键;

3. 选择nvram editor ;选择手机软件对应database文件;

4、选择 NVRAM_EF_IMEI_IMEISV_LID 

5 、选择1 2 读取 即可得到imei号

6、点击imei号,可以修改号码;保存,即可修改imei号。

7、×#06# 查看显示imei号。

23c中有NVRAM_EF_IMEI_IMEISV_DEFAULT

默认IP号码是?

NVRAM_IP_NUMBER_DEFAULT

nvram_common_config.c 文件中是默认值设置的地方之一。

情景模式默认值?

NVRAM_PROFILES_DEFAULT

电子书默认设置?

NVRAM_EF_EBOOK_DEFAULT_VALUE

如何修改输入法的顺序?

6223、6225 中 修改const sIMEModeDetails mtk_gIMEModeArray[] 数组中的元素顺序;

如何设置出厂时间?

const kal_uint8 DEFAULT_HARDWARE_YEAR = 9; //2009 出厂时间系统默认时间

const kal_uint8 DEFAULT_HARDWARE_MON = 5;

const kal_uint8 DEFAULT_HARDWARE_DAY = 1;

custom_hw_default.c

如何设置UI界面元素的大小?

*   GUI Configuration                  配置都在这3个文件中;

*                  gui_switch.h     

*                   /        /

*           gui_config.h    wgui.h

6223C 08A 版本如上所述;

6225 gemini 同;

为何有的时钟闹铃不是准时的?

MMI Framework provides simple and well-defined interfaces for the applications written on top. Applications

have to register callback function with a timer ID. The Application callback handler is called when the timer

expires.

MMI supports two kinds of timers.

1. Alignment timers

These timers are not very accurate. But they keep on running even when the backlight of the LCD is

turned off. All the applications use these timers.

2. Non-Alignment timers

These timers are very accurate. They do not run when the backlight is turned off. All the UI

components use Non Alignment timers.

TIMER_IS_ALIGNMENT       0                    //Aligned timer

TIMER_IS_NO_ALIGNMENT 1                    //Non-aligned timer

stack_timer_struct base_timer1;

stack_timer_struct base_timer2;

base_timer1 is stack timer structure for non-alignment timer; base_timer2 is for alignment timer

参看文档 DD_FRM_FRAMEWORK_LAYER_08A.pdf

如何修改+PW拨号符号所在键?----by jordan.sg 

宏开关 CFG_MMI_MULTITAP_KEY_0     ,featurepluto or feature[Project]中设置。

MMi中相关宏有:

__MMI_MULTITAP_KEY_0__    ENABLE_DIALER_ZERO_KEY_MULTITAP

如何处理link error L6220E?----by jordan.sg 

1.Error: L6220E: Load region ROM size (9052664 bytes) exceeds limit (6291456 bytes).

   Not enough information to produce a SYMDEFs file.

一、确认flash 是否是我们需要的flash。 常用的有64MB 和128MB容量。

二、确认代码是不是new编译也是这个error;

三、查看代码增加了什么功能,一般是新功能或新加了一些Sp。

       只能尽量减少全局变量申请,变为动态申请空间。

       或关掉一些功能。

四、修改fat大小

    这一步有时奏效,但不建议。可能引起未知问题。

如何修改音频参数?----by jordan.sg 

nvram_default_audio.c     增益设置

情景模式

1、NOR   对应Normal 

2、HED          headset

3、HND          handfree

每种情景下有多种item

1、CTN      ---Call Tone

2、KEY      ----Keypad Tone

3、TVO     ----TV out

4、MIC      ----MICrophone

5、GMI      ----FM ,BUZ, buzzer

6、SPH      ----Speech Tone

7、MED     ----melody

8、SID      ----Side Tone

测试和实验室会联合给出一个表。按照此表对应设置即可。

如何修改 音频 FIR ?    ----by jordan.sg 

数字滤波器的基本概念 有限沖激响应 FIR

audcoeff.c

Default FIR Coefficients Table

Speech_Input_FIR_Coeff等几个项目。实验室工程师会给出值,直接替换即可

用模拟器模拟拨号、来电、短信等

1. 在modis上的菜单Tools àLuanch Catchers & NS 选项

2. 然后选择Catchers工具的.exe文件

3. 在MoDIS Network Simulator 框上,点击START按钮,然后点击Inject按钮,这时来到了可以模拟很多事情的界面,可以根据自己的需要,模拟来电、短信等。

mtk25 平台默认的是128Mbit flash memory 和 32Mbit SRAM,因为1BYTE等于8BIT,所以就是我们通常所说的是16M ROM和4M RAM,不过由于文件系统占用2M,这2M一般又被分为系统盘和用户盘,系统盘存储NV文件和MMS相关文件,对用户不可见,用户盘用户连上电脑就可以看 到,但由于一些原因,有不少手机是不设用户盘的,用户盘过大,会导致彩信等一些模块不稳定,所以很多使用NORFALSH时不设用户盘,但NAND FALSH一般都会设置一定的用户盘。如果需要设置,只要修改宏PARTITION_SIZE值就可以控制。所以我们能够使用的就只剩下14,这一点可以 从BUILD目录下的scatWINGTECH25_GEMINI.txt文件的声明部分看到,在SCAT文件中,有一行是SCHEME : external 14MB flash memory and 4MB SRAM,就是说14MROM和4MRAM。

由 于用户需求不同,有些时候我们会修改RAM和ROM大小,一般就要相应的修改SCAT文件。在SCAT文件中,我们可以看到行ROM 0x00000000 0x00e00000,就是说可以使用的ROM从0x00000000开始,到0x00e00000结束,共计0x00e00000字节,在下面又可以看 到这些ROM被分成四个4M的段使用。在SCAT的行EXTSRAM_LARGEPOOL_NORMAL 0x08000000处我们可以看到RAM的使用情况,地址从0x08000000开始, 到0x08400000 结束,共计0x00400000BYTE,即4MBYTE,如果你是32MROM,8MRAM,就要修改ROM 0x00000000 0x00e00000为

ROM 0x00000000 0x01c00000,修改DUMMY_END 0x08400000 0x04为 DUMMY_END 0x08800000 0x04,这样的修改,现在的ROM和RAM大小都为以前默认的2倍

在SCAT文件中,很多时候,我们可以看到关健字overlay,这是一些手机的应用中为节省内存

使用的复合内存,如INTSRAM_MULTIMEDIA 0x40000000 

0xC000,声明了MED复用内存的起始地址

如果ROM超过了,可能会比较麻烦一些,去掉不必要的图片,音乐,减小图片的质量,去掉一些不必要的功能,把宏函数转为普通函数都可以节约一部分ROM。

如果RAM或者ROM编绎到最后出错,提示ROM超了或者RAM超过了,这时就要精确计算超出部分的大小,然后再根据计算的大小寻找解决办法。计算的方法是打开LIS文件,把RAM或者ROM加起来,减去14或者4,超过的字节数,就是需要调整的内存大小

继续阅读