zoukankan      html  css  js  c++  java
  • 字符驱动之操作LED灯(一):大体框架

     1 头文件:
     2 #include <linux/module.h>
     3 #include <linux/kernel.h>
     4 #include <linux/fs.h>
     5 #include <linux/init.h>
     6 #include <linux/delay.h>
     7 #include <asm/uaccess.h>
     8 #include <asm/irq.h>
     9 #include <asm/io.h>
    10 #include <asm/arch/regs-gpio.h>
    11 #include <asm/hardware.h>
    12 
    13 定义变量
    14 int major;
    15 static struct class *firstdrv_class;
    16 static struct class_device    *firstdrv_class_dev;
    17 
    18 
    19 
    20 
    21 static int first_drv_open(struct inode *inode,struct file *file)
    22 {
    23     
    24 
    25     return 0;
    26 }
    27 
    28 
    29 static ssize_t first_drv_write(struct file *file,const char __user *buf,size_t count,loff_t *ppos)
    30 {
    31     printk("");
    32     return 0;
    33 }
    34 
    35 static int first_drv_init(void)
    36 {
    37     major = register_chrdev(0,"first_drv",&first_drv_fops);
    38     //告诉内核,并填充驱动,把数组填充进去。但是系统信息未生成
    39     
    40     firstdrv_class = class_create(THIS_MODULE,"firstdrv");
    41     //在sys下新建class,名叫firstdrv_class。
    42     
    43     firstdrv_class_dev = class_device(firstdrv_class,NULL,MKDEV(major,0),NULL,"xyz");
    44     //在此类下面新建设备节点,设备号为major,节点叫做xyz。(/dev/xyz)
    45 }
    46 
    47 在入口中新建,需要在出口中删除。
    48 static void first_drv_exit(void)
    49 {
    50     unregister_chrdev(major,"first_drv");
    51     class_device_unregister(firstdrv_class_dev);
    52     class_destroy(firstdrv_class);
    53 }
    54 
    55 结尾:
    56 module_init(first_drv_init);
    57 module_exit(first_drv_exit);
    58 module_license("GPL");
  • 相关阅读:
    Colmap在centos7下的编译
    图像搜索三-局部特征SIFT
    docker的基本概念
    图像搜索(二)-全局特征
    图像搜索(一)-好特征
    Android图片生成器
    Android Studio Prower Save Mode问题
    finished with non-zero exit value 1
    安装pod程序
    小米刷入Recovery
  • 原文地址:https://www.cnblogs.com/stm32f4/p/8330654.html
Copyright © 2011-2022 走看看