原创 cdev_alloc和cdev_init

內核中每個字符設備都對應一個 cdev結構的變量,下面是它的定義:linux-2.6.22/include/linux/cdev.hstruct cdev { struct kobject kobj;          // 每個 cd

原创 【圖解】Linux下C程序進程地址空間佈局

  【圖解】Linux下C程序進程地址空間佈局 我們在學習C程序開發時經常會遇到一些概念:代碼段、數據段、BSS段(Block Started b

原创 linux驅動基本結構分析

/*driver test code */ #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/cdev.

原创 class_create() 詳解

http://blog.csdn.net/xxu0123456789/article/details/6339661   class_create() 在剛開始寫Linux設備驅動程序的時候,很多時候都是利用mknod命令手動創建

原创 Linux Platform Device and Driver

Linux Platform Device and Driver   從Linux 2.6起引入了一套新的驅動管理和註冊機制:Platform_device和Platform_driver。 Linux中大部分的設備驅動,都可以使用這套機

原创 struct device結構體

struct device結構體   struct device結構體(2.6.23)   一、定義: linux/include/linux/device.h struct device {         struct klist

原创 linux 庫的編譯方法

Linux下編譯庫 分類: Linux 2011-10-09 20:32 101人閱讀 評論(0)收藏 舉報       一般爲了不讓他人看到源碼,也爲了維護,我們常把源碼封裝成一個一個的庫,而庫有靜態庫和動態庫之分(根據鏈接時期的

原创 Linux之GCC命令 -- 解析GCC編譯的四個過程

在Linux下進行C語言編程,必然要採用GNU GCC來編譯C源代碼生成可執行程序。Gcc指令的一般格式爲: Gcc [選項] 要編譯的文件 [選項] [目標文件]。其中,目標文件可缺省,Gcc默認生成可執行的文件名爲:編譯文件.out

原创 linux下線程的同步

    同步是也是一種互斥,但需要通過一定機制實現訪問者對資源的有序訪問。下面是linux下線程同步的代碼。線程2的先打印,然後才能輪到線程1打印。 #include <stdio.h> #include <pthread.h> #inc

原创 device_create ()詳解

  在驅動程序中初始化入口函數中,向內核註冊一個設備後,往往要註冊一個類 例如static int __init mydriver_init(void) //驅動程序的初始化 {     ……     MYDRIVER_Major =

原创 JRTPLIB庫在Linux平臺上的編譯

JRTPLIB庫在Linux平臺上的編譯 1、jrtplib簡介   RTP 是目前解決流媒體實時傳輸問題的最好辦法,要在 Linux 平臺上進行實時傳送編程,可以考慮使用一些開放源代碼的 RTP 庫,如 LIBRTP、JRTPLIB 等

原创 linux 下線程的互斥

    進程之間的關係主要有兩種,同步與互斥。所謂互斥,是指散步在不同進程之間的若干程序片斷,當某個進程運行其中一個程序片段時,其它進程就不能運行它 們之中的任一程序片段,只能等到該進程運行完這個程序片段後纔可以運行。所謂同步,是指散步在

原创 系統字節序檢測的兩種方法

系統字節序檢測的兩種方法 下面代碼示範了兩種檢測系統字節序的方法。 第一種方法,使用強制類型轉換的方式。C 語言在把佔用2個字節的 short 變量強制轉換爲 char 之後,會把 short 變量的首地址賦給 char 變量,

原创 Linux字符設備驅動程序的註冊

字符設各是Linux中最簡單的設備。   在Linux中,字符設各是用一個叫做字符設備結構的數據結構char device struct來描述的。爲了管理上的方便,系統維護了一個數組chrdevsLJ,該數組的每一項都代表一個字符沒各。

原创 H.264 RTP payload 格式

H.264 視頻 RTP 負載格式 1. 網絡抽象層單元類型 (NALU) NALU 頭由一個字節組成, 它的語法如下:       +---------------+       |0|1|2|3|4|5|6|7|       +-+