应用程序和驱动的交互原理

本文探讨了Linux驱动开发中驱动与应用程序的分离,强调内核空间与用户空间的权限区别,介绍了系统调用、异常和陷入在数据交互中的作用。重点讲述了如何通过API间接调用系统调用,以及如何使用open函数操作设备文件。
摘要由CSDN通过智能技术生成

简单的说,驱动就是获取外设、或者传感器数据,控制外设。所涉及的数据会提交给应用程序。Linux 驱动编译既要编写一个驱动,还要我们编写一个简单的测试应用程序APP(用来调试用)。 单片机下(如STM32)驱动和应用都是放到同一个文件(或者说工程)里面,也就是杂糅到一起。而Linux 下驱动和应用是完全分开的。

用户空间(用户态)和内核空间(内核态):

Linux操作系统内核和驱动程序运行在内核空间、应用程序运行在用户空间。。

应用程序想要访问内核资源,怎么办,有三种方法:系统调用、异常(中断)和陷入。

应用程序不会直接调用系统调用,而是通过API函数来间接的调用系统调用,比如POSIX、 API和C库等。unix 类操作系统中最常用的编程接口就是POSIX。

应用程序使用open函数打开一个设备文件。

每个系统调用都有一个系统调用号

系统调用处于内核空间,应用程序无法直接访问,因此需要陷入到内核,方法就是软中断。陷入内核以后还要指定系统调用号
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值