![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux设备驱动
文章平均质量分 66
在路上的少年
原想这一次的远游就能忘记你秀美的双眸就能剪断丝丝缕缕的情愫和秋风也吹不落的忧愁谁曾想到头来山河依旧爱也依旧你的身影刚在身后又到前头
展开
-
I/O端口和I/O内存
每种外设都通过读写寄存器进行控制,大部分外设都有几个寄存器,不管在内存地址空间还是在I/O地址空间,这些寄存器的访问地址是连续的。 在硬件层,内存区域和IO区域没有概念上的区别:他们都通过向地址总线和控制总线发送电平信号进行访问,再通过数据总线读写数据。 尽管硬件寄存器和内存非常相似,但程序员在访问IO寄存器的时候必须注意避免由于CPU或编译器不恰当地优化而改变预期的IO动作。原创 2013-07-18 22:28:55 · 593 阅读 · 0 评论 -
内核数据结构——链表
操作系统内核经常要维护内核数据结构的链表。有时,Linux内核数据结构中同时存在着多个链表的实现代码。为了减少重复代码的数量,内核开发者已经建立了一套标准的循环、双向链表的实现。如果你需要操作链表,那么建议你使用这一内核机制。 当使用这些链表接口时,应该始终牢记这么链表函数不进行任何锁定。如果你的驱动程序有可能试图对同一个链表执行并发操作的话,则有责任实现一个锁方案。否则,崩溃的链表结构体、数据原创 2013-07-28 10:38:13 · 594 阅读 · 0 评论