在自己的工作目錄下建立helloworld_driver.c
補充下:
1. printk輸出跟輸出的日志級別有關系,當輸出日志級別比控制台的級別高時,就會顯示在控制台上,當比控制台低時,則會記錄在/var/log/message中。
2. printk()並不是設計用來同用戶交互的,雖然我們在 hello-1就是出於這樣的目的使用它!它實際上是為內核提供日志功能, 記錄內核信息或用來給出警告。因此,每
個printk() 聲明都會帶一個優先級,就像你看到的<1>和KERN_ALERT 那樣。內核總共定義了八個優先級的宏, 所以你不必使用晦澀的數字代碼,並且你可以從文
件linux/kernel.h查看這些宏和它們的意義。如果你 不指明優先級,默認的優先級DEFAULT_MESSAGE_LOGLEVEL將被采用。
#define KERN_EMERG "<0>"
#define KERN_ALERT "<1>"
#define KERN_CRIT "<2>"
#define KERN_ERR "<3>"
#define KERN_WARNING "<4>"
#define KERN_NOTICE "<5>"
#define KERN_INFO "<6>"
#define KERN_DEBUG "<7>"
執行make modules生成helloworld_driver.ko文件。
將helloworld_driver.ko下載到開發板文件系統中,執行insmod helloworld_driver.ko加載驅動模塊,串口將打印如下信息:
成功!
卸載helloworld_driver.ko
這是最簡單的設備驅動示例!