Linux-驱动开发-基础温习

news/2024/10/21 20:28:25/

一、裸机开发和驱动开发的区别:

裸机开发:底层(相对于linux来说),库

二、linux驱动开发-根据各种框架进行开发

1、 外设比较多,资源多,资料非常少,官方的SDK;直接操作寄存器不显示
eg: im6ull: mpu应用处理器;
2、根据linux下各种驱动框架进行开发。各种驱动框架的掌握
3、驱动最终表现就是/dev/xxx文件。打开、关闭、读写。。。
4、内核支持设备树,.dts文件,此文件,描述板子的设备信息。

三、linux驱动开发分类

驱动分为三大类
1、字符设备,最多的;gpio\iic\spi
2、块设备;SD卡 、EMMC,以固定大小长度
eg:SD卡 一个扇区 512k字节,存储
3、网络设备;网卡 usb网卡,WIFI网卡,
一个设备不一定属于某一个类型;例如:USB WIFI,SDIO WIFI属于设备驱动,因为既有USB、SDIO,也属于字符设备驱动。

字符设备驱动开发

应用程序和驱动的交互原理
linux下app和驱动分开的;设计—内核空间(驱动,内核态)、用户空间(用户态),分开目的:安全
访问内核:
1、系统调用 ;POSIX、API、 C库
在这里插入图片描述

2、异常
3、陷入

驱动获取外设 控制外设;数据提交应用程序。
在这里插入图片描述


http://www.ppmy.cn/news/49169.html

相关文章

FlinkX的安装与使用(异构数据同步工具——flinkx)

异构数据同步工具——flinkx - 知乎 一、概要简介 FlinkX是由袋鼠云开源基于Flink的分布式离线和实时相结合的数据同步框架,既可以采集静态的数据比如:MYSQL,HDFS等,也可以采集实时变化的数据比如:MYSQL BINLOG,KAFKA等。目前官方…

使数组严格递增

题目描述 给你两个整数数组 arr1 和 arr2&#xff0c;返回使 arr1 严格递增所需要的最小「操作」数&#xff08;可能为 0&#xff09;。 每一步「操作」中&#xff0c;你可以分别从 arr1 和 arr2 中各选出一个索引&#xff0c;分别为 i 和 j&#xff0c;0 < i < arr1.l…

【Leetcode -21.合并两个有序链表 -83.删除排序链表中的重复元素】

Leetcode Leetcode-21.合并两个有序链表Leetcode-83.删除排序链表中的重复元素 Leetcode-21.合并两个有序链表 题目&#xff1a;将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 […

诊断报文和通讯报文有什么区别?

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

聚焦商会 | 活动彰显一个商会的战斗力与影响力

4月13日&#xff0c;北京厦航嘉年华酒店。 一个普通的日子&#xff0c;对北京茶业企业商会来说却是值得纪念的一天&#xff0c;可以浓笔重墨书写的一天。 一天成功举办了三场活动&#xff0c;得到社会各界的支持与肯定。 北京茶业企业商会是如何做到的&#xff1f;经过与商会领…

Vue(数据绑定、el和data多种写法、理解MVVM、数据代理)

一、数据绑定 1. vue中有两种数据绑定&#xff08;通过开发者工具进行查看&#xff09; 1. 单项绑定&#xff08;v-bind&#xff09;数据只能从data流向页面 在输入框中中输入vue实例中的数据没有变化 2. 双向绑定&#xff08;v-model&#xff09;数据能从data流向页面&#x…

Linux应用编程(进程)

一、进程与程序 注册进程终止处理函数 atexit() #include <stdlib.h> int atexit(void (*function)(void));使用该函数需要包含头文件<stdlib.h>。 函数参数和返回值含义如下&#xff1a; function&#xff1a;函数指针&#xff0c;指向注册的函数&#xff0c;此…

Shell 脚本编程

1. shell 概述 &#x1f95e; shell 是一个命令行解释器&#xff0c;它能接受应用程序、用户 的命令&#xff0c;然后调用操作系统内核。 ⭐ 还是一门 功能强大的编程语言&#xff0c;易编写、易调试、灵活性强。 2. shell入门 &#xff08;1&#xff09;脚本格式 &#x1f…