二、字符设备驱动开发1
时间:2021-08-28
本文章向大家介绍二、字符设备驱动开发1,主要包括二、字符设备驱动开发1使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、应用程序和驱动的交互原理
驱动就是获取外设、或者传感器数据,控制外设,数据会提交给应用程序。Linux驱动编译既要编写一个驱动,还要编写一个简单的测试应用程序。
1、用户空间和内核空间
Linux操作系统内核和驱动程序运行在内核空间;
应用程序运行在用户空间
2、应用程序
1)应用程序访问内核资源,通过:系统调用、异常(中断)和陷入,三种方式;
2)每个系统调用都有一个系统调用号;
3)系统调用处于内核空间,应用程序无法直接访问,因此需要“陷入”到内核,方法就是软中断。陷入内核以后还要指定系统调用号;
二、字符设备驱动开发流程
1、Linux里面一切皆文件,驱动设备表现就是一个/dev下的文件。应用程序调用open函数打开设备。应用程序通过write函数向/dev/xxx写数据。如果要关闭设备那么就是close函数。
2、编写驱动的时候,也需要编写驱动对应的open、close、write函数。字符设备驱动file_operations结构体。
原文地址:https://www.cnblogs.com/bwin/p/15200572.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 批处理模式下运行 top 命令的方法
- 关于CentOs系统自带python和yum卸载后的解决办法
- Linux sftp命令用法总结
- CentOS 7中搭建NFS文件共享存储服务的完整步骤
- centos 7中添加一个新用户并授权的步骤详解
- Linux下Apache HTTP Server 2.4.26安装教程
- 详解linux下查看系统版本号信息的方法(总结)
- 详解Centos8 配置静态IP的实现
- Linux server配置安装Java与Tomcat服务器教程详解
- Ubuntu系统下安装ImageMagick出错的解决过程
- linux 远程控制windows系统下的程序(三种方法)
- 详解Linux上svn命令行批量操作
- 详解linux ntp服务器时间同步设置
- CentOS设置静态IP的方法总结
- ubuntu服务器上快速部署docker的方法