原创 linux驅動由淺入深系列:camera驅動之一(背景及基礎知識篇)

這篇文章瞭解一下與攝像頭相關的概念知識,如光圈、快門速度、CCD,CMOS圖像傳感器、彩色濾波陣列、白平衡、自動對焦等。下一篇文章介紹應用層通過攝像頭獲取一張圖片的實例程序,之後再逐層深入linux的v4l2架構下的驅動部分。 曝光三要素

原创 linux驅動由淺入深系列:usb子系統之三(usb系統中的設備、配置、接口、端點概念及代碼解釋)

一個usb設備對應一個或多個配置 一個配置包含一個或多個usb接口 一個usb接口可能存在一種或多種設置 一個設置會使用零個或多個usb端點設備 設備就是一個usb物理設備,一個usb設備可以只包含一個簡單功能的device,也可以包含一

原创 linux啓動第一個應用程序init && init啓動android過程解析 && init.rc與inittab的關係 && android property和linux 環境變量

linux啓動第一個應用程序init linux的運行順序爲uboot傳遞參數到內核,內核的第一個c編寫的函數爲start_kernel(),start_kernel來啓動內核,最後到到rest_init()函數處完成內核啓動過程。 re

原创 linux中i2c子系統代碼結構詳解

本文介紹一下linux驅動代碼中i2c子系統的驅動代碼結構和使用方法,示例平臺文件爲高通msmXXXX平臺 一,i2c子系統代碼結構i2c-core

原创 c++與其他語言的語法區別總結

本系列導航: c++與其他語言的語法區別總結 從c語言快速過渡到java語言(java語言與c語言語法區別概述) c++是一個具有一些c語言特性的不純粹的面嚮對象語言,下面整理一些c++與其他語言的區別之處,避免混淆。 c++中

原创 英語知識系列:英語與中文的句子成分對應關係

我們對英語的句子感到不適應,主要是由於英語的句子成分的位置關係與中文有所不同。這篇文章我們來看一下,英語中各個句子成分的位置與中文句子中各個成分的對應關係: 漢語句子成分: (狀語1)+定語1+主語+狀語2+謂語+定語2+賓語+(狀語

原创 android AP側通過sensor_class掛載sensor的一種方案

1.引言 1.1背景 目前android上對sensor的處理是將其掛載到類似於sensor-hub的獨立處理單元上與AP分離,這樣便於解決功耗問題。高通平臺也類似的將sensor掛在了adsp上,但特定需求下還是希望sensor能夠掛載

原创 linux設備驅動uevent詳解,高通平臺battery上報電量實例

本文以高通平臺上的android系統爲參照展開探討。1,uevent是什麼呢? uevent是一種linux設備模型中的一個組成部分。kset中包含

原创 linux驅動由淺入深系列:基於高通平臺分析觸摸屏(TP)、虛擬按鍵驅動

觸摸屏的觸摸板(touch panel簡稱TP)驅動的基本架構和普通按鍵驅動基本一致,可以參考文章:linux驅動由淺入深系列:輸入子系統之二(編寫

原创 sys文件系統中文件、文件夾與kobject、kset、kobj_type的對應關係

網上對sys文件系統與kobject的文章很多,但對初學者的我越看越亂。幾經輾轉總結出如下結論,如有誤懇請討論指出,直接給出:1,kobject,k

原创 linux雙向鏈表List結構分析

雙向鏈表是linux內核中的一個核心數據結構,由於其運用場景衆多如task列表、設備列表等等,因此內核將其操作邏輯獨立了出來。下面我們以i2c的設備

原创 linux驅動由淺入深系列:高通sensor架構實例分析之三(adsp上報數據詳解、校準流程詳解)

本系列導航: linux驅動由淺入深系列:高通sensor架構實例分析之一(整體概覽+AP側代碼分析) linux驅動由淺入深系列:高通sensor架構實例分析之二(adsp驅動代碼結構)linux驅動由淺入深系列:高通sensor架

原创 linux/android代碼中對於不同項目中conf、dts、defconfig文件的處理方法

本文以高通平臺爲例(代碼 android oreo),介紹幾種在不同項目公用一套代碼時對於conf文件、dts、defconfig文件的處理方法一、

原创 linux模塊(module_init)、子系統(subsys_initcall)入口函數詳解

linux內核代碼是以模塊(module)和子系統(subsys)爲單元的層次結構。在寫模塊代碼時我們知道入口函數是module_init()或su

原创 android oreo 中adb shell中的ps命令需要加參數ps -A

更新了android oreo後發現在adb shell中執行ps命令只得到了很少的信息: msm8937_32:/ # ps USER PID PPID VSZ RSS WCHAN