android中request

固件升級在嵌入式設備中非常常見,例如觸摸屏,camera等。

常用的固件升級方式主要有兩種方式:

1,直接將固件img文件轉換為數組,在驅動代碼中可以直接使用,該方法有一個問題就是,當固件文件過多 過大時容易導致kernel鏡像過大, 有可能造成鏡像超限, 導致kernel啟動失敗; 並且調試也不方便, 每次修改fw都需要重新編譯內核。

2,將固件以鏡像的方式直接放在用戶空間,如vendor,system分區,需要的時候使用request_firmware從用戶空間中load到kernel空間中。

第一種方法比較簡單;第二種方法,在編譯的時候, 將fw打包到具體鏡像中。比較常見的可以將fw放在/etc/firmware, /vendor/firmware, /firmware/image這幾個目錄。使用request_firmware加載固件時,上層服務ueventd會接收到kernel上報的請求fw的uevent事件, 會依次搜索這幾個目錄, 查找對應名稱的fw, 並通過節點data傳遞給kernel,然後就可以直接使用了。

android中request_firmware


分享到:


相關文章: