原创 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 一、引言 在嵌入式系統的硬件設計中,嵌入式微處理器和外圍設備接口技術是兩個最爲核心的部分,然而支