linux的驱动开发——基于linux的单片机开发简介

1.基于linux的单片机开发和裸机开发的区别

\qquad单片机的裸机开发和基于linux的单片机开发,是有这本质的不同。
\qquad单片机的裸机开发更加底层,它是直接对寄存器进行操作,进而实现单片机的各种功能,即使有些MCU提供了库函数,但是本质还是对寄存器的种种操作。
\qquad基于linux的单片机开发,这里的意思是单片机的芯片上要运行linux操作系统。linux操作系统包括三部分,一是操作系统内核,二是驱动程序,三是应用程序。这里面,驱动程序获取外设,传感器的数据,控制外设;驱动程序获取的数据,可以提交给应用数据,再进行各种利用和处理。所以不同于裸机开发的直接操作寄存器,基于linux的单片机开发,需要编写驱动程序,与单片机的各种外设打交道,从而获取外设的数据,或者控制外设;从外设获取的数据,提交给应用程序,可以进一步加工利用。

2.驱动程序和应用程序

\qquadlinux的操作系统内核和驱动程序运行在内核空间,应用程序运行在用户空间。应用程序访问内核空间时,有三种方式:系统调用,异常和陷入。基于linux的单片机开发,最重要的就是驱动程序的开发,其次是还有一些应用程序的开发,比如一些测试程序。

3.驱动程序的开发

\qquad驱动程序的开发是基于linux下的各种驱动框架的开发;linux下一切皆文件,驱动程序设备的最终表现也是文件,一般表现为/dev/×××,涉及的操作有对文件的打开,关闭,读写等等。

4.驱动程序的开发分类

\qquad字符设备驱动、块设备驱动、网络设备驱动
\qquad字符设备驱动:I/O传输过程中,以字符为单位进行传输。用户对字符设备发出读写请求,硬件设备读写操作基本同时开始。
\qquad块设备驱动:数据以块为单位进程传输,用户对块设备读写时,硬件设备不会立即开始。磁盘类,闪存类都封装成块设备。
\qquad网络设备驱动:网络设备是一类特殊的设备,它不像字符设备和块设备那样通过特定的设备文件进行访问,而是通过socket函数进行访问

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

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

相关文章

【计算机网络复习】1.2.4 TCP/IP参考模型和5层参考模型

TCP/IP参考模型和5层参考模型一、OSI参考模型与TCP/IP参考模型二、5层参考模型一、OSI参考模型与TCP/IP参考模型 相同点: 1、都分层 2、基于独立的协议栈的概念 3、可以实现异构网络互联 不同点 1、OSI定义三点:服务、协议、接口 2、OSI先出现&…

量子物理学家:如果宇宙中所有物体突然消失,会剩下一个「空宇宙」吗?

文章来源:TNW如果量子物理学家能够证明现实世界的一切都是不真实的,会发生什么?你愿意接受这个假设吗?如果说,此时此刻你正在看的这篇文章,其实并不存在,你会不会觉得这句话是在胡说&#xff1f…

linux的驱动开发——交叉编译器

1.交叉编译器 \qquadARM裸机、Uboot移植、linux移植这些都需要在linux系统上进行编译,编译就需要编译器。在linux系统中,可以使用gcc命令对c语言程序进行编译,但gcc编译器是针对X86架构的,现在需要对ARM架构的代码进行编译。所以我…

【计算机网络复习 物理层】2.1.1 物理层基本概念

物理层基本概念一、基本概念一、基本概念 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 物理层主要任务:确定与传输媒体接口有关的特性 >定义标准 机械特性: 定义物理连接的特性,规定…

江西财经大学第二届程序设计竞赛同步赛 H大时钟 (扩展欧几里得)

链接:https://ac.nowcoder.com/acm/contest/635/H来源:牛客网 时间限制:C/C 1秒,其他语言2秒空间限制:C/C 262144K,其他语言524288K64bit IO Format: %lld题目描述 艾兰岛和沃夫岛的时间算法很不一样&…

为什么数学的用途这么大?

来源:遇见数学翻译:萧福坤译自 Science Digest, August 1985原文:http://210.60.224.4/ct/content/1986/00050197/0008.htm我的父亲是一位物理学家,所以我从小耳濡目染,当他与同事讨论问题时,我坐在桌旁,「…

参数列表和数组的相互转换

