1. 程式人生 > >android驅動一些外設除錯記錄

android驅動一些外設除錯記錄

2010 - 微博元年,智慧手機元年,2011 - 平板電腦元年,2012 - 智慧電視元年。

又到年末,是時候梳理下Android開發工作,展望下未來了。

本文僅供我個人參考...

開發產品 電子書 手機 平板電腦

負責模組 Camera, Sound, SD, USB, G-sensor, TP

軟體平臺 Android 1.6/2.2/2.3

硬體平臺 Mavell PXA935, Freescale  IMX51, Qualcomm MSM8255

1. Camera


1) 開發8MP+ISP+MIPI 驅動 (MSM8255)

主要職責 

  • 編寫驅動程式碼,調通camera sensor驅動,並實現前後置雙camera的切換。
  • 根據晶片手冊,實現基本功能 - 預覽, 拍照, 錄影, 效果(scene, effect, ev, iso, wb, contrast...)
  • 技術支援下,實現進階擴充套件功能 - 防抖, 自動對焦, 閃光燈, 韌體升級, 720P, wdr, panorama...
遇到難題  
  • I2C不通 - 初期除錯驅動,任何GPIO,供電,時鐘,上電時序沒配正確都會導致I2C不通。
  • raw拍照宕機 - ISP拍照後將圖片硬解壓縮成JPEG無法與高通平臺的camera interface接收端VFE匹配。
  • 預覽視訊旋轉90度 - 硬體問題,必須保證裝配camera時,鏡頭長邊與手機長邊是平行的而不是垂直的。
  • 第三方軟體問題多 - 修改高通平臺程式碼時要注意程式碼的相容性和健壯性。
遇到bug 
  • 新增新功能新介面 - 必須熟悉高通獨有的Qcamera架構,修改所涉及到的程式碼較多。
  • 自動對焦和色彩效果設定無效 - 場景模式scene裡的設定與其他效果產生了衝突。
  • 開啟程式過慢,照片在PC上顛倒,轉屏時預覽視訊會卡一下,錄影時有自動對焦,沒有自動識別場景和閃光功能等bug。

2) 移植,除錯,升級camera模組 (IMX51)

主要職責 解決bug和升級Android2.3

  • 開啟程式速度慢 - 去掉檢測SD卡過程。
  • 優化影象效果 - 協調硬測與FAE。
  • 視訊通話畫質差 - 更新視訊編解碼動態連結庫。
  • Overlay偏移 - 設定固定的視訊大小。

2. Sound



主要職責

 

  • 移植音訊codec驅動,升級Android 2.3。
  • 解決bug,主要修改Mixer通道和除錯Vol增益。
  • 新增DSP功能消迴音 (FAE支援)。

3. SD

理論儲備

Linux的SDIO子系統

http://blog.csdn.NET/qianjin0703/article/details/5918041

Android的Vold架構

http://blog.csdn.net/qianjin0703/article/details/6362389

主要職責 

  • 移植SD卡和inand驅動。
  • 解決bug, 如快速熱插拔不識別,部分SD卡不識別,系統啟動後inand不識別等。

4. USB

理論儲備

Linux的USB子系統

http://blog.csdn.Net/qianjin0703/article/details/6559033

Linux的USB Gadget

http://blog.csdn.net/qianjin0703/article/details/6141763

主要職責 
  • 新增自動掛載U盤功能。
  • 新增USB自動充電功能。

5.G-sensor

理論儲備

Linux的I2C架構

Android的感測器架構

主要職責 

  • 移植G-sensor驅動。
  • 直接在底層實現顯示屏,觸控式螢幕和鍵盤的90/180翻轉。

6. TP

理論儲備

Linux的Input子系統

觸控式螢幕矯正原理

主要職責 

  • 移植電磁屏驅動。
  • 修改觸控式螢幕矯正程式。

7. Other

  • 編寫Android ATE和FCT工廠測試程式。
  • 移植鍵盤驅動,新增網路按鍵。
  • 移植振動感測器驅動,修改振動幅度。
  • 移植滑動電容屏驅動,調節靈敏度。
  • 在Bootloader裡實現開機前USB充電,新增開機指示燈。