Linux设备驱动开发详解
T&P
这个作者很懒,什么都没留下…
展开
-
5---Linux文件系统和设备文件系统
Linux文件操作Linux文件操作涉及哪些系统调用?创建、打开、读写和关闭文件如何创建文件?int creat(const char *filename, mode_t mode);参数mode是什么含义?参数mode 指定新建文件的存取权限,它同umask 一起决定文件的最终权限(mode&umask),umask 是什么含义代表了文件在创建时需要去掉的...原创 2018-09-13 18:05:06 · 279 阅读 · 0 评论 -
9---异步通知与异步IO
异步通知的概念一旦设备就绪,则主动通知应用程序,这样应用程序根不需要查询设备状态。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的阻塞、非阻塞、异步通知几种方式I/O互补 ,根据场合合理选择阻塞 I/O :一直等待设备可访问后再访问, 非阻塞I/O:使用poll()查询设备是否可访问, 异步通知:设备通知自身可访问,实现了异步I/O 异步通知编程信号的接...原创 2018-09-28 10:32:13 · 298 阅读 · 0 评论 -
8---Linux设备中的阻塞和非阻塞IO
阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足。非阻塞操作是指进程在不能进行设备操作时并不挂起,它或者放弃,或者不停地查询,直至可以进行操作为止。//阻塞地读取串口一个字符char buf;fd = open("/dev/ttyS1", O_RDWR);...res ...原创 2018-09-27 15:59:20 · 320 阅读 · 0 评论 -
1---设备驱动概述
软件与硬件之间是什么关系?互补关系软件与硬件有什么不同?硬件较固,是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑与时序逻辑; 软件很灵活,实现了具体应用,它按照各种不同的业务需求而设计,满足了用户的需求。为什么说设备驱动是硬件和软件之间的纽带?设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA 通信,...原创 2018-09-11 15:03:11 · 330 阅读 · 0 评论 -
2---驱动设计的硬件基础
处理器中央处理器体系架构 冯·诺伊曼结构 普林斯顿结构 哈佛结构 存储结构 程序指令存储器和数据存储器 合并存储 分开存储 数据宽度 相同 不同 此外,哈佛结构还采用了独立的程序总线和数据总线,分别作为CPU 与每个存储器之间的专用通信路径,具有较高的执行效率 中央处理...原创 2018-09-11 16:03:05 · 290 阅读 · 0 评论 -
6---Linux字符设备驱动结构
字符设备驱动程序中完成的主要工作是初始化、添加和删除cdev结构体,申请和释放设备号,以及填充file_operations结构体中的操作函数,实现file_operations结构体中的read()、write()和ioctl()等函数是驱动设计的主体工作。cdev结构体 用于描述字符设备1 struct cdev{3 struct kobject kobj; /...原创 2018-09-14 19:26:16 · 164 阅读 · 0 评论 -
7---Linux设备驱动中的并发控制
基本概念并发(concurrency)------指的是多个执行单元同时、并行被执行竞态(race conditions)-------并发的多个执行单元对共享资源的不合顺序地访问,两个以上线程在同一个临界区内同时执行共享资源-----硬件资源和软件上的全局变量、静态变量等解决竞态问题-------保证共享资源互斥访问互斥访问------指一个执行单元在访问共享资源的时候,其他...原创 2018-09-26 09:48:39 · 161 阅读 · 0 评论 -
10---中断与时钟
轮询、中断和异常比较轮询:内核定期对设备进行查询做出相应处理 中断:硬件在需要时向内核CPU发出信号 异常:由于编程失误导致错误,需要内核来处理中断概念CPU 在执行程序的过程中,出现了某些突发事件时CPU 暂停执行当前的程序,转去处理突发事件,处理完毕后CPU 又返回原程序被中断的位置并继续执行。中断机制顶半部和底半部划分顶半部和底半部优势中断会随时发生,产生中断的...原创 2018-09-28 14:21:25 · 128 阅读 · 0 评论 -
3---Linux内核及内核编程
什么是操作系统?指在系统中负责完成最基本功能和系统管理的部分,操作系统有哪些组成部分?内核------操作系统的内在核心 设备驱动程序 启动引导程序 命令行shell 其他种类的用户界面----操作系统的外在表象 基本的文件管理工具和系统工具Linux内核的组成Linux内核源代码目录结构是什么,各目录有什么含义?arch:包含和硬件体系结构相关的代码,每种平台占一...原创 2018-12-11 13:34:36 · 11779 阅读 · 1 评论 -
4---Linux内核模块
Linux内核模块简介什么是模块?Linux 的一种机制,使得编译出的内核本身并不需要包含所有功能,而在这些功能需要被使用的时候,其对应的代码可被动态地加载到内核中。模块具有什么特点?模块本身不被编译入内核映像,从而控制了内核的大小。 模块一旦被加载,它就和内核中的其他部分完全一样。模块有哪些常用命令?https://blog.csdn.net/zwmnhao1980/ar...原创 2018-09-13 09:51:26 · 203 阅读 · 0 评论