Android高通平臺處理器間通訊驅動
高通平臺AP與CP直接通訊由Share Memory負責,這是一塊兩端可以同時操作的記憶體區域。由於高通平臺Modem佔主導作用,在Application Processor啟動初始化時,從Share Memory區讀取已經由Modem predeclared的一些資料。
Share memory根據功能,分為靜態+動態部分,每個部分又分為數個小區,每個區的大小不一,與本區實現的功能相關。Modem會把所有區的 offset+size資訊存放在靜態去Heapinfo裡。Linux通過讀取這個Heapinfo區資訊,就知道Share memory的佈局了。
簡單的說,Linux平臺高通驅動主要在如下幾個部分應用share memory服務:
1) Process command.
用來傳輸少量資料。實現兩邊的通訊。比如不同驅動模組上下電,電壓配置等。share memory最開始位置就是PROC區。
2)SMSM
實現兩邊的machine state同步。電源管理部分會用到。
3)RPC/DIAG
RPC 是高通平臺AP和Modem之間通訊最常用的通道,有很完整的封裝協議,Linux根據兩個引數(proc+version)以client的身份可以找到Modem段的server,請求提供相應服務,同時有完備的request/reply機制,完成資料傳輸。同理,AP也可以作為server提供給 Modem服務。
share memory有個channel allocation table,裡面存放這64個channel的通道資訊。每個通道可以實現資料傳輸。共享記憶體驅動(smd)初始化過程中,會建立64個通道的維護。RPC就是基於其中之一的channel.
Share memory兩邊都有執行緒在監控,一旦有資料更新,立刻通知監聽的模組。當然,有些模組中斷驅動,在中斷上下文裡完成通知。
相關文章
- 高通最新平臺驍龍735處理器曝光
- 高通MSM8953 Android處理器效能介紹資料Android
- Android中活動間通訊總結Android
- 高通處理器CPU效能路線圖
- Android 程式之間通訊Android
- Android接入騰訊廣告平臺廣點通Android
- 最新高通平臺驅動開發參考文件
- Android執行緒間通訊Android執行緒
- Android程式間通訊詳解Android
- HttpServer伺服器命令處理通訊架構HTTPServer伺服器架構
- Flutter與android之間的通訊FlutterAndroid
- Android程式間通訊,AIDL工作原理AndroidAI
- 高通晶片平臺進9008埠晶片
- Android程式間通訊(複習筆記)Android筆記
- 高通MDM平臺開發入門
- 高通驍龍850處理器引數詳細介紹
- 高通Camera模組驅動指南資料
- 程序間的通訊(訊號通訊)
- React Native與Android通訊互動React NativeAndroid
- 魅族15釋出時間確認:5.46英寸屏+高通驍龍660處理器
- Android開發之執行緒間通訊Android執行緒
- Android Socket 通訊Android
- 使用者層與驅動層通訊
- 程序間通訊
- 短視訊系統原始碼,平臺的時間處理方式原始碼
- Android跨程式通訊Android
- Android 串列埠通訊Android串列埠
- Android 多程式通訊Android
- 【Vue專案總結】元件通訊處理方案Vue元件
- 微服務之間通過RabbitMQ通訊微服務MQ
- 通訊訊號處理的一些基本常識
- PHP程式間通訊PHP
- 程式間通訊——LINUXLinux
- 程式間通訊(Socket)
- React 《元件間通訊》React元件
- 程式間的通訊
- 程序間通訊MPI
- Linux程式間通訊Linux
- 一篇看懂Android與Flutter之間的通訊AndroidFlutter