1 引言
1.1 編寫目的
介紹Qualcom QMI 基本知識,API使用,設計原理,基於QMI的RemoteEfs(NV)分析
1.2 閱讀建議
高通平台入門
1.3 參考資料
Qualcom 文檔和msm代碼
1.5 運行平台
Android 4.4
1.4 文檔聲明
2, 縮略語介紹 QMI: Qualcom Message Interface
MSM: Mobile station mode
AP: Application Procesor
3, 總體描述 高通平台目前都是非對稱多核心,最主要的是AP和Modem。
兩個處理器怎么進行通信呢,我們把AP和Modem當作兩個主機,問題就變得了很簡單,TCP/IP協議不是一種非常成功的進程間跨主機通信方式。高通沒有采用這種方式,但是借鑒了TCP/IP的框架設計。
它的框架是這樣的,內核態:基於共享內存實現鏈路層,擴展協議域;用戶態,封裝出類似於socket函數的接口,用於用戶態使用。
而我所描述的QMI就是用戶態使用的API接口,這些接口非常類似於socket,只要有個socket編程的經驗的是會容易理解的。
4,QMI框架介紹
4.1 IDL 說明
Interface Define Language 有類似於C語言的語法,基本元素service和message。service 可以說是一個服務,每個服務有唯一的service id。
當創建service的時候,其實就是類似於socket里面綁定的協議地址。每個服務可以包含很多message,根據message id進行區分。
自己自定義一個服務很簡單,定義test.idl,然后用perl qmi_idl_compiler.pl test.idl會生成test_api.h test_api.c這個需要客戶端和服務端代碼包含引用,高通這么做只是為了減少重復的開發工作。
4.2 QCCI說明 QMI common client Interface 其實就是封裝客戶端進行通訊的C庫,主要是注冊client,send/receive message
4.3 QCSI說明 QMI common service Interface 其實就是封裝服務端進行通訊的C庫,提供服務注冊,send/receive message,根據消息ID查找回調函數實現消息響應
5,下篇介紹 API介紹說明,代碼分析。
6,對QMI了解有需求的,可以在評論里面注明。便於把QMI介紹清楚