原创 mini2440裸機編程---網卡

我自己作的試驗有問題沒有解決: dm9000 發完之後,不產生中斷,爲什麼?而且通過判斷nsr,也讀不到到發送完畢的標誌。 另一個問題是:一旦啓動發送,程序就會不斷地產生recv的中斷。這個問題經過寫入isr寄存器得到解決。但依然不明白

原创 mini2440裸機編程-----IIC—讀寫AT24C08

開始弄2440的裸機編程,爭取儘快從最底層把這些硬件都熟悉掌握。       最初始從配置裸機開發環境開始的,本來想用jlink+ADS來進行下載,結果用ADS的調試器AXD通過jlink進行下載的時候,軟件總是出現各種問題,這個問題折騰

原创 s3c2440啓動文件start.s分析

 啓動文件就是引導ARM啓動,並進入我們熟悉的C語言程序。它主要完成了ARM最基本的硬件初始化工作。雖然啓動文件的內容大同小異(就是設置系統時鐘、內存、中斷向量表、棧等內容),而且只要有一個現成的啓動文件,即使不用詳細瞭解該文件的內容,直

原创 mini2440裸機編程--------觸摸屏驅動

       mini2440上連接的是一個電阻式觸摸屏,電阻式觸摸屏是基於AD轉換實現的,即某個位置按下之後,這點的電壓會發生改變,通過電壓就可以判斷出是哪一個點被按下了,arm可以得到這個點的座標。因爲觸摸屏和lcd是兩個設備,因此,

原创 X86處理器架構------彙編語言尋址方式

第一部分 指令系統簡介 尋址方式是指尋找指令中操作數或者指令轉移地址的方式,分爲數據尋址方式和指令轉移地址方式兩類。 指令系統是指機器所支持的所有指令的集合。   數據尋址方式有:立即數尋址,寄存器尋址,存儲器尋址等方式; 指

原创 s3c2440 usb host device controller驅動分析(五)-----generic driver

我們按照設備枚舉的流程,開始講generic driver。這個generic driver是針對usb device的。generic driver屬於host driver的一部分。其實這個generic driver主要實現的功能是

原创 mini2440裸機編程------IIS

這段時間做了IIS的試驗。被這個試驗也折騰了很久。總的來講IIS還是一個相對簡單的通信協議。 s3c2440一共有5個引腳用於IIS:IISDO、IISDI、IISSCLK、IISLRCK和CDCLK。前兩個引腳用於數字音頻信號的輸出和輸

原创 ARM處理器架構------可嵌套中斷的實現

文章是轉載的,看的不是很明白,寫的也不是很明白。當然很重要的是這是一種思路,證明通過模式的切換,可嵌套中斷是可以實現的。 傳統ARM中IRQ是作爲一種系統異常出現的。對於ARM核來說,有且僅有一個稱爲IRQ的系統異常。而ARM對於

原创 ARM處理器架構----處理器的工作狀態

      之前,一直都在看arm的驅動開發,最近看了ucos,同時也開始對arm的架構有了更深入一點的瞭解。大學學微機原理的時候學的是x86的架構,它和arm還是有挺多區別的。下面就整理一些自己的所學和在網上轉載的關於arm架構的內容

原创 ARM處理器架構-----異常/中斷處理

中斷是我們嵌入式開發很常用到的一種資源和編程手段。這篇文章重點分析arm的中斷處理流程。  首先,中斷是異常的一種。當發生一種異常時,處理器會進入不同的工作模式。ARM的異常和相應的模式之間的對應關係見下表: 當一個異常

原创 s3c2440 usb host device controller驅動分析(七)-----class driver

      這裏開始分析我們第一節貼的圖中的class driver。class driver就是負責實現具體功能的driver,像usb-skeleton和usb鼠標的驅動。我認爲class driver的功能應該是兩個:一個是具體的操

原创 s3c2440 usb host device controller驅動分析(六)-----usb device 和 usb interface

       前面分析了usb hub 和 generic driver,順便將枚舉的前一部分看完了。本來我們應該繼續分析class driver的最上層,即利用usb通信實現具體功能的驅動。我們將以usb-skeleton.c爲例。但在

原创 mini2440裸機編程--------LCD驅動

記錄一下lcd編程的過程。文章有一部分是轉載的。 要想正確使用LCD,必須注意兩點:1、時序;2、顯示緩存區。 1、時序 LCD一般需要三個時序信號:VSYNC、HSYNC和VCLK。VSYNC是垂直同步信號,在每進行一個幀(即一個屏)的

原创 kvm基本原理

kvm基本原理1KVM 是指基於 Linux 內核的虛擬機(Kernel-based Virtual Machine)。增加 KVM 到 Linux 內核是 Linux 發展的一個重要里程碑,這也是第一個整合到 Linux 主線內核的虛

原创 ARM處理器架構-----協處理器

ARM指令集-協處理器指令詳解   ARM可支持多達16個協處理器,主要的作用:ARM處理器初始化,ARM與協處理器的數據處理操作,ARM的寄存器與協處理器的寄存器之間傳送數據,以及ARM協處理器的寄存器和存儲器之間傳送數據。共有5