裸机开发与Linux驱动开发的区别
2023-12-13 05:55:54
一.? 简介
裸机开发,即我们常说的不带系统的单片机开发。
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)? 块设备驱动,存储。以固定大小进行数据的读写,块设备能够随机访问,不需要按照顺序地访问数据大小的数据块。
所谓的块设备驱动就是存储器设备的驱动,比如 EMMC、NAND、SD 卡和 U 盘等存储
设备,因为这些存储设备的特点是以存储块为基础,因此叫做块设备。
(3)? 网络设备驱动。
一个设备不说是一定只属于某一个类型。例如,USB WIFI,? SDIO WIFI,属于网络设备驱动,因为其又有USB和SDIO,因此,也属于字符设备驱动。
文章来源:https://blog.csdn.net/wojiaxiaohuang2014/article/details/134933106
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!