如何在linux驅(qū)動(dòng)中使用dev_err

小樊
81
2024-09-21 06:32:43

在Linux驅(qū)動(dòng)中,dev_err()是一個(gè)用于報(bào)告錯(cuò)誤的宏

以下是如何在Linux驅(qū)動(dòng)代碼中使用dev_err()的示例:

  1. 首先,包含必要的頭文件:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/init.h>
#include <linux/console.h>
  1. 定義一個(gè)簡(jiǎn)單的設(shè)備結(jié)構(gòu)體:
static struct device my_device = {
    .name = "my_device",
};
  1. 在驅(qū)動(dòng)的初始化函數(shù)中使用dev_err()
static int __init my_driver_init(void) {
    printk(KERN_ERR "my_driver: Failed to register device\n");
    return -ENOMEM;
}

在這個(gè)例子中,KERN_ERR是一個(gè)預(yù)定義的宏,它表示錯(cuò)誤級(jí)別。你也可以使用其他錯(cuò)誤級(jí)別,如KERN_WARNING(警告)、KERN_INFO(信息)和KERN_DEBUG(調(diào)試)。

  1. 在驅(qū)動(dòng)的退出函數(shù)中使用dev_err()
static void __exit my_driver_exit(void) {
    printk(KERN_ERR "my_driver: Unloading device\n");
}
  1. 最后,注冊(cè)和注銷(xiāo)設(shè)備:
module_init(my_driver_init);
module_exit(my_driver_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("A simple Linux driver example");

現(xiàn)在,當(dāng)你加載和卸載驅(qū)動(dòng)時(shí),它將使用dev_err()宏在控制臺(tái)輸出錯(cuò)誤消息。

0