裸机开发与Linux驱动开发的区别

一.  简介

裸机开发,即我们常说的不带系统的单片机开发。

Linux驱动开发,即带文件系统的Linux驱动的开发。

二.   裸机开发与Linux驱动开发的区别

1.  裸机开发

比较底层,跟寄存器打交道,有些 MCU提供了库。

2. Linux驱动开发

(1)  Linux下驱动开发直接操作寄存器不现实。

(2)  根据Linux下的各种驱动框架进行开发。一定要满足框架,也就是Linux下各种驱动框架的掌握。

例如,Linux下对于 GPIO,有一整套的IO驱动框架。我们只要按照要求把IO相关属性告诉系统,Linux会提供一些 API函数,直接使用这些 GPIO操作函数即可。

(3)  驱动最终表现就是/dev/xxx文件。打开、关闭、读写、。。。

(4)  现在新的内核支持设备树,这是一个 .dts文件,此文件 描述了板子的设备信息。

三.  Linux驱动开发分类

linux驱动分为三大类:

(1)   字符设备驱动,最多的。字符设备是Linux中最基本的一类设备驱动,我们常见的点灯、按键、IIC、SPI、LCD等等都是通过字符设备驱动框架来进行开发的。字符设备是一个顺序的数据流设备,字符设备驱动是通过一个一个字节流的方式来进行读写操作设备,读写数据是分先后顺序的。

(2)  块设备驱动,存储。以固定大小进行数据的读写,块设备能够随机访问,不需要按照顺序地访问数据大小的数据块,

(3)  网络设备驱动。

一个设备不说是一定只属于某一个类型。例如,USB WIFI,  SDIO WIFI,属于网络设备驱动,因为其又有USB和SDIO,因此,也属于字符设备驱动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MQ-Det: Multi-modal Queried Object Detection in the Wild

首个支持视觉和文本查询的开放集目标检测方法 NeurIPS2023 文章:https://arxiv.org/abs/2305.18980 代码:https://github.com/YifanXu74/MQ-Det 主框图 摘要 这篇文章提出了MQ-Det,一种高效的架构和预训练策略,它利用文本描述的…

Spring框架中的五种常用设计模式

1、单例模式 Spring 的 Bean 默认是单例模式,通过 Spring 容器管理 Bean 的⽣命周期,保证每个 Bean 只被 创建⼀次,并在整个应⽤程序中重用。 2.工厂模式 Spring 使⽤⼯⼚模式通过 BeanFactory 和 ApplicationContext 创建并管理 Bean 对象…

以csv为源 flink 创建paimon 临时表相关 join 操作

目录 概述配置关键配置测试启动 kyuubi执行配置中的命令 bug解决bug01bug02 结束 概述 目标:生产中有需要外部源数据做paimon的数据源,生成临时表,以使用与现有正式表做相关统计及 join 操作。 环境:各组件版本如下 kyuubi 1.8…

Python从门到精通(九):numpy科学计算库

​ Numpy 这是一个三方的库,是很多科学与工程库的基础。在机器学习中应用广泛。 import numpy as np。 数组运算 import numpy as npax np.array([1, 2, 3, 4]) ay np.array([5, 6, 7, 8])type(ax) print(f{ax} * 2 {ax * 2}) #[2 4 6 8] print(f{ax} 10 {a…

Spring(Spring/Springboot 的创建) 基础

一. Spring 1.1 Spring是什么? Spring 指的是 Spring Frameword(Spring 框架),它是一个开源框架。 Spring 是包含了众多工具方法的IoC容器。 1.2 什么是容器? 容器时用来容纳某种物品的装置。 我们之前接触到的容器: • List/Map ->…

内存cache大量使用问题导致应用异常问题

概述 28s应用崩溃查看内存使用有大量cache。 分析 查看free 信息平时的确存在大量cache使用的情况查看dmes信息发现filesendserver崩溃 崩溃信息为系统调用 查看到page allocation failure:order 5 同时也看到系统内存使用情况 查看到系统实际还有部分内存为空闲内存&am…

【Android开发-26】Android中服务Service详细讲解

1,service的生命周期 Android中的Service,其生命周期相较Activity来说更为简洁。它也有着自己的生命周期函数,系统会在特定的时刻调用对应的Service生命周期函数。 具体来说,Service的生命周期包含以下几个方法: on…

[笔记] 使用 qemu/grub 模拟系统启动(单分区)

