Linux内核驱动开发(二)

2023-05-16

LED设备驱动

  • LED基本硬件原理(以QT210为例)

在这里插入图片描述
通过配置GPIO,把相应的GPIO设置成高电平或低电平,达到点灯。

  • LED设备驱动的代码
    在这里插入图片描述
    在这里插入图片描述
    leds_create_device 初始化设备

    • 核心数据结构初始化
      在这里插入图片描述
      在这里插入图片描述
      设备号
      在这里插入图片描述
      major>0 :指定了设备号;major==0:没有指定
      在这里插入图片描述

    • 数据结构注册:添加到内核字符设备链表中,就是说内核可以看到
      在这里插入图片描述
      class_create:初始化内核class结构

    • 加入到系统,创建设备文件
      在这里插入图片描述

    leds_init_gpm 初始化GPIO

    在这里插入图片描述在这里插入图片描述
    与初始化正好相反

  • 测试LED设备驱动的代码
    在这里插入图片描述

  • 总结 - 遵照规范

    • cdev_init
    • 设备号
    • cdev_add
    • class_create
    • device_create:创建设备文件
    • __leds_ioctl
    • __leds_write

RTC驱动

  • RTC驱动的结构框图
    在这里插入图片描述

  • platform设备驱动的一般写法

    • s3c_device_rtc
      在这里插入图片描述
    • smdkv210_devices
    • 设备驱动的probe函数等
写驱动程序,一定区分driver和decvice!
  • RTC驱动的代码分析

    rtc_dev.c -> interface -> rtc_s3c.c

    class.c , rtc_dev.c :建立/dev/rtc0设备,同时注册相应的操作函数

    interface.c:作为中间层,做一个传递和封装

    rtc_s3c.c:具体的物理实现,各种操作硬件模块的函数

    rtc_sysfs.c:

    rtc_proc.c:

从RTC设备看所有驱动的写法:

  1. 所有驱动第一步是注册“驱动程序”。
  2. 注册“设备”。
  3. 系统在初始化时,会调用驱动程序的probe函数,完成基本硬件初始化和设备的注册。

电容触摸屏驱动

  • 基本硬件工作原理
  • Linux中输入子系统
  • 代码分析
  • linux内核的I2C模型

网络设备驱动

  • 网络设备驱动特点
  • 网络设备驱动的分层
  • sk_buff以及围绕sk_buff的操作
  • 底层设备驱动
  • 小结

声卡驱动

  • Linux下声卡驱动的架构
  • alsa声卡设备简介
  • 代码分析
  • 工作重点

LCD驱动

  • framebuffer设备概述
  • 编写访问framebuffer设备的程序
  • framebuffer驱动架构和实现过程

