原创 I2C驅動程序設計(4)—I2C自編設備驅動設計

在分析驅動程序之前我們再來分析一下I2C子系統的模型。I2C的設備驅動中有2中方式,一種是通過通用驅動來編寫用戶驅動。另一種就是直接在I2C子系統中添加一個I2C的設備驅動,比如說針對AT24C02的驅動程序,接下來我們來學習怎麼編寫一個

原创 c語言深度剖析(29)—指針和數組分析(下)

問題:數組名可以當作指針常量使用,那麼指針是否也可以當作數組來使用呢? 通過下標的形式訪問數組中的元素 int main() { int a[5] = {0}; a[1] = 3; a[2] = 5;

原创 c語言深度剖析(30)—C語言中的字符串

1.字符串的概念 字符串是有序字符的集合  字符串是程序中的基本元素之一  C語言中沒有字符串的概念  C語言中通過特殊的字符數組模擬字符串  C語言中的字符串是以 '\0' 結尾的字符數組 2.字符數組與字符串  在C語言中,雙引號

原创 c語言深度剖析(28)—指針和數組分析(上)

1. 數組的本質 數組是一段連續的內存空間;  數組的空間大小爲sizeof(array_type)*array_size;  數組名可看做指向數組第一個元素的指針常量。 問題: a + 1的意義是什麼?結果是什麼?  指針運算的意義是什

原创 USB驅動程序設計(1)—USB總線介紹

1.USB發展史 USB(Universal Serial Bus ),通用串行總線,是一種外部總線標準,用於規範電腦與外部設備的連接和通訊。USB是在1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯合提出的,自1996

原创 USB驅動程序設計(4)—Linux USB驅動程序設計

1.USB驅動模型 USB設備包括配置(configuration)、接口(interface)和端點(endpoint),一個USB設備驅動程序對應一個USB接口,而非整個USB設備。比如說一個MP4的播放設備,他可以播放視頻、也可

原创 移動物體監控系統(1)—聲音報警子系統開發

一. 聲卡驅動開發 1.聲卡驅動架構 1.1 OSS架構 OSS是“開放音頻系統”的縮寫,是Linux系統早期比較常用一種音頻架構!基於文件系統的訪問方式操作底層的音頻設備,用戶空間的程序可以像操作普通文件一樣讀寫相應的音頻設備,與之對應

原创 c語言深度剖析(32)—數組指針和指針數組分析

1. 思考題:下面的聲明合法嗎? int array[5]; int matrix[3][3]; int *pa = array; int *pm = matrix; 合法,第一個爲標準數組的定義,第二個爲二維數組的定義,第三個爲指向數

原创 USB驅動程序設計(5)—USB下載線驅動設計

1.模塊代碼的初始化函數和退出函數 static struct usb_driver dnw_driver = { .name = "dnw", /* 驅動名 */ .probe = dnw_pro

原创 linux線程同步

同步概念 所謂同步,即同時起步,協調一致。不同的對象,對“同步”的理解方式略有不同。如,設備同步,是指在兩個設備之間規定一個共同的時間參考;數據庫同步,是指讓兩個或多個數據庫內容保持一致,或者按需要部分保持一致;文件同步,是指讓兩個或多個

原创 網絡安全傳輸系統(4)—線程池優化

服務器單發模式 初始化->等待連接->處理請求->關閉連接->再次等待連接 服務器併發模式 初始化->等待連接->交給子進程處理請求->再次等待連接 單發服務器不能同時處理多個客戶端請求,併發服務器則可以同時處理多個客戶端請求。併

原创 Linux線程詳解

並行和併發的區別 1. 併發(concurrency):在操作系統中,是指一個時間段中有幾個程序都處於已啓動運行到運行完畢之間,且這幾個程序都是在同一個處理機上運行。其中兩種併發關係分別是同步和互斥。(併發是指同一時刻只能有一條指令執行,

原创 移動物體監控系統(2)—攝像頭子系統開發

一、攝像頭驅動開發 1.攝像頭驅動架構 視頻監控本就是嵌入式Linux的重要應用場合,所以如何合理高效的管理攝像系統,便成爲嵌入式Linux一大熱點!當前最流行的攝像頭軟件架構就是V4L2架構,從字面意思知道是專門爲Linux設計的一個視

原创 進程間通信方式(管道、信號、信號量、共享內存、消息隊列)

進程間通信(IPC)介紹 Linux環境下,進程地址空間相互獨立,每個進程各自有不同的用戶地址空間。任何一個進程的全局變量在另一個進程中都看不到,所以進程和進程之間不能相互訪問,要交換數據必須通過內核,在內核中開闢一塊緩衝區,進程1把數據

原创 移動物體監控系統(3)—移動監控主系統的設計與開發

一. Ffmpeg的移植 ffmpeg是一個開源免費跨平臺的視頻和音頻流方案,它提供了錄製、轉換以及流化音視頻的完整解決方案。移植ffmpeg的目的主要是爲了使motion能支持將捕獲到的視頻流轉換成avi格式的視頻文件進行存儲。因此,我