下载后可任意编辑ARM9 外接晶片讀寫的驗証-以 8255 為範例外接 8255 主要目的是透過位址線及資料線做外接晶片讀寫的驗証。ARM9 可透過如圖 1 所示的轉接訊號線擴充其他的晶片功能。圖 1. ARM-9 的轉接訊號線解碼位址圖 2 代表 ARM-9 的外接記憶體解碼位址分佈,共分 8 個區段(bank)。這些區段分別由 nGCS0-nGCS7 來解碼,每個區段(bank)共有 128 MB 的記憶體空間。 Bank0 及 Bank1 分別由快閃記憶體(Flash memory)及隨機讀取記憶體(SDRAM)所佔用。Bank2 的解碼致能線 nCGS2 位於透過 ARM-9 發展板轉接槽的第 34 個接腳,如圖 1 所示。nCGS2 解碼位址分佈於 0x10000000-0x18000000,如圖 2 所示。1下载后可任意编辑圖 2. nGCS2 的解碼位址分佈圖 3 中 ARM9 的記憶體區段(Bank)的解碼線 nGCS2 接 8255 的/CS;(A1, A0)分別接 8255 的(A1, A0);DATA7-DATA0 分別接 8255 的 D7-D0,如圖 3 所示。所以 8255 的(PORTA, PORTB, PORTC, CTL)的寫入位址定義如下:PORTA=0x10000000;PORTB=0x10000001;PORTB=0x10000002;CTL=0x10000003;2下载后可任意编辑圖 3. 8255 與 ARM-9 的連接方法ARM-9 的資料線共有 32 位元(DATA31-DATA0)。然而外接記憶體(或 I/O)可規劃為 8 位元、16 位元及 32 位元共三種模式。究竟選擇那種模式,可透過規劃 BWSCON 暫存器的內容來決定。BWSCON 暫存器的位址為0x48000000。規劃 Bank2 的外接記憶體(或 I/O) 資料線讀寫位元數為 8 位元,可規劃 BWSCON 暫存器的(bit9, bit8)為 00,如圖 4 所示。程式規劃的參考方法如下3下载后可任意编辑圖 4. BWSCON 暫存器的 bit10-bit0 所規劃的功能ARM-9 外接記憶體(或 I/O)的讀寫時序如圖 6 所示。圖 6 中讀寫的各項時間參數(Tacs, Tcos, Tacc, Tacp, Tcoh, Tcah)可由 BANKCONx 暫存器(x=0,1..5)來調整。BANKCON2 暫存器的位址為 0x4800000c,如圖 5 所示。圖 5. BANKCON2 暫存器的位址圖 6. ARM-9 外接記憶體(或 I/O)的讀寫時序4下载后可任意编辑8255 驅動程式之建立 在 Linux 核心中,驅動程式扮演特别的「黑盒子」角色,它們能駕馭硬體裝置,並且隱藏硬體的實際作業細節,使硬體的回應方式符合一組嚴謹規定的程式介面,讓應用程式能透過一套標準化的系統呼叫來間接操作硬體。以實際的硬體動作來實現系統呼叫所定義的功能,正是驅動程式所扮演的角色。由...