hexdump: 檢視檔案的內容,比如二進位制檔案中包含的某些字串,通常用來除錯驅動用
描述:
我們以event1為例,當我們insmod掛載了鍵盤驅動後,出現乙個event1裝置,
此時沒有按鍵按下,所以event1裡面的資料是沒有的,那麼資料又是從來**來?
通過鍵盤驅動的read函式,若有按鍵按下,就會上傳按鍵資料給使用者層hexdump
因為鍵盤驅動的input_handler 是:evdev_handler
所以鍵盤驅動的read函式是:evdev_handler->evdev_fops->evdev_read
進入evdev_read()函式,如下圖所示:
evdev_event_to_user()這個函式從字面上來看,顯然就是用來上傳給使用者層的函式,其中buffer是函式引數,指向使用者層,
所以資料就是event.
我們來看看event的結構體:input_event
struct input_event ;
把 time裡的成員展開如下:
struct input_event ;
所以我們hexdump除錯任何輸入子系統event xx驅動時,有資訊就會列印上面資料
1.除錯鍵盤驅動
(鍵盤驅動**:
以按開發板的按鍵 key_l,為例(因為資料是從低到高列印的,所以資料是反的):
# hexdump /dev/event1 //按鍵鍵盤驅動
/*按下時:*/
//hexdump序列號 秒 微妙 鍵盤事件 code=key_l value=1(按下)
07c6 0000 faa2 000b 0001 0026 0001 0000
//hexdump序列號 秒 微妙 同步事件 code value=0
07c6 0000 faac 000b 0000 0000 0000 0000
/*鬆開時:*/
//hexdump序列號 秒 微妙 鍵盤事件 code=0x26 value=0(鬆開)
07c6 0000 cf67 000d 0001 0026 0000 0000
//hexdump序列號 秒 微妙 同步事件 code value=0
07c6 0000 cf70 000d 0000 0000 0000 0000
2.除錯觸控螢幕驅動
(觸控螢幕驅動**: )
/dev/event0 //觸控螢幕驅動
# hexdump /dev/event0
//hexdump序列號 秒 微妙 絕對座標事件 code=abs_x x座標值
0412 0000 6ef0 000c 0003 0000 0239 0000
//hexdump序列號 秒 微妙 絕對座標事件 code=abs_y y座標值
0412 0000 6f08 000c 0003 0001 01ae 0000
//hexdump序列號 秒 微妙 絕對座標事件 code=壓力 壓力值
0412 0000 6f0c 000c 0003 0018 0001 0000
//hexdump序列號 秒 微妙 鍵盤事件 code=觸控按鍵 value=1(按下)
0412 0000 6f10 000c 0001 014a 0001 0000
//hexdump序列號 秒 微妙 同步事件
0412 0000 6f13 000c 0000 0000 0000 0000
//hexdump序列號 秒 微妙 絕對座標事件 code=壓力 壓力值
00000b0 023b 0000 872d 000c 0003 0018 0000 0000
//hexdump序列號 秒 微妙 鍵盤事件 code=觸控按鍵 value=0(鬆開)
00000b0 0412 0000 1f5b 000d 0001 014a 0000 0000
//hexdump序列號 秒 微妙 同步事件
00000c0 0412 0000 1f70 000d 0000 0000 0000 0000
也可以使用getevent 命令,用於獲取 input 輸入事件,比如獲取按鍵上報資訊、獲取觸控螢幕上報資訊等。
示例:
格式輸出為event type、event code、event value
比如 ev_key 330 0 表示: 按鍵事件的btn_touch觸控按鍵(ox14a) 鬆開了(0)
ev_abs 1 72 表示: 絕對座標事件的abs_y(1)座標位於72
這些定義都在input.h裡,比如ev_abs的code有:
linux-hexdump命令除錯event驅動—詳解(13) - nqian -
Linux下的命令
管理員 普通使用者 pwd 顯示當前檔案全路徑 date 顯示系統當前日期和時間 who 顯示當前已登入的所有使用者名稱 cal 顯示日曆 uname r m,i,v 顯示當前系統作業系統資訊 wc l 行數,w字數,c位元組數 統計字數 clear 清屏 檔案操作touch 新建檔案mkdir 新...
Linux下解壓命令
tar 解包 tar xvf filename.tar 打包 tar cvf filename.tar dirname 注 tar是打包,不壓縮!gz解壓1 gunzip filename.gz 解壓2 gzip d filename.gz 壓縮 gzip filename tar.gz 和 tgz...
linux下基礎命令
cp複製命令 cp命令複製檔案從乙個位置到另一位置。如果目的地檔案存在,將覆複寫該檔案 如果目的地目錄存在,檔案將複製到該目錄下 目錄不會被複寫 語法 語法是 cp 命令開關 source dest cp options source directory cp options target dire...