開發(fā)常見問題培訓_第1頁
開發(fā)常見問題培訓_第2頁
開發(fā)常見問題培訓_第3頁
開發(fā)常見問題培訓_第4頁
開發(fā)常見問題培訓_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

韋禮吉2014-08-14開發(fā)常見問題培訓開發(fā)常見問題培訓省晶體AP端和modem端的修改。AP端和modem端如何進行交互。如何查看modemlog。如何查看GPS的log,對GPS信號弱的分析。Fota升級的注意事項。Recovery模式的路徑。開發(fā)常見問題培訓開發(fā)常見問題培訓如何做Fat分區(qū)。如何編譯各個模塊最快。系統(tǒng)各個模塊的單步調試。Git的常用操作。開發(fā)常見問題培訓一、省晶體AP端和modem端的修改。怎么是省晶體?在主板上省掉26M/xxxM晶體模塊,這個是72和82板子一個降成本的方案。省晶體對哪些有影響?FM,藍牙,GPS。FM和藍牙不能正常啟動,GPS

現(xiàn)象1:FM和藍牙不能正常啟動。

現(xiàn)象2:GPS校準不過。

現(xiàn)象3:GPS定位慢或是漂移。省晶體AP端和modem端的修改省晶體要做哪些修改?省晶體AP端和modem端的修改省晶體要做哪些修改?省晶體AP端和modem端的修改省晶體AP端和modem端的修改。事故:傳奇、萬利達等一些客戶都因為過晶體的問題出現(xiàn)過售后事故,幾十K訂單售后故障。還有因為晶體的影響到GPS信號問題,不止一個項目投入了硬件,軟件,硬測,軟測人力分析這類的GPS信號問題。同時也對客戶的也造成極大影響。警鐘:每個新分支新項目要確認板子是晶體或是不省晶體。參考:MT6572_6582_GPS_clock_load_setting_SOP_v1.1.pdf省晶體AP端和modem端的修改二、AP端和modem端如何進行交互。Modem的概念。

運行于系統(tǒng)之上的獨立模塊。主要處理網絡通信協(xié)議,sim卡協(xié)議解析,基站信號處理等。相當于一個依賴于整個系統(tǒng)又獨立系統(tǒng)之上的小系統(tǒng)。手機能不能通話,信號強度就取決取modem(軟件上,硬件上的話就當讓是天線信號強度)。開發(fā)過程中modem的最基本使用:1.每套代碼中都有一套modem的獨立源碼。

一般的文件夾(modem_td、modem_wcdma)2.從硬件射頻獲取對應頻段射頻文件(l1d_custom_rf.h、ul1d_custom_rf.h)。AP端和modem端如何進行交互3.把頭文件放到對應的modem路徑(custom\modem\l1_rf\MT6166_2G_CUSTOM,custom\modem\ul1_rf\CUSTOM_MT6166)。4.編譯modem,(如82:./make.shEASTAEON82_WET_KK_HSPA.maknew)5.copy編譯出來的modem生成文件到mediatek/custom/common/modem/,并在ProjectConfig.mk指定CUSTOM_MODEM調用對應的modem(部分base合入了自動copy腳本,./modemCopy)。

備注:每套代碼的根木都有releasenote文件,

(如:ReleaseNote_for_MT6572_KK1.MP6.xlsx),其中有一欄:Build_Configure_Modem_MOLY,告訴如何編譯modem,該提取那些文件,如何命名。AP端和modem端如何進行交互AP端和modem端如何進行交互。Modem的基本使用還包括:鎖卡鎖網,無卡緊急撥號,切換卡槽。

鎖卡:19/gitweb/?p=ALPS.JB3.MP.V1_EASTAEON72_WET_JB3;a=commit;h=f4980d9d15b671b172aa2ba1d37cfea23d8b04fe

緊急撥號:19/gitweb/?p=ALPS.JB3.MP.V1_EASTAEON72_WET_JB3;a=commit;h=3b23fd2ee06523191adb165eab7eb7796ec45118

切換卡槽: 19/gitweb/?p=ALPS.JB9.MP.V1.4_EASTAEON92_WET_JB9;a=commit;h=85f2b8c97b8bfed5cb4a5e8be93ad76b294bb67dAP端和modem端如何進行交互:AT指令AT指令可以AP端,驅動層,modem端一通到底。1.通過AT命令寫imei號(程榮強)。2.在82+90單卡版本上做雙卡單待(鄭從隆、奉光躍)。AP端和modem端如何進行交互1.通過AT命令寫imei號(程榮強)。函數(shù):voidinvokeOemRilRequestStrings(String[]strings,Messageresponse);路徑:\frameworks\opt\telephony\src\java\com\android\internal\telephony\Phone.java從路徑可以看出,這接口是不對外開放的,如果第三方應用使用可以使用反射方法。