使用es6的扩展运算符 ...js var arr [1,2,3]; function add(a,b,c){ return a b c; }// add(arr[0],arr[1],arr[2]) add.apply(null,arr); ## 研究Object1. 这是一个函数(类);2. 该类身上有自身的方法还有原型的方法 ![](./img/1.png)1. O…

数据库基础知识——MySQL服务的启动和停止

文章目录1.数据库的启动1.1 从计算机管理启动1.2 从cmd启动2.数据库的停止1.1 从计算机管理停止1.2 从cmd停止\qquad在登录数据库之前,必须保证数据库已经启动。数据库的启动和停止有两种方式:从计算机管理启动和停止和从cmd启动和停止。1.数据库的启动 …

【计算机网络复习 物理层】2.1.2 数据通信基础知识

数据通信基础知识一、典型的数据通信模型二、数据通信相关术语三、三种通信方式四、两种数据传输方式一、典型的数据通信模型 二、数据通信相关术语 通信的目的是传送消息。 数据:传送信息的实体,通常是有意义的符号序列。 信号:数据的电气…

无线网络未来十年十大产业趋势

来源:华为编辑:蒲蒲5G的发展速度非常之快,截止2021年9月,全球已经部署了有176张5G商用网络,超过150万5G站点。5.2亿5G用户的感官体验,也迎来全面升级焕新:高清视频的时长占比提升到了80%;流行的短视频APP已…

git入门(廖雪峰老师)

根据廖雪峰老师的git教程进行学习总结; 1、之前上班用的都是svn进行管理,那么svn和git有什么区别呢? svn是集中式的版本控制系统,而git是分布式版本控制系统,那么集中式和分布式版本控制系统有什么区别呢? …

linux基础知识——进程相关概念

1 什么是程序? \qquad程序,是经过编译完成的二进制文件,程序存储在磁盘上,并不占用系统资源。 2 什么是进程? \qquad进程,是一个抽象概念,进程是程序动态的描述,它在内存中执行&…

【计算机网络复习 物理层】2.1.3 码元、波特、速率、带宽

码元、波特、速率、带宽一、码元二、速率一、码元 码元是指用一个固定时长的信号波形(数字脉冲),代表不同离散值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码…

智慧竞赛正在升温

来源:混沌巡洋舰原文:摘自 edge 系列图书 《那些最重要的科学新发现》迈克斯泰格马克(MaxTegmark):麻省理工学院物理系终身教授,平行宇宙理论研究专家,未来生命研究所创始人;著有《生命3.0》《穿越平行宇宙…

LeetCode算法

一日一题! 转载于:https://www.cnblogs.com/weibo-blog/p/10779370.html

linux基础知识——CPU相关知识

1.CPU处理程序过程 \qquad在存储介质中,从下至上是进程的时间加载的先后顺序,也是存储空间大小的顺序。 2.MMU(内存管理单元) \qquadMMU是位于CPU内部的一个物理器件。在程序运行时,会产生进程,同时产生虚拟内存空间&#xff0c…

【计算机网络复习 物理层】2.1.4 奈氏准则和香农定理

奈氏准则和香农定理一、失真1.1 失真的一种现象 —— 码间串扰二、奈氏准则三、香农定理四、如何区分一、失真 影响失真程度的因素:1、码元传输速率 2、信号传输距离 3、噪声干扰 4、传输媒体质量 1.1 失真的一种现象 —— 码间串扰 码间串扰:接收端收到…

虚拟在左,真实在右:德国学者用AI合成一亿像素逼真3D图像,可任意旋转

来源:AI科技评论编译:杏花编辑:青暮近日,来自德国埃尔兰根-纽伦堡大学的学者提出了一种新颖的神经网络方法,用于3D图像的场景细化和新视图合成。只需要输入点云和相机参数的初始估计,就可以输出由任意相机角度合成的图像&#xff…

phpmyadmin登陆错误:The requested URL /phpmyadmin was not found on this serve

解决方法: 首先,重新安装apache2: sudo dpkg-reconfigure -plow phpmyadmin 配置时记得选择apache2 如果仍然无法登陆,再对phpmyadmin和apache服务器软链接 sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/ssites-enabled/…

linux基础知识——环境变量

1.什么是环境变量? \qquad环境变量,即操作系统中的一些可以设置的参数,用于设置操作系统运行环境。 2.环境变量的特征 \qquad本质就是字符串; \qquad有统一的格式:名值[:值] \qquad值用来描述进程环境信息。 3.常用的…