二、字符设备驱动开发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