《ARM9外接晶片读写的验证-以8255为范例.docx》由会员分享,可在线阅读,更多相关《ARM9外接晶片读写的验证-以8255为范例.docx(13页珍藏版)》请在第壹文秘上搜索。
1、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的
2、官已情的空间。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.0000fSFRAreoSFRAfMCx4000JTtW4(YVY)4BcotSRAM(4KB5M)Ho2M三4,4MB8WB*1MBf丫3BUft3f12SMJ3ASROMCnGC
3、sS)SROM(rGCSS12SMBObXYVI11(VY1*SROM(HGCS4)SROM(rvGCS4128MBIGBHADORm3dQttHAfW1SROM(nGCS3)SROM(hGCS3ACCBeie1MBRe90nSROM(nGCS2)SROMC11GCS2128M9aMOYY1.4SOM(nGCSSROM(r*GCSn12SMBSROM(RGCSO)CIMB(NotMMt0MANDf1.nforbootRoM1.IUFHANDIUforbodROWJNOTES:1. SRCWmeanROMOrtypememory2. SFRrreanoSpecaF1.c3o*RemoterFig
4、ure5-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)可规副咨
5、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)WS2oi
6、DetemmeWAITsttusfcxbank20三WAIT53We1三WAJTenab1.e0DW2(9:8Determinedatabusxfthforbank200=841.B(ThepinsarededicatednV8E(30)1=UsmgUB4.B(ThePnSgdedicated11BEOJ)0WSI6JDeternwieWAJTstatusfcxbank10WAITdaWe1WAITenab1.e0DWIWDeterminedatatxswdthfortak100=84)rt01=16-brt.10=32X11=reserved0DWORI1.Indicatedatabswid
7、thforbank0(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.ueBANKNO0x48000004RAVBank0COn
8、traregister0x0700BANKN10x48000008RAVBank1contro1.regtst0x0700BANKN2Ox4OOOOOCRVBank2COntrdregts1.er0x0700BANKN30x48000010RWBank3COntrO1.ree1.er0x0700BANKN40x48000014RWBank4contro1.r99ts1.er0x0700BANKN50x43000018RVBank5COrrtrOdrogts1.er0x0700|刷5.BANKCON2折存器的位址皿WAAWjI1.1.iaI1.iaiia424011GCS11OEnW11WBED
9、(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川接操作硬仲.以宵序的硬的勋作来贲说系统呼叫所定兼的功能,正是联勘程式所扮演的角色。由於系统呼叫道隔软的介面的存在,使得
10、联勘程式典核心的其绘同部可以分!用裂作,旋且在需要畤,才在孰行期将骐物程式I安插J到核心裨。造楝模纲化的改升,不僮降低了1.inUX驱勒程式的尚殳司雉度,也使得核心不必卷了支援新硬愤而驻i频改版.裂置策勒程式大致分J1.城驱勤程式、字元矍勒程式及弼路介面夔勋程式,1.城雇勒程式是以固定大小晨度来傅送樽移饯料,且大致是可以明槌存取资料的脩,如快!碟械或光碟横:字元裂理是可被造成一速串位元组(申流)来存取的袋置,也就是i5ft适数j装置的存取方式就像檎案一楼.字元装置躯助程式的主要任才乐正是寅琪道褛行四。道苑驷财程式至少台寞作四系统呼叫,分别是open()、c1.ose()、read()和writ
11、e()o我彳丹所熟悉的操控台典序列埠(/dev/conso1.edevttyS0),就是典型的字元装用,因卷它彳丹都可利化身成串流。字元装置必须透通槽案系统如钻(node)来存取:橘案系统即玷俗耦卷装置檎(devicefi1.e),例如devtttySO、/dev/conso1.e.字元装置典一般正常楙案之I用的最大差黑,是一般翻案容SV你任意改箜存取玷(橘案指楝),但字元装置大局部都只是资料通道,只能被循序存取。g模组程式的根本觎念一佃骅勤程式必争被撰瞪成模纣I的型短,才能班)具借供使用者栽入奥移除的特性。因此-佃聚勋程式必然曾具有戴入模纣I函式见移除模组道雨他!函式;故此雨(B函式就分别戴
12、入婴勋程式典移除骐勃程式的角色。懑用程.式在敬勃之彼,到尾都只孰行同一件任才短另一方面,模组在被载入核心之彳痣必须先向核心注册它自己,以便服才务未来的request,而其main函式追畴候就立即束了.换吉之,init_moer)话使用者要存取字元装置畤,必须透逊檎案系统禅的代表名稠,追些特殊棺是桀中在dcv目之下.使用指令Is-Idev得到如1.8的结果。可看出在日期桐之前可以亵现雨佃以逗嬲隔第的数值,在逗虢左方的数值是祓装置檎的f主编嬲J(majornumber),而逗聚右方的数值是次编虢J(minornumber)。I主维虢J代表奘置所配合解勃程式名核心收到。Pen()系统呼叫畤,就是依披主编琥来遗摞裂勤程式。另一方面,次编琥的意囊只有整勋程式自己才知道,核心僧将使用者给定的次编嬲樽交驶勒程式,核心本身用不到次,编燧.一般而言,信勋程式以次编流来辨缴同氮i装置的佃的.cnr-rw-rw-1roocrootI.3Feb231999nu1.1.Cnr-1rootroot10,1Feb231999Pea