其中參數(shù)strings是具體的AT命令,response是一個回調方法,如果成功((AsyncResult)response.obj).exception)==null,否則調用失敗注意事項1、AT指令讀寫數(shù)據(jù)一定要在phone進程中,否則會有權限異常,添加聲明2、invokeOemRilRequestStrings數(shù)以phone類的成員函數(shù),調用該函數(shù)前要實例化phone,具體如下AP端和modem端如何進行交互得到phone的實例化對象以后,就可以發(fā)送AT指令了,如:AP端和modem端如何進行交互得到phone的實例化對象以后,就可以發(fā)送AT指令了,如:mResponseHander回調方法如下注意:如果AT命令有返回值的話返回值保存在ar.result中;AP端和modem端如何進行交互2.實現(xiàn)雙卡單待時候,需要單獨定制AT命令進行modem端與AP端交互(鄭從?。汉瘮?shù)接口還是voidinvokeOemRilRequestStrings(String[]strings,Messageresponse);具體的的一個發(fā)送函數(shù)參數(shù)使用:AP端和modem端如何進行交互如何處理回調:AP端和modem端如何進行交互MTKmodem端開放的客制化AT命令:路徑:modem_v4/custom/modem/common/ps/customer_at_command.c

函數(shù):kal_boolcustom_command_hdlr(char*full_cmd_string)AP端和modem端如何進行交互AP端和modem端如何進行交互擴展內容:如何重啟modem。MTK提供的方案是:RIL.java中resetRadio這個方法來實現(xiàn)。

通過搜java代碼:frameworks/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccController.java

AP端和modem端如何進行交互擴展內容:如何重啟modem。結論:重啟modem上層只需發(fā)送廣播。

如何查看modemlog三、如何查看modemlog。Modemlog。

開發(fā)一個功能或是解決故障,

驅動:串口log、kenerllog、bootlog。

上層:單步調試、adblogcat、mobilelog。

案列

上次我們開發(fā)modem端的功能,無法查看modem端的log,我們就靠修改了之后燒機驗證,同步提log給MTK分析。這個開發(fā)周期消耗了2到3倍或是更長的時間周期。 mtk后面釋放了ELT工具來查看modem端的log。

如何查看modemlog使用ELT準備工作:對于modemissueanalysis所需log和文件1.mtklogger下開啟的ModemLog,MobileLog,NetworkLog2.對應版本的database文件。如何查看modemlog文檔說明:ELT軟件包Document目錄:ELT_Logging.pdfELT_User_Manual_Customer.pdf文檔中有比較全面的log查看操作。設置database路徑。打開mtklog=》extmdlog=》ExtMDLog_2014_0601_xxxx_EE_ASSERT=》ExtMDLog_2014_0601_xxxx.muxraw文件。Loading完成之后=》view=》對應的trace。(建議使用systemtrace接口)

AP端和modem端如何進行交互1.設置database:AP端和modem端如何進行交互2.打開xxxx.muxraw文件。AP端和modem端如何進行交互3.搜索查看自己添加的log內容:AP端和modem端如何進行交互ELT查看modemlog的不完善部分:

無法查看modembootup部分的log。MTK提供的辦法是(MTK針對modem培訓時): 1.打開project.mk文件中對用宏開關。2.xxx步驟之后轉換成串口log來查看。

這部分內容,就查看mtk

modem培訓的相關資料。AP端和modem端如何進行交互四、如何查看GPS

log如何查看GPS

logGPSFieldTestlog捉取如何分析GPSLogGPSLog有兩種類型的文件。文件內部存儲的只是$GP開口的log,那么這種log稱為NMEAlog;文件內部除了$GP的log,還有其他的一些log,例如$PMTK的log等等,這種log稱為GPSDebugLog。NMEA分析方法GPGGA中可以得到UTC時間、經緯度、當前定位狀態(tài)、使用的衛(wèi)星數(shù)目、HDOP等等;GPGSA中可以得到定位類型、所使用到的衛(wèi)星ID;GPGSV中可以得到可視衛(wèi)星的數(shù)目,然后會一次列舉出每科可視衛(wèi)星的ID、方位角、仰角和信號強度;GPRMC中可以得到UTC時間、定位狀態(tài)、經緯度、速度、UTC日期;GPACCURACY是MTK加入的獲取定位精度的語句。缺少哪些輔助資訊如果產看是否觸發(fā)AGPS,需要從GPSdebugLog中分析,搜索PMTK730這個語句,因為輔助數(shù)據(jù)主要是看時間、位置、星歷這三個。$PMTK730,0,0,0,1,0,1,1,0:從這個語句中的一個1表示缺少星歷、第二個1表示缺少位置、第三個1表示缺少時間。PMTK710表示獲取星歷輔助數(shù)據(jù),PMTK712表示獲取時間輔助資訊,PMTK713表示缺少位置輔助資訊。

