完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
O***oy观点:本帖子您应该学到的知识点就是,什么是字符型设备,块型设备,网络设备,和mtd设备驱动的特点。大家可以根据该帖子提出的观点,baidu,google进行扩展阅读。 Linux设备驱动程序在Linux的内核源代码中占有很大的比例,源代码的长度日益增加,主要是驱动程序的增加。在Linux内核的不断升级过程中,驱动程序的结构还是相对稳定。Linux设备驱动架构的不断发展中始终坚持的基本思想就是尽量抽取设备特性的共同点,把最复杂的设备驱动架构程序代码交给Linux的内核和驱动子系统开发人员,而留给Linux的驱动编写者更少的工作并使设备更趋于完美的工作。 O***oy觉得:说白了就是Linux开发人员尽量把一些设备驱动所涉及到的共性包装起来,建立完善的设备驱动架构,而让我们这种驱动开发者只需要写很少的代码就能完成设备驱动的编写,而且我们的确是从Linux的这个思想上得到的益处。比如u***驱动,sd卡驱动,Linux已经根据sd卡,u***协议实现了所有代码,而留给我们的只需要告诉u***,sd卡设备的寄存器的真实地址,和设置很少的clock等针对特定某款芯片所作的寄存器设置。 Linux系统的设备分为字符设备(char device),块设备(block device)和网络设备(network device)三种。字符设备是指存取时没有缓存的设备。块设备的读写都有缓存来支持,并且块设备必须能够随机存取(random access),字符设备则没有这个要求。典型的字符设备包括鼠标,键盘,串行口等。块设备主要包括硬盘软盘设备,CD-ROM等。一个文件系统要安装进入操作系统必须在块设备上。 网络设备在Linux里做专门的处理。Linux的网络系统主要是基于BSD unix的socket机制。在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。 O***oy认为:这里有必要阐述下MTD设备驱动,mtd驱动是所有nand,norflash驱动的基础,在linux设备驱动中算是比较出名而且比较容易编译的一类驱动程序,该驱动的特性就是既有块设备驱动的特性,也有字符型设备驱动的特点。比如说我们可以操作块设备节点mtdblock0,也可以操作字符型设备驱动节点mtd0来对mtd类型的设备进行操作 更多资讯可加交流群QQ277686564 QQ2905283896 |
|
|
|
878 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
936 浏览 2 评论
2044 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1145 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1568 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:22 , Processed in 0.494723 second(s), Total 67, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号