2016年(80)
发布时间:2016-06-23 16:11:39
1. Tasklet机制分析 上面我们介绍了软中断机制,linux内核为什么还要引入tasklet机制呢?主要原因是软中断的pending标志位也就32位,一般情况是不随意增加软中断处理的。而且内核也没有提供通用的增加软中断的接口。其次内,软中断处理函数要求可重入,需要考虑到竞争条件比较多,要求比较高的编程技巧。所以内核提供了tasklet这样的一种通用的机制。 其实每次写总结的文章,总是想把细节的东西说明白,所以越写越多。这样做的好处是能真正理解其中的机制。但是,内容太多的一个坏处就是难道记忆,所以,在讲清楚讲详细的同时,我还要把精髓总结出来。Task......【阅读全文】
发布时间:2016-03-29 18:00:55
/***********kernel thread的创建*****************/#include<linux/sched.h> //wake_up_process()#include<linux/kthread.h> //kthread_creat,kthread_run()#include<err.h> //IS_ERR(),PTR_ERR()struct task_struct *kthread_create(int (*threadfn)(void*),.........【阅读全文】
发布时间:2016-03-29 17:58:28
我们看到Linux dev目录下面ttyS系列的串口设备的终端,现在用一个uart 控制器的程序来分析下怎么实现的首先是定义了uart driverstatic struct uart_driver XX_uart_driver = {.owner = THIS_MODULE,.driver_name = XX_UART_DEV_NAME, //名字,实际是uart.dev_name = "ttyS", .nr = XX_UART_NUM,.co.........【阅读全文】
发布时间:2016-03-29 17:56:43
通常我们只会在linux native/app 层 读写文件,但可能有一些非常特别的情况下,我们需要直接在Kernel 中读写文件信息。下面给出典型的Code:static struct file *open_file(char *path,int flag,int mode){ struct file *fp; fp=filp_open(path, flag, mode);.........【阅读全文】