當有乙個spi device的時候,但是不想再核心態寫spi_driver的話,可以使能config_spi_spidev
這樣的話會生成乙個spidev.ko ,插入這個ko後就可以在使用者態open((「/dev/spidev0.0」), o_rdwr)的方式pen 這個裝置
然後通過spi_ioc_wr_mode/spi_ioc_rd_mode 設定spi_mode_0,設定spi_ioc_wr_bits_per_word/spi_ioc_rd_bits_per_word為25000000,設定spi_ioc_wr_max_speed_hz/spi_ioc_rd_max_speed_hz 為25000000,最後就可以通過io(fd,spi_ioc_message(len),&spi),其中spi的型別為spi_ioc_transfer spi[len].來讀寫spi device。
這個驅動的實現在driver/spi/spidev.c中,這是個核心模組,其入口函式為
static int __init spidev_init(void)
#註冊乙個spi 驅動
status = spi_register_driver(&spidev_spi_driver);
if (status < 0)
return status;
}module_init(spidev_init);
static struct spi_driver spidev_spi_driver = ,
.probe = spidev_probe,
.remove = spidev_remove,
/* note: suspend/resume methods are not necessary here.
* we don't do anything except pass the requests to/from
* the underlying controller. the refrigerator handles
* most issues; the controller driver handles the rest.
*/};
通過潛意識情感來驅動使用者行為
現在我們見到的大部分推廣活動往往都以折扣,作為噱頭。長期的 戰轟炸來刺激消費心理的方式已經讓使用者形成一定的疲勞感甚至是牴觸感,因此,我們思考能否在勞動節這個比較傳統但是特點鮮明的節日中通過新的創意來達到我們活動目的呢?其實五一對我們大部分人來說是有不少的記憶點的,而 從弗洛伊德的精神分析法來看,真...
聊聊Linux使用者態驅動設計
裝置驅動可以執行在核心態,也可以執行在使用者態,使用者態驅動的利弊網上有很多的討論,而且有些還上公升到政治性上,這裡不再多做討論。不管使用者態驅動還是核心態驅動,他們都有各自的缺點。核心態驅動的問題是 系統呼叫開銷大 學習曲線陡峭 介面穩定性差 除錯困難 bug致命 程式語言選擇受限 而使用者態驅動...
通過blacklist來禁用驅動
blacklist黑名單 我們在linux中安裝驅動,有時會遇到受限或衝突,通常解決方式都是要修改blacklist.conf.對核心模組來說,黑名單是指禁止某個模組裝入的機制 在 etc modprobe.d 中建立 conf 檔案,使用 blacklist 關鍵字遮蔽不需要的模組,例如如果不想裝...