LinuxKernel之General
文章平均质量分 81
linux_inside
这个作者很懒,什么都没留下…
展开
-
Linux Module的来龙去脉浅析
本文的目的在分析清楚Linux下module的来龙去脉,相关的code均来自于Linux Kernel 2.6.23. 这个版本现在来说是比较老的版本了,以后有时间我会重新review一下最新的Kernel版本并更新之。但是我个人认为应该大同小异。 先看一个最简单的Hello World Example,该例子来自于LDD[1]第二章节,为了方便阅读,这里我原文拷贝了这个例子:#inc原创 2013-08-03 18:21:57 · 774 阅读 · 0 评论 -
Linux system call的来龙去脉浅析
Linux system call的来龙去脉Application通常都是调用一个C library中一个library库函数,该库函数最后又会通ARM的swi assemble instruction。SWI Instruction执行后,ARM进入Supervisor Mode,之后Linux Kernel会进行一系列的处理,最后调用我们在Linux Kernel中看到那些sys_XXX原创 2013-08-03 19:00:23 · 1837 阅读 · 0 评论 -
Linux Kernel中断子系统来龙去脉浅析
一般来说,在一个device driver中实现中断,是比较简单的,如上面的RTC的例子。其无非就是:1. 定义一个IRQ No。如何将Hardware中断信息map到我们的IRQ No就是get_irqnr_and_base要做得事情,get_irqnr_and_base是一个macro,后面会详细分析之。这个宏的实现往往也是我们如果要将一个标准的Linux Kernel原创 2013-08-05 21:02:43 · 1346 阅读 · 0 评论 -
Linux Kernel驱动开发中常用的并发和竞争处理机制浅析
Linux是一个multi-task的OS。从User Space来看有个多个processes,从Kernel Space来看有多个kernel control path。何谓kernel control path?举例如下:1. 当一个User Application invoke一个system call,这个system call的执行过程就是一个kernel co原创 2013-08-06 22:25:23 · 1422 阅读 · 0 评论 -
Linux Kernel时间子系统之来龙去脉浅析
1.1 从AP来看Linux系统提供的时间机制1.1.1 Time的表达方式在Linux中从AP来看,时间有两种表达方式:1. wall-clock time: 自从1970年1月1日0时0分0秒以来到现在的时间差,理论上精确到nano-second。我们称这个时间点为Linux基准时间(或者linux原创 2013-08-06 21:53:50 · 1289 阅读 · 0 评论 -
Linux Kernel之flush_cache_all在ARM平台下是如何实现的
在驱动程序的设计中,我们可能会用到flush_cache_all将ARM cache的内容刷新到RAM,这是因为ARM Linux中cache一般会被设定为write back的。而通常象DMA是访问不了cache,所以如果我们需要启动DMA将RAM中的内容写到Flash中或LCD framebuffer,那么我们就需要调用flush_cache_all将cache中最新的内容刷新到RAM中。如果原创 2013-08-22 21:51:27 · 9708 阅读 · 0 评论 -
Linux Kernel之Deferred work(Softirq、tasklet、Work queues)来龙去脉浅析
我们由Linux Kernel中断子系统来龙去脉浅析中可以知道Linux Kernel在处理完一个interrupt后就可能会检查是否有sortirq,如果有,且不在interrupt context中,那么就执行softirq,这也是我们在第5章中断子系统中分析中断的处理全过程的时候未能完成分析的部分,本章将继往开来,将softirq的来龙去脉分析清楚。我们现在再此全面看看asm_do_IR原创 2013-08-11 22:56:58 · 1588 阅读 · 0 评论