原创 LINUX設備驅動之設備模型二--kset

我們已經知道了kset內嵌了kobject來表示自身的節點,創建kset就要完成其內嵌kobject,註冊kset時會產生一個事件,事件而最終會調用uevent_ops字段指向結構中的函數,這個事件是通過用戶空間的hotplug程序

原创 camera learnning

drivers/media/video/msm/msm_io_7x27a.c msm_io_csi_irq()--> app: packages/apps/Camera/

原创 LINUX設備驅動之設備模型五--device&driver&bus(三)

接上一篇文章,繼續device_add()中的代碼:       error = bus_add_device(dev);        if (error)               goto BusError; 在對應總線目錄下的d

原创 高級字符驅動學習--阻塞型I/0

提出問題:若驅動程序無法立即滿足請求,該如何響應? 比如:當數據不可用時調用read,或是在緩衝區已滿時,調用write 解決問題:驅動程序應該(默認)該阻塞進程,將其置入休眠狀態直到請求可繼續。   休眠: 當一個進程被置入休

原创 ubuntu 12.04下中文亂碼解決辦法

1. gedit查看txt中文亂碼 打開終端輸入: gsettings set org.gnome.gedit.preferences.encodings auto-detected"['GB18030', 'GB2312', 'GBK

原创 LINUX設備驅動之設備模型一--kobject

LINUX設備驅動驅動程序模型的核心數據結構是kobject,kobject數據結構在\linux\kobject.h中定義: struct kobject {        const char             *name;

原创 LINUX設備驅動之設備模型四--device&driver&bus(二)

接上一篇文章,在往總線註冊註冊設備前要先創建device,我們可以靜態的定義device結構變量,然後調用device_register()將其註冊,或者通過內核提供的device_create()接口函數創建和註冊device。先看看d

原创 LINUX設備驅動之輸入子系統(三)

三.input_event事件的處理 事件的處理處理的接口函數爲input_event,在\linux\input.h中還定義了、input_report_key、input_report_rel、input_report_abs、

原创 LINUX設備驅動之設備模型三--device&driver&bus(一)

在清楚了kobject之後,就可以繼續分析device、driver、bus了,這三者是設備驅動程序的基本數據結構。 我們可以這樣理解,內核用device來表示各種設備,然後用driver來表示它的驅動,而設備有很多種,也

原创 shell scritp---mail to myself

#!/bin/bash svn_info() {         cd /home/andy/Project/svn         svn upd

原创 LINUX設備驅動之輸入子系統(一)

在前面鍵盤驅動的分析中已經接觸到了輸入子系統,本文將結合鍵盤驅動,系統分析輸入子系統。   回想一下,在設備驅動匹配成功時,創建了一個input_dev並註冊到輸入子系統;在鍵盤中斷處理例程中向輸入子系統上報事件。   輸入子系統是所有I

原创 LINUX設備驅動之輸入子系統(二)

二.Input handler的註冊 在Input device的註冊中存在下列疑問: 1,  匹配dev和handler時,input_handler_list上的handler是什麼時候掛上去的呢? 2,  匹配成功後會調用相應han

原创 Linux mail

sudo apt-get install mailunitl 選擇 internet smarthost 點贊 收藏 分享 文章舉報 GangsterPan 發佈了18 篇原創

原创 LINUX設備驅動之serio總線(一)

serio總線也是kernel中的一種虛擬的串行輸入輸出總線,源碼\drivers\input\serio目錄下有很多與之相關的驅動程序。 一.serio初始化 和之前分析platform總線一樣,在系統啓動時初始化時也創建了serio_

原创 find

find ./ ".svn" -type d|grep ".svn"|xargs rm -rf