当前位置: 首页 > news >正文

网站建设服务内容wordpress seo怎么

网站建设服务内容,wordpress seo怎么,wordpress 猪八戒,北京建站报价在成功加载驱动模块之后,还需要使用 mknod命令创建设备节点,才能在/dev目录下创建对应的设备文件。自动创建设备节点的功能需要依赖 mdev 设备管理机制,在使用 buildroot 构建 rootfs 的时候,会默认构建 mdev 的功能,m…

        在成功加载驱动模块之后,还需要使用 mknod命令创建设备节点,才能在/dev目录下创建对应的设备文件。自动创建设备节点的功能需要依赖 mdev 设备管理机制,在使用 buildroot 构建 rootfs 的时候,会默认构建 mdev 的功能,mdev 机制不做深究。对于驱动代码编写来说,一般在驱动注册成功后添加自动创建设备节点的相关代码。


 class 类

        首先需要创建一个 class 类,在Linux系统中,类是一个用于组织设备驱动程序的层次结构。每个设备都属于一个特定的类,而设备驱动程序则与类相关联。Linux系统中有许多预定义的类,每个类都有其特定的设备类型。其中一些常见的类包括:

/dev/tty:该类包含终端设备,例如控制台、串口、终端仿真器等。

/dev/input:该类包含输入设备,例如鼠标、键盘、触摸屏等。

/dev/sda:该类包含磁盘设备,例如硬盘、固态硬盘、U盘等。

/dev/video:该类包含视频设备,例如摄像头、视频采集卡等。

/dev/net:该类包含网络设备,例如以太网卡、无线网卡等。

        类层次结构允许Linux系统在设备驱动程序之上建立更高层次的抽象,从而使不同类型的设备能够使用相同的接口和API。例如,一个应用程序可以使用统一的API来访问不同类型的输入设备,而不需要了解具体的设备类型或驱动程序实现。这提高了系统的可移植性和灵活性。

        class 是个结构体,定义在文件 include/linux/device.h 中,宏 class_create用来创建一个类,内容如下

#define class_create(owner, name)             \({                                            \static struct lock_class_key __key;     \__class_create(owner, name, &__key);    \})struct class *__class_create(struct module *owner, const char *name,struct lock_class_key *key)…

        存在两个参数,解释如下:

owner         指向将拥有这个结构类的模块的指针,一般为 THIS_MODULE;

name           类名字

        返回值是个指向结构体 class的指针,也就是创建的类。

        驱动卸载的时候需要删除掉类,类的删除函数是  void class_destroy(struct class *cls),参数 cls 就指向要删除的类。


 

创建设备

        创建完类之后,还需要在这个类下创建一个设备,使用 device_create 函数在指定类下创建设备device_create 函数在drivers/base/core.c中,原型如下:

struct device *device_create(struct class *class, struct device *parent,dev_t devt, void *drvdata, const char *fmt, ...)

可变参数函数,参数解释如下

class             设备要创建在哪个类下面

parent         父设备,一般为NULL

devt             设备号

drvdata       设备可能会使用的一些数据,一般为NULL

fmt               设备名字,如果设置fmt=xxx,就会创建/dev/xxx的设备文件

返回值为创建好的设备。

        卸载驱动的时候需要删除device_create创建的设备,设备删除的函数为device_destroy,,函数原型如下:

void device_destroy(struct class *class, dev_t devt)

class             指向要删除的设备指针

devt             要删除的设备号


 

用法举例

static int __init chrdevTest_init(void)
{.../*创建 class 类*/g_ChrDevBase_t.class = class_create(THIS_MODULE, g_ChrDevBase_t.devName);if(g_ChrDevBase_t.class == NULL){printk("Created Class Failed\r\n");}else{printk("Created Class Success\r\n");}/*创建设备*/g_ChrDevBase_t.device = device_create(g_ChrDevBase_t.class, NULL,g_ChrDevBase_t.devid, NULL, DEVICE_NAME);if(g_ChrDevBase_t.device == NULL){printk("Created Device Failed\r\n");}else{printk("Created Device Success\r\n");}return 0;
}static void __exit chrdevTest_exit(void)
{...device_destroy(g_ChrDevBase_t.class, g_ChrDevBase_t.devid);class_destroy(g_ChrDevBase_t.class);printk("unregister\r\n");
}

http://www.yayakq.cn/news/476315/

相关文章:

  • 网站必须做电子认证吗江西住房和城乡建设厅网站
  • 网站建设费用:做个网站要多少钱?邯郸网站建设开发公司
  • 网站建设公司招商厦门注册公司网上申请入口
  • 大型的网站建设公司教育主管部门建设的专题资源网站
  • 网站动画效果怎么做为你做的网站
  • 惠州网站建设方案报价泉州市城乡和住房建设网站
  • 网站搭建教室免费制作短视频软件
  • 创新型的合肥网站建设制作高端网站效果怎么样
  • 网站建设验收书网站建设的工作人员
  • 网站建设工作室介绍范文建立主题网站的知识点
  • 长春网站提升排名wordpress 4 中文手册
  • 做网站有哪些网站seo评测
  • 网站建设的费用预算wordpress新用户管理
  • 网站建设 网站优化营销型网站建设专家中国能源建设集团有限公司在哪
  • 温州网站优化排名推广python建设购物网站
  • 网站建设与开发试卷手机网站制作要求标准
  • 做网站需要做优化吗网页制作论文3000字
  • 网站百度忽然搜索不到用jsp做网站一般会用到什么
  • php 网站 下载36kr网站用什么做的
  • 广州网站建设(信科网络)如何申请163企业邮箱
  • 广东省网站集约化建设通知济南企业网站制作费用
  • 网站自动跳转开发的网站
  • 外贸自己做网站长春企业公司网站建设
  • 南京 网站建设 运营服务 骗子公司企业做网站需要在通管局备案
  • python做网站框架做网站的属于什么行业
  • 刚察网站建设公司二维码 wordpress
  • 推广新产品最好的方法开封网站seo
  • 网站关键词搜索排名怎么做国外做二手服装网站有哪些问题
  • 免费网址生成app产品seo优化
  • 宁阳县住房和城乡建设局网站六安公共招聘网