原创 Linux網絡協議棧——網絡設備

網絡設備(network device)是內核對網絡適配器(硬件)的抽象與封裝,併爲各個協議實例提供統一的接口,它是硬件與內核的接口,它有兩個特徵: (1)    作爲基於硬件的網絡適配器與基於軟件的協議之間的接口; (2)    內核協

原创 linux中斷處理------頂半部與底半部

轉自http://my.oschina.net/fzliu/blog/33028 儘管有些設備僅通過它們的I/O寄存器就可以得到控制,但現實中的大部分設備卻比這複雜一些。設備需要與外部世界打交道,如旋轉的磁盤,繞卷的磁帶,遠距離連

原创 Linux 管道通信 .

一、定義   管道是單向的、先進先出的。它將一個程序的輸入和另一個程序的輸出連接起來。數據被一個進程讀出後,將被從管道中刪除。分爲無名和有名管道兩種。前者用於父進程和子進程間的通信,後者用於同一系統的兩個進程間通信。   二、無名管道

原创 Linux 多線程學習 .

一、多線程 VS 多進程      和進程相比,線程有很多優勢。在Linux系統下,啓動一個新的進程必須分配給它獨立的地址空間,建立衆多的數據表來維護代碼段和數據。而運行於一個進程中的多個線程,他們之間使用相同的地址空間。正是這樣,同一

原创 ARM Linux 中斷向量表建立流程 .

一般編寫arm的裸機程序的時候,創建中斷向量表就把它放在0x00000000~0x0000001c中,一般都放在這個位置上。但是中斷向量表也可以放在

原创 Linux 信號通信 .

 一、信號   信號(signal)機制是Unix進程間通信的一種機制。很多條件可以產生信號。   進程可以用kill 函數將信號發送給另一個進程,用戶可以用kill命令發送信號。   信號有三種處理方式: 1、忽略信號。通常情況下都

原创 GDT和IDT的初始化

內存管理時,不讓多進程的程序出現內存衝突的一解決方案是Segmentation。4GB的內存可以任何分割,每塊的初始地址都是0。另外還有一種複雜的內存管理方案,既Paging,目前主流的操作系統都是採用這種方式。本文的OS爲了實現簡單,只

原创 HDMI EDID解讀 .

現在的顯示設備比如顯示器,電視等都HDMI接口,那通常每個HDMI接口都保留有一份EDID數據,這個數據可以存在程序裏面由系統啓動過程中來初始化,更常見的做法是每個HDMI口會有一個EEPROM來保存這份數據,這個EEPROM也只是有25

原创 進程控制 .

1、進程調用的頭文件爲<unistd.h>。 2、pid_t getpid() 獲取本進程ID。pid_t getppid()獲取父進程ID。  3、fork()返回值: 在父進程中,返回新創建的子進程的PID 在子進程中,返回0 出

原创 net_device

net_device結構保存與網絡設備相關的所有信息。每一個網絡設備都對應一個這樣的結構,包括真實設備(例如以太網卡)和虛擬設備(比如bonding或VLAN)。 Bonding,也被稱作EtherChannel(Cisco的術語)和t

原创 linux驅動面試常見題目

1. linux內核裏面,內存申請有哪幾個函數,各自的區別? Kmalloc()   __get_free_page()  mempool_create()     2. IRQ和FIQ有什麼區別,在CPU裏面是是怎麼做的?     3

原创 HDMI 之 HPD

HPD(Hot Plug Detection),在HDMI的一對聯接中,爲熱插拔的實現而設計的。簡單地說,當發送端接入接受端時,接受端會迴應HPD信號給發送端,進而發送端會啓動DDC通道,而讀取接受端EDID的信息,然後進行HDCP的交

原创 USB枚舉過程

1. 枚舉是什麼?        枚舉就是從設備讀取一些信息,知道設備是什麼樣的設備,如何進行通信,這樣主機就可以根據這些信息來加載合適的驅動程序。調試USB設備,很重要的一點就是USB的枚舉過程,只要枚舉成功了,那麼就已經成功大半了。

原创 HDMI之EDID分析 .

HDMI(HighDefinitionMultimediaInterface),作爲新一代數字多媒體接口,能夠傳輸高速率無壓縮的數字音頻、視頻數據,HDMl1.2像素時鐘可達165MHz,數據速率達到4.95Gbps,而HDMl1.3像素

原创 嵌入式系統設計師考試筆記之電子電路設計基礎、微處理器

以下是轉帖一位網友的嵌考筆記 嵌入式系統設計師考試筆記之電子電路設計基礎 歐浩源([email protected]) 20080930   一、引言    在嵌入式系統的硬件設計中,嵌入式微處理器和外圍設備接口技術是兩個最爲核心的部分,然而支