• 驱动开发2


    最简单的驱动程序

    一、驱动的硬件操作函数

    二、file_operation结构体管理硬件操作函数

    三、入口函数,

    1、注册file_opeation到内核数组中去

    2、将物理地址转换虚拟地址

    3、设备节点自动创建函数

    四、出口函数

    1、撤销地址转换

    2、销毁设备节点

    分层思想

    一、leddrv.c

       硬件操作函数以及它的上司file_operation结构体

      入口函数,

          1、注册file_opeation到内核数组中去

          2、设备节点自动创建函数

      出口函数

          1、销毁设备节点

    二、LED资源分配

    led_resource

    1、定义引脚选择结构

    2、创建一个函数获得引脚选择结构体的指针

    board_A_led.c

    1、创建引脚选择结构体的实例,并且赋值

    2、完善引脚结构体指针函数,返回指向实例的指针

    三、LED硬件相关操作

    led_opr.h

    定义led操作结构体、定义一个函数获得led操作结构体的指针

    chip_demo_gpio

    1、创建led控制结构体的实例并且立于函数赋值,

    2、创建led控制函数、led初始化函数

    3、完善函数,获得led控制函数结构体的指针

    总线设计思想

    一、公共部分

    leddrv.h 

    定义三个函数封装了底层的设备节点创建、设备节点销毁、注册led_operations结构体(就是换一个指针指向led_operation结构体

    设备节点的创建是我们自己创建,因为有多个,后面自己会调用

    1. #ifndef _LEDDRV_H
    2. #define _LEDDRV_H
    3. #include "led_opr.h"
    4. void led_class_create_device(int minor);
    5. void led_class_destroy_device(int minor);
    6. void register_led_operations(struct led_operations *opr);
    7. #endif /* _LEDDRV_H */

    leddrv.c

    完善设备节点创建、设备节点销毁、注册led_operation封装函数

    构建file_operation结构体,并且将对应函数进行赋值

    入口函数

    注册file_operations,

    出口函数

    撤销注册的file_operations结构体

    撤销设备节点的前置

    二、LED资源分配

    注册platform_device 函数

           创建驱动资源结构体platform_device结构体

                       创建资源分配结构体数组

    三、LED硬件相关操作

    chip_demo_gpio

    入口函数

    1、注册硬件驱动结构体

           匹配成功函数

                           probe记录引脚信息

                          创建设备节点

           匹配失败 

                  销毁设备节点

    2、注册硬件操作结构体

          led引脚初始化

          控制led引脚

    设备树

    将led资源分配写成设备树的形式简化了代码

    Printctrl 子系统和GPIO子系统

    将对硬件的具体操作完全封装了,我们只需要调用指定的函数就可以完成

  • 相关阅读:
    智能合约自动化工具:示例指南
    springboot教室实验室预约系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT
    INI 配置文件
    微信3.7版小程序数据分析
    AJAX and Javaweb
    【Python】图像和办公文档的处理
    【快应用】如何实现快应用页面退出时弹框确认
    零零信安-D&D数据泄露报警日报【第29期】
    Qt 中大尺寸图片的处理
    JavaScript 基本数据类型 和基本包装类型
  • 原文地址:https://blog.csdn.net/qq_43448818/article/details/127990826