原创 信號量、互斥體和自旋鎖的區別

信號量/互斥體允許進程睡眠屬於睡眠鎖,自旋鎖則不允許調用者睡眠,而是讓其循環等待,所以有以下區別應用 1)、信號量和讀寫信號量適合於保持時間較長的情況,它們會導致調用者睡眠,因而自旋鎖適合於保持時間非常短

原创 信號量semaphore

信號量 信號量又稱爲信號燈,它是用來協調不同進程間的數據對象的,而最主要的應用是共享內存方式的進程間通信。本質上,信號量是一個計數器,它用來記錄對某個資源(如共享內存)的存取狀況。一般說來,爲了獲得共享資源,進程需要執行下列操作

原创 Linux驅動程序-硬件訪問筆記

寄存器與內存 他們的區別在哪裏呢? 寄存器和RAM的主要不同在於寄存器操作有副作用(LDD3上講的side effect 或者 邊際效果):當你讀取某個地址時,可能導致該地址內容發生變化,比如很多設備的中斷狀態寄存器只要一讀取,便自

原创 (二)原子操作_zzhere2007

所謂原子操作,就是該操作絕不會在執行完畢前被任何其他任務或事件打斷,也就說,它的最小的執行單位,不可能有比它更小的執行單位,因此這裏的原子實際是使用了物理學裏的物質微粒的概念。   原子操作需要硬件的支持,因此是架構相關的,其AP

原创 個人分析:input結構分析_zzhere2007

在input系統中,先是下面這張圖片 之後是這樣圖片,呵呵先熟悉一下環境,再介紹。 在input中有三個結構體要注意,如下 1.input_dev 這是input設備基本的設備結構,每個input驅動程序中都必須分配初始化這

原创 《LINUX3.0內核源代碼分析》第二章:中斷和異常

原文地址:《LINUX3.0內核源代碼分析》第二章:中斷和異常 作者:xiebaoyou 摘要:第二章主要講述linux如何處理ARM cortex A9多核處理器的中斷、異常。介紹了中斷向量表的入口、通用的中斷處理代碼、中斷

原创 實例:中斷的下半部分之-軟中斷

在linux中斷加入自已的軟中斷 軟硬件環境:linux-2.6.36/s3c2440 步驟如下: 1>在軟中斷定義的枚舉類型列表中加入自已的軟中斷號MY_SOFTIRQ    具體到linux-2.6.36/include

原创 《LINUX3.0內核源代碼分析》第二章:中斷和異常(2)

原文地址:《LINUX3.0內核源代碼分析》第二章:中斷和異常(2) 作者:xiebaoyou 摘要:本文主要講述linux如何處理ARM cortex A9多核處理器的中斷處理過程的C函數部分。主要是在中斷上下文和線程上下文處

原创 《LINUX3.0內核源代碼分析》第二章:中斷和異常(3)

原文地址:《LINUX3.0內核源代碼分析》第二章:中斷和異常(3) 作者:xiebaoyou 摘要:本文主要講述linux如何處理ARM cortex A9多核處理器的中斷處理過程的軟中斷部分。主要包括軟中斷和tasklet。

原创 V4L2總結(1)__使用說明經典_zzhere2007

/**********************************************************************************************************/ //作者:zzher

原创 V4L2總結(4)_代碼示例_2__zzhere2007

//V4L2使用示例程序 //來源:網絡 //時間:2013.08.27 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h>

原创 WatchDog

WatchDog1.先執行命令"insmod wdt.ko",2.再讓WatchDog工作在reset模式“./app wdt_node”。此時一切正常.    其中文件wdt_node由命令“sudo mknode wdt_node c

原创 《LINUX3.0內核源代碼分析》第二章:中斷和異常(4)

原文地址:《LINUX3.0內核源代碼分析》第二章:中斷和異常(4) 作者:xiebaoyou 摘要:本文主要講述linux如何處理ARM cortex A9多核處理器的中斷延遲處理部分。主要包括工作隊列。   法律聲明:《L

原创 Linux中斷/task/工作隊列的應用

1  Linux中斷處理程序的上半部與下半部機制 設備中斷會打斷內核中進程的正常調度和運行,系統對更高吞吐率的追求勢必要求中斷服務儘可能的短小精悍。但是,在大多數真實的系統中,當中斷到來時,要完成的工作往往並不會是短小的,它可能

原创 bus, device, driver之間是怎麼一回事,繼續

 bus, device, driver之間是怎麼一回事,繼續 2010-11-20 22:14:24 分類: LINUX 繼續上一篇。整理虛擬總線的代碼部分:    1.將掛在總線上的設備及驅動的數據各定義成一個結構體;