1. 程式人生 > >mtk 功能機驅動除錯

mtk 功能機驅動除錯

驅動程式主要分散於兩個目錄
$PROJECT\custom\drv
$PROJECT\drv

很明顯,第一個目錄是客戶化專案的驅動程式,第二目錄就是主要的驅動,是比較相對獨立的模組。編譯時,custom 是個作為一個獨立的模組。
當然,還有一些介面定義的目錄,它們在
$PROJECT\interface\hwdrv
$PROJECT\interface\drv_def

運用程式 $PROJECT\custom\drv\Drv_Tool\DrvGen.exe 可以對 GPIO,GPO,ENIT,ADC,KEYPAD進行定製設定. 
有個預設檔案$PROJECT\custom\drv\misc_drv\$PROJECT_NAME\codegen\codegen.dws
可以用DrvGen直接開啟它,然後進行修改,生成的*.h *.c檔案與codegen.dws在同一目錄下.
驅動程式碼裡,一個很顯著的巨集,就是 __CUST_NEW__ ,常常碰到
#ifndef __CUST_NEW__
// the default settings
else
// user customize
#endif

就是由DrvGen產生的程式碼段. 如果對硬體足夠了解,可以從原理圖 和PCB板圖對照直接改程式碼。

驅動離不開作業系統的支援,我們知道,MTK的 kal對 nucleus os 進行了封裝,那麼KAL相關的定義的標頭檔案kal_release.h 就不能錯過了,驅動直接呼叫系統提供的函式。

最後,總結一下,手機啟動過程如下:
開機 -> 初始化硬體 -> 初始化軟體(讀取NV,儲存為全域性變數) -> 開機動畫,搜尋網路,Sim卡等 -> Idle介面。

附錄:
一些術語

EMI external memory interface
UART Universal asynchronous receiver/transmitter,非同步收發器,一種序列介面
UEM 使用者裝置管理
MSDC U盤功能
LCM LCD Module
Pixtel 一家印度公司,無線通訊相關業務已被MTK收買,強項是MMI設計。