天天看點

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,超過的位元組數,就是需要調整的記憶體大小

繼續閱讀