字符设备驱动第十四课----IO读写
2016-12-08 16:28
176 查看
概述
1.内存屏障
往往操作外设IO是这样的过程: 虚拟地址对应的内存空间->高速缓存->外设控制器->输出
因此,当要让外设输出时,单纯的操作内存空间不一定能达到目的,有可能本次操作外设输出的是前几次高速缓存中的东西。故要达到实时性还要清缓存。这就是内存屏障。解决内存屏障问题就要使用内核提供的专用接口函数,不能单纯地只往你某个映射好的内存地址中写值。
2.接口函数
void ioread(u16 off, u32 v, u32 mask, u32 *val)
void iowrite(u16 off, u32 v, u32 mask, u32 *dst);
工程实例
相关文章推荐
- Linux驱动学习(4-字符设备-自动创建字符设备并读写)
- 字符设备驱动第八课------读写锁
- 字符设备驱动第五课----读写
- 字符设备驱动之循环缓冲队列+读写等待
- Linux字符设备驱动对IO操作有三种方式
- Linux设备驱动第六篇:高级字符驱动操作之iotcl
- 字符设备驱动基础篇4——字符设备驱动读写接口的操作实践
- Linux设备驱动第六篇:高级字符驱动操作之iotcl
- 字符设备驱动高级篇6——内核提供的读写寄存器接口
- Linux 字符设备驱动开发--内存读写操作
- 自己写的linux字符设备驱动读写IO端口
- 字符设备驱动第八课----异步通知(信号驱动IO)
- 《Linux4.0设备驱动开发详解》笔记--第六章:Linux字符设备驱动
- 字符设备驱动模型
- Linux 内核--总线设备驱动模型(字符/块/网络设备 && platform设备)
- 嵌入式Linux驱动学习之路(二十七)字符设备驱动的另一种写法
- Linux 字符设备驱动简单总结
- linux设备驱动第三篇:写一个简单的字符设备驱动
- Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析
- 一个简单的字符设备驱动