ARM9外接晶片读写的验证-以8255为范例.docx
ARM9外接晶片瘾的瞬SE-以8255悬靶例外接8255主要目的是透谩位址及资料做外接晶片的缭I.ARM9可透退如附1所示的樽接虢筠?携充其他的晶片功能.P133I33333yI1186TTATACTADADADADADADTA4DATA2DTOA1.A3A57A9A1.1.AI3AI5nOEnWEKBDINTxxxxO24CRVV/A.A-A-A.o-46811.R55DDDDDDDDAAAAAAAAn÷÷圈1.ARM-9的樽接SR就解码位址阈2代表ARM-9的外接髓解礁位址分Mi,共分8他IS段(bank)。适些扇段分别由11GCSO-11GCS7求解Ii配每佃显段(bank)共有128MB的官已情的空间。BankO及Bank1.分别由快1对1已慢的(F1.ashmemory)及随檄渣取SCtfe醐(SI)RAM)所估用。Bank2的解礁致能.蛛11CGS2位於透遇ARM-9枝展板樽接槽的第34他接臊,如陶11所示。nCGS2解礁位址分Mi於OX1.oooooooOXI8000000,如留2所示。(kCCCCpcpc4OM(IM-01.10OMn刈-00OOoo,HotJMdNotujecJ04600.0000fSFRAreoSFRAfMCx4000J>"TtW4(YVY)4BcotSRAM(4KB5M)Ho<used(1AHftfYY1.SROMWUM(11GCS7)SrowsoramSGCS712M3MMB8M8H6B、必电的3H28WRWASrcwsoram(ftOCS6)SROMfSORAW(rvGCS6>2M三4,4MB8WB*1MBf丫3''BUft3f12SMJ3ASROMCnGCsS)SROM(r>GCSS>12SMBObXYVI11(VY1*SROM(HGCS4)SROM(rvGCS4>128MBIGBHADORm3dQttHAfW1SROM(nGCS3)SROM(hGCS3ACCBeie1MBRe90nSROM(nGCS2)SROMC11GCS2>128M9a<MOYY1.4SOM(nGCSSROM(r*GCSn12SMBSROM(RGCSO)C<<TMJSRAAa4X6>IMB(NotMMt0MANDf1.nforbootRoM1.IUFHANDIUforbodROWJNOTES:1. SRCWmeanROMOrtypememory2. SFRrreanoSpecaF1.c3o*RemoterFigure5-1.S3C2410XMemocyMapafterReSo1.圈2.nGCS2的解碟位址分MiIS1.3中ARM9的肥慵山段(Bank)的解码御2nGCS2接8255的/CS:(1.,0)分别接8255的(A1.0):DATA7-DATA0分别接8255的D7-D0,如圈3所示。所以8255的(PORTA,PORTB1PORTC,CT1.)的窗入位址定教如卜.:PORTA=Ox10000000;PORTB=Ox10000001;PORTB=Ox10000002;CT1.=Ox10000003:RM-9的资料给S共有32位元(DATA31-DATA0)。然而外接i惚髓(或I/O)可规副咨8位元、16位元及32位元共三梗模式。窕竟避择那硬模式,可透通嫌鄢JBWSC(W抑存器的内容来;夬定。BWSCON怛存器的位址卷0x48000000,猊制Bank2的外接恒健(或I/O)资料缘涌t窝位元数港8位元,可祝副BWSCON留存器的(bit9,bit8)00.如O4所示.程式娘副的卷考方法如下RegisterAddressRWDescriptionResetVa1.ueBWSCON0x46000000RWBmwth&waitstatuscontro1.regtst6f0x000000USWIDTH&WAITCONTRO1.REGISTER(BWSCON)(Continued)WS2«oiDetemmeWAITsttusfcxbank20三WAIT53We1三WAJTenab1.e0DW2(9:8Determinedatabus>xfthforbank200=84><t01=16-bC10=32X11=reserved0STIP1.DeSrnweSRAMforusingUB/1.Bforbank10NetungUB>1.B(ThepinsarededicatednV8E(30)1=UsmgUB4.B(ThePnSgdedicated11BEOJ)0WSI6JDeternwieWAJTstatusfcxbank10»WAITdaWe1«WAITenab1.e0DWIWDeterminedatatxswdthfort>ak100=84)rt01=16-brt.10=32X11=reserved0DWORI1.Indicatedatabswidthforbank0(readon1.y)0116-ht.10-32bTheSUIfarese1.ectedby0M1:0pinsReservedP1.三4.BwSCoN1.Vi存器的bit1.-bit所规副的功能ARM-9外接S1.憧.M(或1/0)的畤序如的6所示。倒6中褊窝的各SHTacs,Tcos,Tacc,Tacp,Tcoh,TCah)可由BANKCONX哲存器(x=0,1.5)来皆整.BANKCON2暂存器的位址i0x4800000c,如BU5所示。RegisterAddressRTWDescriptionReSetVa1.ueBANKNO0x48000004RAVBank0COntraregister0x0700BANKN10x48000008RAVBank1contro1.regtst0x0700BANKN2Ox4OOOOOCRVBank2COntrdregts1.er0x0700BANKN30x48000010RWBank3COntrO1.ree1.er0x0700BANKN40x48000014RWBank4contro1.r99ts1.er0x0700BANKN50x43000018RVBank5COrrtrOdrogts1.er0x0700|刷5.BANKCON2折存器的位址皿WAAWjI1.1.iaI1.iaiia424011GCS11OEnW11WBED(31OKR)DP1OOMTacs三1cyc1.eTacp三2cyc1.esTco$三1cyc1.eTcoh三1cydeTacc三3cyM$Tcah三2cycMFigure5-12.S3C2410XnGCSTimingDif1.gnun罔6.ARM9外接getf1.fi(或1/0)的窍畤序8255在1.inUX核心中,联勘程式扮演特殊的黑盒子角色,它集I能鬻取硬醐装置,企且隙藏硬饿的W除作驱细蓟,使硬微的同版方式符合一纸蔽海规定的程式介面,用程式能透遇一套梯型化的系统呼叫来I川接操作硬仲.以宵序的硬的勋作来贲说系统呼叫所定兼的功能,正是联勘程式所扮演的角色。由於系统呼叫道隔软的介面的存在,使得联勘程式典核心的其绘同部可以分!用裂作,旋且在需要畤,才在孰行期将骐物程式I安插J到核心裨。造楝模纲化的改升,不僮降低了1.inUX驱勒程式的尚殳司雉度,也使得核心不必卷了支援新硬愤而驻i频改版.裂置策勒程式大致分J1.城驱勤程式、字元矍勒程式及弼路介面夔勋程式,1.城雇勒程式是以固定大小晨度来傅送樽移饯料,且大致是可以明槌存取资料的脩,如快!碟械或光碟横:字元裂理是可被造成一速串位元组(申流)来存取的袋置,也就是i5ft适数j装置的存取方式就像檎案一楼.字元装置躯助程式的主要任才乐正是寅琪道褛行四。道苑驷财程式至少台寞作四系统呼叫,分别是open()、c1.ose()、read()和write()o我彳丹所熟悉的操控台典序列埠(/dev/conso1.e»devttyS0),就是典型的字元装用,因卷它彳丹都可利化身成串流。字元装置必须透通槽案系统如钻(node)来存取:橘案系统即玷俗耦卷装置檎(devicefi1.e),例如devtttySO、/dev/conso1.e.字元装置典一般正常楙案之I用的最大差黑,是一般翻案容SV你任意改箜存取玷(橘案指楝),但字元装置大局部都只是资料通道,只能被循序存取。g模组程式的根本觎念一佃骅勤程式必争被撰瞪成模纣I的型短,才能班)具借供使用者栽入奥移除的特性。因此-佃聚勋程式必然曾具有戴入模纣I函式见移除模组道雨他!函式;故此雨(B函式就分别戴入婴勋程式典移除骐勃程式的角色。懑用程.式在敬勃之彼,到尾都只孰行同一件任才短另一方面,模组在被载入核心之彳痣必须先向核心注册它自己,以便服才务未来的request,而其"main"函式追畴候就立即束了.换吉之,init_mo<1.u1.G()函式(模组的入口)的任矜,是将模组的功能(函式)型借好,使追些功能可在事筏被期用。模在的第二10入口贴是CIeanUPJnodU用(),它在模组被卸战之前曾被叫用一次,其作用就是告核心:我要7P8了,别再叫我做任何事J。陶17描箱模组如何利用函式呼叫J典f函式指棵.,耨新功能加到人行中的核心。感用程式用是在使用者空IajJ(USerSPaCe)内逋作-每笳原用程式赞出系统呼叫,或是我生硬的中断畤,1.IMJX便曾耨行模式优USCr-SPaCe切换到kerne1.-space。膜勒程式峭必第在kerne1.-space内i里作。1.7耨模组速结至核心国主糕虢(Majornumber)典次棕虢(MinOrnu11d>er)话使用者要存取字元装置畤,必须透逊檎案系统禅的代表名稠,追些特殊棺是桀中在dcv目之下.使用指令Is-Idev得到如1.8的结果。可看出在日期桐之前可以亵现雨佃以逗嬲隔第的数值,在逗虢左方的数值是祓装置檎的f主编嬲J(majornumber),而逗聚右方的数值是次编虢J(minornumber)。I主维虢J代表奘置所配合解勃程式名核心收到。Pen()系统呼叫畤,就是依披主编琥来遗摞裂勤程式。另一方面,次编琥的意囊只有整勋程式自己才知道,核心僧将使用者给定的次编嬲樽交驶勒程式,核心本身用不到次,编燧.一般而言,信勋程式以次编流来辨缴同氮i装置的佃的.cnr-rw-rw-1roocrootI.3Feb231999nu1.1.Cnr-1rootroot10,1Feb231999Pea