nandflash驱动

  • 硬件原理
  • nandflash驱动的框架
  • nandflash驱动实现的细节
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux内核驱动开发(二) 的相关文章

  • CentOS8 图形界面和命令行切换

    1 查看目前默认的启动默认 systemctl get default 命令行模式 multi user target 图形界面模式 graphical target 2 设置为图形界面模式 systemctl set default gr
  • Java实现微信(主、子商户模式)及支付宝支付

    一 业务需求 实现APP微信 支付宝支付 xff0c 后端需要做生成预支付单 xff0c 响应支付结果 xff1b 微信商户采用子商户模式 二 参考官方文档 微信普通商户 xff1a https pay weixin qq com wiki
  • Java判断整数是否为回文数

    回文数 xff0c 是指一个数的正序 xff08 从左到右 xff09 与其倒序 xff08 从右到左 xff09 相等的数 核心思想是把这个整数倒过来 xff0c 再与这个数进行比较 xff0c 若相等 xff0c 则此数为回文数 xff
  • geoserver集群部署

    geoserver集群部署 环境准备系统准备软件准备插件准备配置jdk安装tomcat部署geoserver安装mqgeoserver配置jms修改tomcat 启动文件新建broker xml放入cluster文件内容如下 三个节点均要新
  • Mathtype闪退、未嵌入office系统问题解决方法

    由于操作系统的设置和之前安装过的东西的不同 xff0c 每个人在安装mathtype时遇到的问题可能也不同 xff0c 本篇文章解决了mathtype的闪退 没有自动嵌入office的问题 安装过后出现的问题 xff1a 一 安装破解版后打
  • 在树莓派上搭建MQTT服务器

    一 MQTT协议 实现MQTT协议需要客户端和服务器端通讯完成 xff0c 在通讯过程中 xff0c MQTT协议中有三种身份 xff1a 发布者 xff08 Publish xff09 代理 xff08 Broker xff09 xff0
  • 树莓派和arduino的串口通信

    一 树莓派环境安装 1 安装GPIO模块 wget https span class token punctuation span span class token operator span sourceforge span class
  • Wifi模块ESP8266-01的初始化和编程环境的搭建

    ESP8266 01引脚图 xff1a Vcc接的是3 3V xff01 一 烧写AT固件 使用烧录工具插进电脑 xff0c 打开固件烧写程序 xff0c 烧入厂家提供的固件 测试 xff1a 打开串口助手XCOM xff0c 插拔TTL转
  • 阿里云平台+NodeMCU(arduino编程)实现MQTT收发【二】烧录NodeMCU

    这里首先要设置好阿里云平台 xff0c 参见上一篇文章 代码可以从这里下载 1 添加esp8266板子 文件 首选项 附加开发板管理器网址 xff0c 输入 xff1a http arduino esp8266 com stable pac
  • 阿里云平台+NodeMCU(arduino编程)实现MQTT收发【三】利用阿里云进行可视化开发

    应用开发 aliyun com 新建 输入应用名称 如果没有项目就新建一个项目 然后就是像PPT一样制作网页 xff0c 其中数据源配置需要关联产品和设备 xff0c 如下图所示 制作好之后发布即可 xff0c 如果不绑定自己的域名则需要登
  • windows10 iis自带的ftp 在使用filezilla的时候提示 550

    windows10 iis自带的ftp 在使用filezilla的时候提示 550 检查防火墙检查IIS的授权规则设置 检查防火墙 检查防火墙对FTP的支持 点击左侧允许应用和功能通过防火墙 在FTP服务器右侧打勾 检查IIS的授权规则设置
  • 【linux】debian安装apache2并创建虚拟站点

    前言 教程将会讲解如何在debian系统上安装apache2并且在80端口部署多个网站 环境准备 1 本次使用的服务器为debian10 2 睿智头脑和一双手 教程步骤 1 更新apt 这里我就不放设置更新源头的了 xff0c 网上一搜一大
  • Springboot整合富文本编辑器wangEditor(上传文件到七牛云)

    背景 最近项目上要用到富文本编辑器 xff0c 开始想用Ueditor 发现需要配置的东西比较多 xff0c 折腾了好久没弄好 xff0c 后来发现wangEditor比较好整合 xff0c 又轻又好用 xff0c 能满足大多需求 xff0
  • Debian10 设置允许root登录

    root登录 因为Bebian默认不允许 root登录 xff0c 修改文件配置 修改gmd3的登录文件 编辑文件 span class token function nano span etc gdm3 daemon conf 修改内容
  • 1487:【例 2】北极通讯网络

    1487 xff1a 例 2 北极通讯网络 时间限制 1000 ms 内存限制 65536 KB 提交数 701 通过数 321 题目描述 原题来自 xff1a Waterloo University 2002 北极的某区域共有 n 座村庄
  • 虚拟机ubuntu18.04突然无法上网了(问题解决)

    问题描述 xff1a VMware虚拟机下Ubuntu18 04突然上不了网的问题 xff1a 如下图所示 xff1a 更改这里的三种连接方式都是这样 分析 xff1a IP冲突或者配置出了问题 xff0c 需重新更新设置 解决 xff1a
  • 视频转GIF动图MATLAB源码

    闲来无事 xff0c 做一个视频转GIF的代码 xff0c 整点花活 xff0c 感觉自己做会很有意思 可以对原视频进行矩形截取 当然 xff0c 实现的方式不唯一 xff0c 此处的供借鉴使用 话不多说 xff0c 直接上代码 注释很详细
  • mybatis-plus 自定义分页

    mybatis plus 自定义分页 实现层Impl span class token annotation punctuation 64 Service span span class token keyword public span
  • 达梦数据库SQL日志分析工具Dmlog的使用

    1 使用条件 运行环境预先安装Java环境 xff1b 支持liunx和windows系统运行 说明 xff1a 推荐使用java1 8版本 xff0c linux最小化安装最少要安装打印服务组件 xff0c windows下不支持java
  • 洛谷 P1825 [USACO11OPEN]Corn Maze S(bfs)

    题目传送 1 这仅仅是一道加了传送门的bfs 2 仅仅加了一个传送门 xff0c 就卡了我一下午 3 门存在不成对的情况 span class token macro property span class token directive

随机推荐