背景 最近在学习操作系统,需要从零开始搭建系统,由于教程中给的虚拟机搭建的方式感觉还是过于重量级,因此研究了一下通过 qemu 模拟器,配合 grub 完成启动系统的搭建。 qemu 介绍 qemu 是一款十分优秀的系统模拟器,…

Linux上进行Nacos安装

Nacos安装指南 仅供参考,若有错误,欢迎批评指正! 后期会继续上传docker安装nacos的过程! 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好…

《C++新经典设计模式》之第7章 单例模式

《C新经典设计模式》之第7章 单例模式 单例模式.cpp 单例模式.cpp #include <iostream> #include <memory> #include <mutex> #include <vector> #include <atomic> using namespace std;// 懒汉式&#xff0c;未释放 namespace ns1 {class Gam…

手动搭建koa+ts项目框架(日志篇)

文章目录 前言一、安装koa-logger二、引入koa-logger并使用总结如有启发&#xff0c;可点赞收藏哟~ 前言 本文基于手动搭建koats项目框架&#xff08;路由篇&#xff09;新增日志记录 一、安装koa-logger npm i -S koa-onerror and npm i -D types/koa-logger二、引入koa-lo…

【每日一题】【12.11】1631.最小体力消耗路径

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 1631. 最小体力消耗路径https://leetcode.cn/problems/path-with-minimum-effort/这道题目的核心思路是&#xff1a;使用了二分查找和BFS &a…

PHP基础(2)

目录 一、PHP 数据类型 二、PHP 字符操作函数 strlen() str_word_count() strrev() strpos() str_replace() 一、PHP 数据类型 PHP 有八种基本数据类型和两种复合数据类型&#xff1a; 整型&#xff08;int&#xff09;&#xff1a;表示整数&#xff0c;可以是正数或负数&am…

线程Thread源代码思想学习1

1.启动线程代码 public class MultiThreadExample {public static void main(String[] args) {// 创建两个线程对象Thread thread1 new Thread(new Task());Thread thread2 new Thread(new Task());// 启动线程thread1.start();thread2.start();} }class Task implements Ru…

EXPLAIN 执行计划

有了慢查询语句后&#xff0c;就要对语句进行分析。一条查询语句在经过 MySQL 查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划&#xff0c;这个执行计划展示了接下来具体执行查询的方式&#xff0c;比如多表连接的顺序是什么&#xff0c;对于每个表采用什么访…

记录 DevEco 开发 HarmonyOS 应用开发问题记录 【持续更新】

HarmonyOS 应用开发问题记录 HarmonyOS 应用开发问题记录一、预览器无法成功运行?如何定位预览器无法编译问题? 开发遇到的问题 HarmonyOS 应用开发问题记录 一、预览器无法成功运行? 大家看到这个是不是很头疼? 网上能看到许多方案,基本都是关闭一个配置 但是他们并…

InitializingBean初始化--Spring容器管理

目录 InitializingBean--自动执行一些初始化操作spring初始化bean有两种方式&#xff1a;1.优点2.缺点2.PostConstruct 注解2.举例使用InitializingBean接口 和PostConstruct3.初始化交给容器管理4.与main入口函数有什么区别5.在 Spring 中&#xff0c;有两种主要的初始化 bean…

【Java SE】带你识别什么叫做异常!!!

&#x1f339;&#x1f339;&#x1f339;个人主页&#x1f339;&#x1f339;&#x1f339; 【&#x1f339;&#x1f339;&#x1f339;Java SE 专栏&#x1f339;&#x1f339;&#x1f339;】 &#x1f339;&#x1f339;&#x1f339;上一篇文章&#xff1a;【Java SE】带…

Android获取Wifi网关

公司有这样一个应用场景&#xff1a;有一台球机设备&#xff0c;是Android系统的&#xff0c;它不像手机&#xff0c;它没有触摸屏幕&#xff0c;所以我们对球机的操作很不方便&#xff0c;于是我们搞这样一个设置&#xff1a;点击球机电源键5次分享出一个热点&#xff0c;然后…

【JVM从入门到实战】(一) 字节码文件

一、什么是JVM JVM 全称是 Java Virtual Machine&#xff0c;中文译名 Java虚拟机。 JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 二、JVM的功能 解释和运行 对字节码文件中的指令&#xff0c;实时的解释成机器码&#xff0c;让计算机…