
驱动开发
名剑霸气
这个作者很懒,什么都没留下…
展开
-
内核中的并发处理机制
内核中处理并发最常用的就是信号量与自旋锁。 1.信号量:信号量在设计上借助了等待队列,即当申请信号量的进程得不到信号量时候,就会被推进这个队列,让它睡眠。从而让出CPU去执行其他的代码,这在中断上下文中是绝对不允许的,只能在进程上下文中使用。当这个信号量被释放时候,这个任务可能被唤醒,从而继续执行。因此如果任务占有锁的时间比较长的话,适合使用信号量。因为它比自旋锁忙等好得多。所花地开销就是进出原创 2012-02-16 13:53:38 · 757 阅读 · 0 评论 -
中断处理
本文导读:中断处理是驱动程序开发中的重点,本文结合内核源码分析了中断上部分和下部分的实现机制Keywords:软中断, tasklet,工作队列 by huangjl中断处理程序是在内核空间执行的例程,而它所运行的环境称为中断上下文,是内核管理硬件的驱动程序的组成部分。应当明确原创 2012-02-16 13:59:37 · 1337 阅读 · 0 评论 -
内存分配和管理
1. 分配内存的底层函数1.1 页:/*********************include/linux/mm_type.h**************************/struct page {unsigned long flags; atomic_t _count; /* Usage count, see below. */原创 2012-02-16 13:58:19 · 607 阅读 · 0 评论 -
利用udev、sys动态创建linux设备结点
在Linux 2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢?下面通过一个实例,说明udev、sys动态创建设备结点的方法。注意代码中红色的部分是为了实现动态创建设备结点添加的。#include #include #include #i转载 2012-03-08 16:49:47 · 492 阅读 · 0 评论 -
网络子系统的实现
网络子系统的实现【本文导读】本篇从内核启动到识别网卡过程,再到驱动程序的具体实现。本篇属于综合性的文章,涉及到内核模块的很多实现细节。从uboot传参到内核启动,子系统的实现,具体驱动程序的实现等,为上层协议栈打下坚实基础。【keywords】参数,netdevice writed by huangjl 2012.3.19 1. 系统(原创 2012-04-10 10:33:34 · 1189 阅读 · 0 评论