随笔分类 -  《嵌入式Linux开发教程》笔记

摘要:因为面试被问到了设备模型,所以先复习一下这里。前文实现的比如字符设备驱动存在一些弊端: 1. 设备和驱动没有分离,设备的信息是硬编码在驱动中,这给驱动造成了极大的限制,通用性变得很差。 2. 没有类似Windows的设备管理器,不可以方便地查看设备和驱动信息。 3. 不能自动创建设备节点。 4. 驱 阅读全文
posted @ 2020-04-24 15:05 hansenn 阅读(255) 评论(0) 推荐(0)
摘要:4.0、几种IO模型 | | 阻塞 | 非阻塞 | | | | | | 同步 | 阻塞IO | 非阻塞IO | | 异步 | IO多路复用 | 异步IO | 1. 阻塞IO:在资源不可用时阻塞,阻塞发生在驱动中,资源可用后进程被唤醒,在阻塞期间不占用CPU,最常用。 2. 非阻塞IO:调用立即返回( 阅读全文
posted @ 2020-04-22 13:41 hansenn 阅读(1353) 评论(0) 推荐(0)
摘要:这个代码并不能实现真正的串口数据收发,但其能够接收用户想要发送的数据,并且将该数据原封不动回环给收端。 字符设备驱动除了前面搭好的框架后,最终要实现file_operations. 按照下面的步骤可进行验证: 一个驱动支持多个设备 多个设备引入的变化是什么? 首先我们应该向内核注册多个设备号,其次在 阅读全文
posted @ 2020-04-21 11:38 hansenn 阅读(270) 评论(0) 推荐(0)
摘要:3.1、字符设备驱动基础 设备文件通常位于/dev目录下: 其中c表示字符设备。在现在的Linux系统中,设备文件通常是自动创建的,但我们还是可以通过mknod命令手动创建一个设备文件: mknod命令创建了一个节点,在Linux中一个节点代表一个文件,创建一个文件的最主要的工作就是分配一个新的节点 阅读全文
posted @ 2020-04-20 16:48 hansenn 阅读(245) 评论(0) 推荐(0)
摘要:“设备驱动的目的是让设备工作。” “设备驱动提供机制,但不提供策略。” Linux是宏内核的代表;Windows是微内核的代表。 内核模块是被单独编译的一段代码,可以理解为“应用商店”,其可以动态地加载或卸载。 2.1、第一个内核模块程序 在对应的目录下写makefile即可将此程序生成对应的vse 阅读全文
posted @ 2020-04-20 14:35 hansenn 阅读(350) 评论(0) 推荐(0)