电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

ARM9外接晶片读写的验证-以8255为范例VIP免费

ARM9外接晶片读写的验证-以8255为范例_第1页
1/16
ARM9外接晶片读写的验证-以8255为范例_第2页
2/16
ARM9外接晶片读写的验证-以8255为范例_第3页
3/16
ARM9外接晶片讀寫的驗証-以8255為範例外接8255主要目的是透過位址線及資料線做外接晶片讀寫的驗証。ARM9可透過如圖1所示的轉接訊號線擴充其他的晶片功能。圖1.ARM-9的轉接訊號線解碼位址圖2代表ARM-9的外接記憶體解碼位址分佈,共分8個區段(bank)。這些區段分別由nGCS0-nGCS7來解碼,每個區段(bank)共有128MB的記憶體空間。Bank0及Bank1分別由快閃記憶體(Flashmemory)及隨機讀取記憶體(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)的讀寫時序8255驅動程式之建立在Linux核心中,驅動程式扮演特殊的「黑盒子」角色,它們能駕馭硬體4裝置,並且隱藏硬體的實際作業細節,使硬體的回應方式符合一組嚴謹規定的程式介面,讓應用程式能透過一套標準化的系統呼叫來間接操作硬體。以實際的硬體動作來實現系統呼叫所定義的功能,正是驅動程式所扮演的角色。由於系統呼叫這層軟體介面的存在,使得驅動程式與核心的其餘部分可以分開製作並且在需要時,才在執行期將驅動程式「安插」到核心裡。這種模組化的設計不僅降低了Linux驅動程式的設計難度,也使得核心不必為了支援新硬體而頻頻改版。裝置驅動程式大致分為區塊驅動程式、字元驅動程式及網路介面驅動程式。區塊驅動程式是以固定大小長度來傳送轉移資料,且大致是可以隨機存取資料的設備,如硬碟機或光碟機;字元裝置是可被當成一連串位元組(串流)來存取的裝置,也就是說這類裝置的存取方式就像檔案一樣。字元裝置驅動程式的主要任務,正是實現這種行為。這類驅動程式至少會實作四項系統呼叫,分別是open()、close()、read()和write()。我們所熟悉的操控台與序列埠(/dev/console、/dev/ttyS0…),就是典型的字元裝置,因為它們都可順利化身成「串流」。字元裝置必須透過檔案系統節點(filesystemnode)來存取;檔案系統節點俗稱為裝置檔(devicefile),例如/dev/tttyS0、/dev/console。字元裝置與一般正常檔案之間的最大差異,是一般檔案容許你任意改變存取點(檔案指標),但字元裝置大部分都只是資料通道,只能被循序存取。1模組程式的基本觀念一個驅動程式必須被撰寫成模組的型態,才能夠具備供使用者載入與移除5的特性。因此一個驅動程式必然會具有載入模組函式與移除模組這兩個函式。故此兩個函式就分別載入驅動程式與移除驅動程式的角色。應用程式在啟動之後,從頭到尾都只執行同一件任務。另一方面,模組在被載入核心之後,必須先向核心註冊它自己,以便服務未來的request,而其”main”函式這時候就立即結束了。換言之,init_module()函式(模組的入口)的任務,是將模組的功能(函式)準備好,使這些功能可在事後被調用。模組的第二個入口點是cleanup_module(),它在模組被卸載之前會被叫用一次,其作用就是告訴核心:『我要離開了,別再叫我做任何事』。圖7描繪模組如何利用「函式呼叫」與「函式指標」,將新功能加到運行中的核心。應用程式則是在「使用者空間」(userspace)內運作。每當應用程式發出...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

ARM9外接晶片读写的验证-以8255为范例

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部