MTK散记五(转)

来源:互联网 发布:数据保护解决方案 编辑:程序博客网 时间:2024/05/29 18:50

为何 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; /* no alignment timer */
stack_timer_struct base_timer2; /* allow alignment timer */
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     增益设置

/* define Gain For NORMAL [Normal Volume Gain]*/
/* Normal: Call Tone, Keypad Tone, Microphone, GMI Tone, Speech Tone, Side Tone */

情景模式
  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等几个项目。实验室工程师会给出值,直接替换即可


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhoulianghao166/archive/2010/01/20/5217176.aspx