查看衛(wèi)星分布如何通過看GPGSV里的衛(wèi)星的方位角和仰角可以判斷衛(wèi)星的位置,通過判斷GPGSA里的衛(wèi)星可以知道當前定位使用了哪些衛(wèi)星,這樣就可以知道當前使用定位計算的這些衛(wèi)星的衛(wèi)星分布如何、信號強度如何。通過GPGGA里的HDOP來判斷當前衛(wèi)星的分布如何,這個值越小越好。衛(wèi)星分布越好,越有可能產生的定位精度越高。所以HDOP是定位精度的充分但非必要條件。當前有哪些星歷被保存通過搜索GPSDebugLog文件中PMTKEPH,該關鍵詞會告訴你當前有哪些衛(wèi)星是已經解析下來輔助資訊的。例如PMTKEPH,3,12,15,18表示有3顆衛(wèi)星已經解析下來了星歷數(shù)據(jù),他們的衛(wèi)星ID

是12、15、18.如何判斷GPS已經正常工作GPS工作起來首先會在GPSdebugLog中打印出來PMTK010的字樣,所以通過判斷這個可以知道GPS是否有正常工作起來。星歷數(shù)據(jù)是來自EPO、HotStill還是實時解算如果知道當前使用到的衛(wèi)星星歷數(shù)據(jù)是來自實時接收解算下來的星歷、還是EPP,或者是HotStill,同樣也是通過判斷PMTKEPH。如果該關鍵字后面跟著的衛(wèi)星ID是正整數(shù),那么是實時接收解算下來的星歷;如果是浮點數(shù),而且是負數(shù),但是小數(shù)點后都是0,表示的是EPO;如果是浮點數(shù),而且是負數(shù),但是小數(shù)點后的是非0,表示的是Hotstill;判斷AGPS/EPO/HotStill是否工作從GPSDebuglog中搜索到wk,epo表示EPO有工作;從GPSdebuglog中搜索到wkbee表示Hotstill有工作;從GPSDebuglog中搜索到wkssi表示AGPS有工作。H/W/C/FGPSStart通過從打開GPS的第一條GPGGA語句來確認是什么啟動方式,如果該語句中的時間是235944,那么表示沒有時間輔助資訊,這是完全冷啟動;如果有時間信息,但是位置是8960.0000,N,0000.0000,E,這表示是冷啟動;如果既有時間也有位置,可以看第一條PMTKEPH中是幾顆有衛(wèi)星的星歷,如果一顆沒有,那么這是暖啟動;如果發(fā)現(xiàn)也有位置、時間、而且至少4顆以上的星歷,那么這是熱啟動。星歷數(shù)據(jù)是來自EPO、HotStill還是實時解算如果知道當前使用到的衛(wèi)星星歷數(shù)據(jù)是來自實時接收解算下來的星歷、還是EPP,或者是HotStill,同樣也是通過判斷PMTKEPH。如果該關鍵字后面跟著的衛(wèi)星ID是正整數(shù),那么是實時接收解算下來的星歷;如果是浮點數(shù),而且是負數(shù),但是小數(shù)點后都是0,表示的是EPO;如果是浮點數(shù),而且是負數(shù),但是小數(shù)點后的是非0,表示的是Hotstill;判斷AGPS/EPO/HotStill是否工作從GPSDebuglog中搜索到wk,epo表示EPO有工作;從GPSdebuglog中搜索到wkbee表示Hotstill有工作;從GPSDebuglog中搜索到wkssi表示AGPS有工作。H/W/C/FGPSStart通過從打開GPS的第一條GPGGA語句來確認是什么啟動方式,如果該語句中的時間是235944,那么表示沒有時間輔助資訊,這是完全冷啟動;如果有時間信息,但是位置是8960.0000,N,0000.0000,E,這表示是冷啟動;如果既有時間也有位置,可以看第一條PMTKEPH中是幾顆有衛(wèi)星的星歷,如果一顆沒有,那么這是暖啟動;如果發(fā)現(xiàn)也有位置、時間、而且至少4顆以上的星歷,那么這是熱啟動。[DESCRIPTION]GPS

