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

发布时间:2023年12月17日

一.? 简介

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

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)? 块设备驱动,存储。以固定大小进行数据的读写,块设备能够随机访问,不需要按照顺序地访问数据大小的数据块。

所谓的块设备驱动就是存储器设备的驱动,比如 EMMCNANDSD 卡和 U 盘等存储

设备,因为这些存储设备的特点是以存储块为基础,因此叫做块设备。

(3)? 网络设备驱动。

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

文章来源:https://blog.csdn.net/wojiaxiaohuang2014/article/details/134933106
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。