2011年7月26日 星期二

中斷

客戶提出一個 issue,當插上 adapter 時,notification icon 的狀態改變太慢了

10 秒的時間差都有可能,尤其 S3 回來後,可能會延遲到 10 秒以上

因為不是我的案子,了解需求後,分析了一下,兩個問題:

和 mcu 之間是透過 i2c 溝通,這個介面硬體設計上有問題,硬體也找不到原因

總之,當初軟體的 workaround 就是加入了 Retry 的機制

再者,所有跟 Battery 有關的資訊都是跟 mcu 透過 i2c 要來的,即便 i2c 沒問題
(包括充電狀態、電壓、充電時間、剩餘時間等)

要作到真的即時的反應 adapter 的 plug-in 和 out 本來就會有些許 delay

去翻了硬體的電路圖,很幸運的是當初原廠的 Reference Design 在 AC In/Out 有拉 pin 腳到 AP

又很幸運的是可以觸發中斷,只是不知道為甚麼沒人要拿來用 ~>.<~

原本流程

request from userland -> kernel -> send command to mcu -> waiting for respond from mcu

修改流程

kernel -> send command to mcu(every 30 secs) -> waiting for respond from mcu
AC In/Out -> trigger interrupt -> update info
request from userland -> kernel -> respond information immediately

沒有留言:

張貼留言