搜星慢,信號弱,定位慢,定位漂移問題

[SOLUTION]若客戶有遇到該類GPSPerformanceissue,請到DCC上下載以下文檔,參考文檔進行檢查。

MTK_GPS_Phone_SQC_Test_20120220_Sim.pdf。若確定跟測試環(huán)境無關,仍有問題的話,請?zhí)峤籩service,并附上復現(xiàn)問題的gpsdebuglogandmobilelog.抓取gpsdebuglogandmobilelog的方法請到DCC上下載以下文檔。

GPS-Logs-SOP.pptx.五、Fota升級的注意事項。

概念:FOTA(FirmwareOver-The-Air)移動終端的空中下載軟件升級,指通過云端升級技術。

現(xiàn)狀:

各個平臺默認集成的廣升FOTA,部分客戶客戶用GMOBI,還有一些客戶自己集成自己腳本(如:桑菲,其他一些海外客戶直接提供的移植代碼)。

有不少項目在FOTA這個問題耗了不少時間,或是關鍵要轉量產的時候被FOTA的問題卡住,delay量產時間。

Fota升級的注意事項FOTA升級的兩種模式:a.查分包升級.(同一個項目不同版本間)b.整包升級.(大版本的升級:4.2=》4.4)基本常識:FOTA升級成功的前提:SD卡升級包能正常升級。SD卡升級成功的前提:軟件版本一定是otapackage命令之后拷貝的。./mk-o=TARGET_BUILD_VARIANT=usereastaeon89_wet_jb2new&&./mk-o=TARGET_BUILD_VARIANT=usereastaeon89_wet_jb2otapackage&&./autoCopy

Fota升級的注意事項FOTA升級注意事項1、對于支持FOTA功能的軟件來說執(zhí)行完makeotapackage才表示版本真正編譯完成,所以打包或備份img文件需要在makeotapackage之后執(zhí)行,如果直接new完就執(zhí)行打包戒備份img會造成升級的源版本不制作差分包的源版本不一致,從而導致升級失?。?、同一個項目的手機型字段duct.mode是相同的,該項目下每一版正式軟件的版本號ro.build.display.id應該是不一樣的;Fota升級的注意事項FOTA升級注意事項3、APK、鈴聲等資源的文件名不能含有中文、空格等特殊字符,請規(guī)范命名文件,否則otapackage編譯會出錯;4、項目的簽名一旦確認下來就不能修改,特別是對于量產的版本;5、請注意user和eng版本之間不要互相升級。6、不支持分區(qū)表修改的升級,分區(qū)的更改不能通過差分包升級,量產后的版本請勿修改分區(qū)表Fota升級的注意事項FOTA的常見問題(針對廣升):Fota升級的注意事項Fota升級的注意事項六、Recovery模式路徑JB版本:[FAQ04135][Recovery]Recoverymode下如何選擇SD卡進行系統(tǒng)升級可以根據(jù)當前系統(tǒng)Flash的類型以及Recovery.fstab(mediatek\config\[Project]\)中fstype是否一致來判斷Recovery.fstab配置是否正確,分為兩種情況,具體code見文roots.c(jellybean版是roots.cpp),文件所在路徑是alps\bootable\recovery\。一)Recovery.fstab配置正確1)使用外置SD升級,

voidload_volume_table(){

......

device_volumes[num_volumes].device=strdup("/dev/block/mmcblk1");

device_volumes[num_volumes].device2=strdup("/dev/block/mmcblk1p1");

......

}Fota升級的注意事項

2)使用內置置SD升級,代碼修改如下(roots.c,jellybean中是roots.cpp,alps\bootable\recovery\)

voidload_volume_table(){

......

device_volumes[num_volumes].device=strdup(dev[FAT_INDEX]);

device_volumes[num_volumes].device2=device2?strdup(device2):NULL;

......

}

3)如果有外置SD卡,使用外置升級,如果沒有外置SD卡,使用內置SD卡升

voidload_volume_table(){

......

device_volumes[num_volumes].device=strdup("/dev/block/mmcblk1p1");

if(has_fat){

device_volumes[num_volumes].device2=strdup(dev[FAT_INDEX]);

}else{

device_volumes[num_volumes].device2=strdup("/dev/block/mmcblk1");

}

......

}AP端和modem端如何進行交互二)Recovery.fstab配置不正確

1)如果有內置SD卡,但優(yōu)先使用外置SD卡升級,如果沒有插入外置SD卡,則改用內置SD卡升級

voidload_volume_table(){

......

device_volumes[6].device=strdu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論