LoveFM

导航

2011年12月8日 #

Linux设备驱动之I/O端口与I/O内存

摘要: 一、统一编址与独立编址该部分来自于:http://blog.chinaunix.net/space.php?uid=21347954&do=blog&id=443670,感谢mason_hu的分享。 从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器…… 对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器( 阅读全文

posted @ 2011-12-08 22:53 LoveFM 阅读(9395) 评论(0) 推荐(3) 编辑

Linux设备驱动之mmap设备操作

摘要: 1.mmap系统调用void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);功能:负责把文件内容映射到进程的虚拟地址空间,通过对这段内存的读取和修改来实现对文件的读取和修改,而不需要再调用read和write;参数:addr:映射的起始地址,设为NULL由系统指定; len:映射到内存的文件长度; prot:期望的内存保护标志,不能与文件的打开模式冲突。PROT_EXEC,PROT_READ,PROT_WRITE等; flags:指定映射对象的类型,映射选项和映射页是否可以共享。MAP_SHAR 阅读全文

posted @ 2011-12-08 20:22 LoveFM 阅读(12891) 评论(0) 推荐(4) 编辑