Str=C3=A1nka by m=C4=9Bla obsahovat =C5=99e=C5=A1en=C3=AD vzorov=C3= =A9ho testu z POT (pop=C5=99=C3=ADpad=C4=9B pokud se poda=C5=99=C3=AD se= hnat i zad=C3=A1n=C3=AD jin=C3=A9)
http://home.zcu.cz/~struharv/pot_demo.pdf
Dal=C5=A1=C3=AD zad=C3=A1n=C3=AD p=C3=ADsemek:
http://fav.q-e-e.net/POT/zkouska_vyplnena/ =
.. kdy=C5=BEtak opravte (georgus)
1: R1=3DCAB4, OV=3D1, C=3D0, signed=3D-13644
2: ER0=3D00003AC8
3: OK
4: R0=3D10h, R1=3D10h
5: 8
6: .. je to prost=C4=9B blb=C4=9B .. je tam jenom =C4=8Dten=C3=AD= , nejd=C5=99=C3=ADve 6x instrukce po 1B a pak 1x =C4=8Dten=C3=AD do regi= stru 1B
7: 1,4 mikrosekundy (7 =C4=8Dten=C3=AD z pam=C4=9Bti, 1 WAIT =3D = 7*4 (3 norm=C3=A1ln=C4=9B + 1 WAIT))
8: OK
9: Y5 k prvni pam=C4=9Bti, Y6 k druh=C3=A9 pam=C4=9Bti
10: OK .. v=C5=BEdy se testuje WAIT na sp=C3=A1dov=C3=A9 hran=C4=9B= CLK
11: OK
12: OK
13: OK
14: =C5=A1patn=C4=9B .. write neprob=C4=9Bhne v=C5=AFbec, nedo=C5= =A1lo k aktivaci HWR, read skon=C4=8D=C3=AD po odpojen=C3=AD sign=C3=A1l= u CE tak=C5=BEe pouze prvn=C3=AD bu=C5=88ka je OK, druh=C3=A1 je rovn=C3= =A1 =C4=8D=C3=A1ra
15: c)
16: OK
17: a) c)
18: OK
19: =C4=8D=C3=ADta=C4=8De, hodiny re=C3=A1ln=C3=A9ho =C4=8Dasu, d= iskov=C3=A9 =C5=99adi=C4=8De, V/V =C5=99adi=C4=8De, DMA =C5=99adi=C4=8De= , IRQ =C5=99adi=C4=8De
20: a) (opraveno - protoze Intel 8052 ma 256 bajtu a Intel 8051 1= 28 bajtu (pamet dat))
21: BREQ s BREQ, BUSACK s BUSACK, DRQ s DRQ, DACK s DACK .. v=C3=AD= c nen=C3=AD pro =C5=99=C3=ADzen=C3=AD pot=C5=99eba
22: b)
23: e)
24: datov=C3=BD vstupn=C3=AD R, datov=C3=BD v=C3=BDstupn=C3=AD W,= =C5=99=C3=ADd=C3=ADc=C3=AD R/W, stavov=C3=BD R/W
25: =
lab1: MOV.L ER6,ER1 MOV.B @ER1,R0L INC.L ER1 CMP.B #'S',R0L BNE lab1 lab2: MOV.B @ER5,R0L INC.L ER5 CMP.B #'S',R0L BEQ lab3 MOV.B R0L,@ER1 INC.L ER1 BRA lab2 lab3: MOV.B #'S',R0L MOV.B R0L,@ER1 kon: BRA kon
http://sikus.rajce.idnes.cz/POT-zkouska/#album
Ot=C3=A1zka =C4=8D. 4 je stejn=C3=A1 jako ot=C3=A1zka =C4=8D. 6 v= e vzorov=C3=A9 p=C3=ADsemce. Spr=C3=A1vn=C3=A1 odpov=C4=9B=C4=8F je dle = m=C3=A9ho n=C3=A1zoru ta, kter=C3=BD je uvedena n=C3=AD=C5=BEe zde na st= r=C3=A1nce. =
Ot=C3=A1zka =C4=8D. 15 je vy=C5=99e=C5=A1ena tak=C3=A9 n=C3=AD=C5= =BEe. Odpov=C4=9B=C4=8F je tedy: 10ms
Odpov=C4=9B=C4=8F na ot=C3=A1zku =C4=8D. 20, kter=C3=A1 nen=C3=AD= vypln=C4=9Bn=C3=A1: Vnit=C5=99n=C3=AD pam=C4=9B=C5=A5 dat mikrokontrol=C3=A9ru z=C3=A1kladn=C3= =AD =C5=99ady I8052 m=C3=A1 celkovou kapacitu: 256 Byt=C5=AF
Ot=C3=A1zka =C4=8D. 23 je stejn=C3=A1 jako ot=C3=A1zka =C4=8D. 22= ve vzorov=C3=A9 p=C3=ADsemce. Odpov=C4=9B=C4=8F je "DMA =C5=99adi=C4=8D= em".
Ot=C3=A1zka =C4=8D. 5 se mi zd=C3=A1 blb=C4=9B. M=C3=ADsto 6 p=C5= =99=C3=ADstup=C5=AF tam m=C3=A1 bejt: 4x p=C5=99=C3=ADstupy =C4=8Dten=C3= =AD instrukce (po 8 bitech) + z=C3=A1pis 4 bajtoveho operandu =3D 8 p=C5= =99=C3=ADstup=C5=AF do pam=C4=9Bti.
Naraz=C3=ADte-li na n=C4=9Bjakou chybnou odpov=C4=9B=C4=8F ,napi=C5= =A1te sem pros=C3=ADm odpov=C4=9B=C4=8F spr=C3=A1vnou.
Jak=C3=BD v=C3=BDsledek bude v registru R1 a v p=C5=99=C3=ADznakov=C3= =BDch bitech C (Carry) a V (Overflow) po se=C4=8Dten=C3=AD obsahu regist= r=C5=AF R0 a R1 instrukc=C3=AD ADD.W R0,R1. P=C5=99eve=C4=8Fte v=C3=BDsl= edek se=C4=8D=C3=ADt=C3=A1n=C3=AD (tj. obsah R1) do des=C3=ADtkov=C3=A9 = soustavy, je-li obsah R1 interpretov=C3=A1n jako =C4=8D=C3=ADslo se znam= =C3=A9nkem (signed int).
2C11+E110 =3D (1) 0D21 C =3D 1 //kvuli pretekle (1) V =3D 0 //scitani kladne + zaporne =3D> nevime, jestli ma vyjit kladn= e ci zaporne
desitkove =3D 3361
R0H =3D 3A R0L =3D C8
Pokud uva=C5=BEujeme 8bitov=C3=BD p=C5=99=C3=ADstup, tak instrukce = se =C4=8Dte 8x, a 4x zapisuje do pam=C4=9Bti .. 12 p=C5=99=C3=ADstup=C5=AF= . (OK)
// uva=C5=BEujeme 8byt=C5=AF ??? =3D jist=C4=9B, nejd=C5=99=C3=AD= ve p=C5=99e=C4=8Dte=C5=A1 8 byt=C5=AF instrukce (64 bit=C5=AF po 8 bitov= =C3=A9 sb=C4=9Brnici =3D 8x) a pak zap=C3=AD=C5=A1e=C5=A1 32bit=C5=AF (4= byty po 8 bitov=C3=A9 sb=C4=9Brnici =3D 4x) dat .. p=C5=99esouv=C3=A1=C5= =A1 32 bitov=C3=BD operand z ERn do pam=C4=9Bti .. tak=C5=BEe celkem 12 = p=C5=99=C3=ADstup=C5=AF.
Registr PC v procesoru obsahuje:
a) adresu n=C3=A1sleduj=C3=ADc=C3=AD instrukce =
Je-li v programu (omylem) instrukce skoku do oblasti pam=C4=9Bti kde = jsou ulo=C5=BEena data, reaguje procesor (typu H8S) n=C3=A1sleduj=C3=ADc=C3=ADm zp=C5=AFso= bem:
HEW norm=C3=A1ln=C4=9B sko=C4=8D=C3=AD a pak =C5=BEa=C4=8Dne nad=C3= =A1vat, =C5=BEe to co =C4=8Dte nen=C3=AD =C5=BE=C3=A1dn=C3=A1 instrukce = a otev=C3=ADr=C3=A1 debugger. N=C4=9Bkdo v=C3=AD v=C3=ADce? = (jestlipak to nen=C3=AD sp=C3=AD=C5=A1 ot=C3=A1zka, kdopak mi chodil na = p=C5=99edn=C3=A1=C5=A1ky :-)) Bill.jr
Mam pocit ze by to mohl bej tohle, ale jistej si nejsem : proc= esor provede skokovou instrukci a nastav=C3=AD p=C5=99=C3=ADznak =E2=80=9E= nespr=C3=A1vn=C3=A1 adresa=E2=80=9C v p=C5=99=C3=ADznakov=C3=A9m registru,
Podle m=C4=9B norm=C3=A1ln=C4=9B sko=C4=8D=C3=AD a nic se nepozn=C3= =A1, akor=C3=A1t pak spadne. Jak m=C5=AF=C5=BEe poznat, =C5=BEe sko=C4=8D= il n=C4=9Bkam, kam nem=C4=9Bl ?? Max. tak, =C5=BEe dal=C5=A1=C3=AD = instrukce je n=C4=9Bjak=C3=A1 kravina, ale n=C3=A1hdn=C4=9B se ti m=C5=AF=C5=BEe st=C3=A1t, =C5=BEe da= ta budou odpov=C3=ADdat n=C4=9Bjak=C3=BD instrukci.. pak j=C3=AD tim p=C3= =A1dem vykon=C3=A1.
Tak logicky: =C5=BE=C3=A1dn=C3=BD p=C5=99=C3=ADznak "nespr=C3=A1vn=C3= =A1 adresa" rozhodn=C4=9B procesor H8S neobsahuje, p=C5=99eru=C5=A1en=C3= =AD IRQ0 je venkovn=C3=AD.. nem=C5=AF=C5=BEe ho vyvolat, procesor nepozn= =C3=A1 zda je adresa do dat nebo ne.. tak=C5=BEe i vynulov=C3=A1n=C3=AD = nebo STOP stav nejde.. prost=C4=9B sko=C4=8D=C3=AD a sna=C5=BE=C3=AD se = to vykonat.. pak a=C5=BE za=C4=8Dne =C5=99v=C3=A1t. Tak=C5=BEe B) proces= or skokovou instrukci norm=C3=A1ln=C4=9B provede. (georgus)
R0=3D0x10 R1=3D0x10
// nebude zde R0 =3D 0x09 dec od=C4=8D=C3=ADt=C3=A1 1 (nejsem si jist= =C3=BD)
Uplne posledni instrukce vyjme ze zasobniku tu ulozenou 0x10 a da j= i do R0. (a jen na okraj: 0x10 - 1 =3D 0x0F) =
malda:
no.. V adrese mus=C3=AD bejt adresa, ne obsah pam=C4=9Bti na adrese ne?
Myslim si =C5=BEe to bude v po=C5=99ad=C3=AD podle cykl=C5=AF:
// prvn=C3=AD dva =C4=8Dten=C3=AD instrukce z pam=C4=9Bti
RD A: 0x002031AB D: 0x69
RD A: 0x002031AC D: 0x10
// druh=C3=BD dva =C4=8Dten=C3=AD z pam=C4=9Bti na adrese 0x00254412
RD A: 0x00254412 D: 0xC0
RD A: 0x00254413 D: 0xD1
HWR rovn=C3=A1 =C4=8D=C3=A1ra, nebo=C5=A5 z pam=C4=9Bti jen =C4=8Dte,= ale nezapisuje..
Souhlas s maldou (struharv), tak=C3=A9 souhlas (dandy)
Mal=C3=A1 chyba: HWR mus=C3=AD b=C3=BDt ve vysok=C3=BD =C3=BAr= ovni (georgus)
=C4=8D=C3=A1ra: dole =3D zapnuto, naho=C5=99e =3D vypnuto, jinak = ok ;)
=C4=8Dty=C5=99i =C4=8Dtec=C3=AD cykly (ka=C5=BEd=C3=BD po t=C5=99ec= h taktech). Tzn: 4 * 3 * (1/25 000 000) =3D 0,48mikrosekund.
To se mi nejak nezda. Je si tim nekdo jistej? Stejne s tim obrazkem= ? Rozhodne chyba o ktere vim je ze sbernive je 8mi bitova na to To znamena ze nasobitel je 6tka jestli se nepletu... Tudiz 4MC =3D 4 * 6= (8bitova sbernice) * 1/25 000 000 =3D 0.96 mikrosekundy
To prvn=C3=AD je spr=C3=A1vn=C4=9B, ano m=C3=A1=C5=A1 4MC ale po 3= hodinov=C3=BDch taktech (=C4=8Dt=C4=9Bn=C3=AD B je 3), ty ne=C4=8Dte=C5= =A1 W za 6. Tak=C5=BEe 4*3 ... vysledek 0,48 mikrosekund (georgus) Je=C5=A1t=C4=9B m=C4=9B tak napadlo, to co je na obr=C3=A1zku je pouze =C4= =8Dten=C3=AD a pota=C5=BEmo dek=C3=B3dov=C3=A1n=C3=AD instrukce. Tak jes= tli se nem=C3=A1 je=C5=A1t=C4=9B zvl=C3=A1=C5=A1=C5=A5 zapo=C4=8D=C3=ADt= at ten EA a WB (p=C5=99edn=C3=A1=C5=A1ka Syst=C3=A9mov=C3=A1 sb=C4=9Brni= ce, strana 20), tam se vlast=C4=9Bn EA a WB p=C5=99ekr=C3=BDv=C3=A1 se =C4= =8Dten=C3=ADm dal=C5=A1=C3=AD instrukce, ale cel=C3=BD instruk=C4=8Dn=C3= =AD cyklus to obsahuje.
Tak=C5=BEe si mysl=C3=ADm =C5=BEe podle p=C5=99edn=C3=A1=C5=A1ek by= to m=C4=9Blo b=C3=BDt celkem 3MC po 6 hodinov=C3=BDch cyklech =3D 3 * 6= =3D 18 = (musime zapocitat cteni dalsi instrukce a zpracovani) tak=C5=BEe by to b= ylo 0.72 mikrosekund, = ale fakt netu=C5=A1=C3=ADm, proto=C5=BEe podle manu=C3=A1lu jsou v t=C3=A9= to instrukci celkem 3MC .. =C4=8Dten=C3=AD instrukce, = =C4=8Dten=C3=AD dal=C5=A1=C3=AD instrukce (NEXT) a pak =C4=8Dten=C3=AD d= at tud=C3=AD=C5=BE E a WB. V tom p=C5=99=C3=ADpad=C4=9B by byl ten prvn=C3= =AD obr=C3=A1zek taky blb=C4=9B, = proto=C5=BEe by tam muselo b=C3=BDt to =C4=8Dten=C3=AD dal=C5=A1=C3=AD i= nstrukce m=C3=ADsto dat, nev=C3=ADte to n=C4=9Bkdo? Kdo to u=C5=BE d=C4=9B= lal? M=C4=9Bli jste to dob=C5=99e?
Slo=C5=BEen=C3=AD adresy
(ZM=C4=9ANA) A23,A22,A21A20,A19,A18- H8S vol=C3=AD 74HCT138 pomoc=C3=AD <= b>Chip Select, dle obr=C3=A1zku: CS1 =3D 001 A20-A8 - voln=C3=A9 tzn. cokoliv A7 - jak=C3=A9si vnit=C5=99n=C3=AD povolen=C3=AD v 74HCT138, v=C5=BEdy 0= (ve skriptech ani slovo, datasheet sou=C4=8D=C3=A1stky =C5=99=C3=ADk=C3= =A1 tohle) A6,A5,A4 - 74HCT138 vol=C3=AD 8255 pomoc=C3=AD Chip Select= , dle obr=C3=A1zku: Y6 =3D 110 A3,A2 - voln=C3=A9 tzn. m=C5=AF=C5=BEe tu b=C3=BDt cokoliv (n=C4=9Bjak=C3= =A1 konvence, piny nezapojeny) A1,A0 - v=C3=BDb=C4=9Br portu na 8255 (A=3D00, B=3D01, C=3D10, =C5=99=C3= =ADd=C3=ADc=C3=AD reg=3D11)
V=C3=BDsledek
Port A =3D 001 0000000000000 0 110 00 00 =3D = Port B =3D 001 0000000000000 0 110 00 01 =3D = Port C =3D 001 0000000000000 0 110 00 10 =3D = =C5=98=C3=ADd=C3=ADc=C3=AD =3D 001 0000000000000 0 110 00 11 =3D =
Druh=C3=A1 mo=C5=BEnost m=C5=AF=C5=BEe b=C3=BDt cokoliv, sta=C4=8D=C3= =AD zm=C4=9Bnit n=C4=9Bjakou jedni=C4=8Dku v A20-A8 t=C5=99eba.
10 ms
a) paraleln=C3=AD IO porty- to m=C3=A1 ka=C5=BEd=C3=A9 = CPU b) USART - s=C3=A9riov=C3=A9 rozhran=C3=AD c) obvody =C4=8D=C3=ADta=C4=8D=C5=AF a =C4=8Dasova=C4=8D=C5=AF d) krystalov=C3=BD oscil=C3=A1tor e) I2C, SPI - s=C3=A9riov=C3=A1 rozhran=C3=AD f) watchdog g) gener=C3=A1tor PWM h) ROM/PROM/EPROM/EEPROM/Flash i) RAM j) A/D a D/A p=C5=99evodn=C3=ADky
Na n=C3=A1sleduj=C3=ADc=C3=ADm obr=C3=A1zku je mapa adresn=C3=ADho pr= ostoru jist=C3=A9ho procesoru (nejedn=C3=A1 se o H8S).
0000 0000 - FFFF FFFF =3D> adresn=C3=AD prostor je 4GB (=3D 2^32= B) (oprava) zv=C3=BDrazn=C4=9Bn=C3=A1 =C4=8D=C3=A1st je 5. =C5=A1estn=C3=A1= ctina odspoda.
(nemela by to byt 5. a 6. sestnactina od spodu? prece jen, pamet je 4= GB a my mame zakreslit 512 MB, coz jsou dve sesnactiny (osmina) - kdyz t= ak me oprave (drow))
??? Kde jsme p=C5=99i=C5=A1li na d=C3=A9lku slova, kdy=C5=BE t= am nen=C3=AD napsan=C3=A1 a je=C5=A1t=C4=9B je tam zd=C5=AFrazn=C4=9Bno,= =C5=BEe nejde o H8S. ??? =3D=3D=3D tak implicitn=C4=9B m=C5=AF=C5=BEe=C5=A1 uva=C5=BEovat 8b jedn= o slovo, to ti asi takovej chyt=C3=A1k ned=C3=A1, to =C5=BEe se nejedn=C3= =A1 o H8S je tam proto, =C5=BEe adresn=C3=AD prostor H8S je jenom 16MB, = tady je to 4GB.
ty voe, ho=C5=A1i, to bude v=C3=A1=C5=BEn=C4=9B 5. a 6. '=C5=99=C3= =A1dka' odspodu. Kdy=C5=BE to vezmu poselsku: cel=C3=A1 pam=C4=9B=C5=A5 = m=C3=A1 4 GB, na tom se shodneme. Mno, a te=C4=8F, m=C3=A1m-li v n=C3=AD= naj=C3=ADt 512 MB blok, tak bude ve fin=C3=A1le muset b=C3=BDt vy=C5=A1= rafovan=C3=A1 "1/8 plochy obr=C3=A1zku", tj. pr=C3=A1v=C4=9B 2 ko= lonky (4096 / 512 =3D=3D 8) M=C3=A1 k tomu n=C4=9Bkdo jednozna=C4=8Dn=C3= =BD a p=C5=99esv=C4=9Bd=C4=8Den=C3=BD stanovisko?
Dle p=C5=99edn=C3=A1=C5=A1ek p. Dud=C3=A1=C4=8Dka to ch=C3=A1pu tak= , =C5=BEe lze bu=C4=8F prodlou=C5=BEit d=C3=A9lku slova, nebo kapacitu p= am=C4=9Bti, ale ne oboj=C3=AD najednou, tak=C5=BEe asi "po=C5=BEadovanou= kapacitu nelze z t=C4=9Bchto obvod=C5=AF sestavit". Ale kdyby to tak nebylo, tak to opravte a mn=C4=9B kopn=C4=9Bte :) malda To se mi n=C4=9Bjak nezd=C3=A1. D=C3=A1m-li vedle sebe dv=C4=9B pam=C4=9B= ti a spoj=C3=ADm-li jejich CS, tak prodlou=C5=BE=C3=ADm d=C3=A9lku slova= . A tyhle bloky jsou celkem samostatn=C3=BD tak=C5=BEe, kdy=C5=BE p=C5=99id=C3=A1m dal=C5=A1=C3=AD tak ho budu volat jin=C3=BDm= CS a na ten druh=C3=BD dvoupam=C4=9B=C5=A5ov=C3=BD blok by to nem=C4=9B= lo m=C3=ADt vliv. Vypl=C3=BDvalo by z toho tedy, =C5=BEe lze takovou pam=C4=9B=C5=A5 sesta= vit z 8 pam=C4=9Bt=C3=AD 16Mx8bit=C5=AF, v rozm=C3=ADst=C4=9Bn=C3=AD 4x2= , tj. =C4=8Dty=C5=99i 16b bloky, blok sestaven=C3=BD z dvou pam=C4=9Bt=C3= =AD se spole=C4=8Dn=C3=BDm CS bill.jr
Jop malda to ma blbe. Je na to jednoduchy vypocet - 64MBx16bit =3D (4= *16MB)x(2*8bit) =3D 4*2 =3D 8. Pozor pokud by to mela byt treba kombinac= e 140M x 24 bitu sestavit z 64M * 16 bitu tak to taky jde ale cast pamet= i bude nevyuzita. Treti moznost je bullshit.
Jak dlouh=C3=A1 adresa (po=C4=8Det bit=C5=AF) je zapot=C5=99eb=C3=AD = k adresov=C3=A1n=C3=AD pam=C4=9Bti o kapacit=C4=9B 32kB (pam=C4=9Bt je o= rganizovan=C3=A1 po bytech)?
32kB po B je 32768 adres =3D 2^15 adres tzn. pot=C5=99ebujeme 15bit= =C5=AF.
Odpov=C4=9B=C4=8F: 15 bit=C5=AF
Na n=C3=A1sleduj=C3=ADc=C3=ADm obr=C3=A1zku je pr=C5=AFb=C4=9Bh n=C4=9B= kter=C3=BDch sign=C3=A1l=C5=AF na v=C3=BDvodech statick=C3=A9 pam=C4=9Bt= i. Dokreslete sign=C3=A1ly na datov=C3=A9 sb=C4=9Brnici. V p=C5=99=C3=ADpad= =C4=9B z=C3=A1pisu do pam=C4=9Bti vyzna=C4=8Dte okam=C5=BEik, kdy mus=C3=AD b=C3=BDt vstupn=C3=AD data stabiln=C3=AD.
Pokud se WR=3DWE, tak WE neklesne =3D> nedojde k z=C3=A1pisu =3D= > nemus=C3=AD b=C3=BDt stabiln=C3=AD Pak tam asi bude chyt=C3=A1k v tom, =C5=BEe OE je sepnut=C3=A9 p=C5=99es= dv=C4=9B adresy, ale CS je sepnut=C3=A9 pouze p=C5=99es jednu. = Bez CS sepnut=C3=A9ho se asi nezapisuje.
Podle p=C5=99edn=C3=A1=C5=A1ek to tak vypad=C3=A1. Kdy=C5=BEtak oprav= te.
mo=C5=BEn=C3=A1 jen drobn=C3=BD p=C5=99eklep - pokud se ne= pletu, tak jeliko=C5=BE je /WR aktivn=C3=AD na n=C3=ADzk=C3=A9 =C3=BArov= ni a tady jede celou dobu ve vysok=C3=A9, potom spr=C3=A1vn=C3=BD z=C3=A1= v=C4=9Br zn=C3=AD: ke =C4=8Dten=C3=AD dat nedojde
IMO dojde ke =C4=8Dten=C3=AD dat po dobu, kdy je CS aktivn=C3=AD.= Z=C3=A1pis neprob=C3=ADh=C3=A1 v=C5=AFbec, proto=C5=BEe WR je celou dob= u neaktivn=C3=AD. Stativ
programov=C4=9B
nejvy=C5=A1=C5=A1=C3=AD priorita
po dokon=C4=8Den=C3=AD instrukce
P=C5=99ipojen=C3=AD vn=C4=9Bj=C5=A1=C3=AD pam=C4=9Bti programu k mikr= okontrol=C3=A9ru z=C3=A1kladn=C3=AD =C5=99ady I8051:
Je mo=C5=BEn=C3=A9 s vyu=C5=BEit=C3=ADm paraleln=C3=ADch port=C5=AF= pro p=C5=99enos adresy a dat.
Dynamick=C3=A9 pam=C4=9Bti RAM maj=C3=AD krom=C4=9B jin=C3=BDch vlast= nost=C3=AD i n=C4=9Bkter=C3=A9 z n=C3=A1sleduj=C3=ADc=C3=ADch (vyberte v=C5=A1echny spr=C3=A1vn=C3=A9 odpov=C4=9Bdi):
velmi vysokou rychlost =E2=80=93 nejvy=C5=A1=C5=A1=C3=AD z dostupn=C3= =BDch typ=C5=AF pam=C4=9Bt=C3=AD NE - velmi malou spot=C5=99ebu v klidov=C3=A9m stavu NE - mo=C5=BEnost trval=C3=A9ho ulo=C5=BEen=C3=AD dat i bez p=C5=99ipoje= n=C3=A9ho nap=C3=A1jen=C3=AD ANO - mo=C5=BEnost automatick=C3=A9ho zotaven=C3=AD dat cyklem =E2=80=9E= CAS before RAS=E2=80=9C s vyu=C5=BEit=C3=ADm vnit=C5=99n=C3=ADho =C4=8D=C3= =ADta=C4=8De adres zotaven=C3=AD ANO - mo=C5=BEnost rychl=C3=A9ho str=C3=A1nkov=C3=A9ho =C4=8Dten=C3=AD d= at
P=C5=99i prob=C3=ADhaj=C3=ADc=C3=ADm DMA p=C5=99enosu mus=C3=AD b=C3=BD= t procesor (nap=C5=99. typu H8S):
odpojen od sb=C4=9Brnice
DMA =C5=99adi=C4=8Dem
Jak=C3=A9 registry (obecn=C4=9B) obvykle obsahuj=C3=AD programovateln= =C3=A9 perifern=C3=AD obvody? U ka=C5=BEd=C3=A9ho registru uve=C4=8Fte, je-li typicky pou=C5=BE=C3=ADv=C3= =A1n pro =C4=8Dten=C3=AD ( R) nebo pro z=C3=A1pis(W), resp. =C4=8Dten=C3=AD i z=C3=A1pis (R/W)
Datov=C3=A9 registry - R/W =C5=98=C3=ADd=C3=ADc=C3=AD registry - W Stavov=C3=A9 registry - R
Dle obr=C3=A1zku v p=C5=99edn=C3=A1=C5=A1k=C3=A1ch. (=C5=98adi=C4=8D DMA) BREQ -> (CPU) BREQ (=C5=98adi=C4=8D DMA) DACK -> (IO =C5=99adi=C4=8D) DACK (CPU) BUSACK -> (=C5=98adi=C4=8D DMA) BUSACK (IO =C5=99adi=C4=8D) DRQ -> (=C5=98adi=C4=8D DMA) DRQ
V=C3=ADte to n=C4=9Bkdo? Aspo=C5=88 n=C3=A1znak? Kdyby se mohl m=C4=9B= nit je=C5=A1t=C4=9B n=C4=9Bjakej registr t=C5=99eba R0H tak by to u=C5=BE= =C5=A1lo. S tou zmenou je to ok, kdyz na konci vratis jejich puvodni obsah.
BILD #7,R0L BCC CLR1 BILD #0,R0L BST #7,R0L BCLR #0,R0L BRA NXT1 CLR1: BILD #0,R0L BST #7,R0L BSET #0,R0L NXT1: BILD #6,R0L
.. a takhle pro bity 6,1 5,2 a 4,3 opakovat
tohle m=C4=9B napadlo ud=C4=9Blat no.. mo=C5=BEn=C3=A1 pude n=C4=9Bco= lep=C5=A1=C3=ADho s rotac=C3=AD.. georgus
Takhle ti to ale nikdy fungovat nebude, proto=C5=BEe si t=C3=ADm = druh=C3=BDm BILD neguje=C5=A1 tu hodnotu z bitu 0 a tu pak jenom kop=C3=AD= ruje=C5=A1 do bitu 7. Nam=C3=ADsto BILD #0,R0L by m=C4=9Blo spr=C3=A1vn=C4= =9B b=C3=BDt BLD #0,R0L a pak to bude fungovat tak jak m=C3=A1 (odzkou=C5= =A1eno a je to nejsp=C3=AD=C5=A1 lep=C5=A1=C3=AD =C5=99e=C5=A1en=C3=AD n= e=C5=BE to n=C3=A1sleduj=C3=ADc=C3=AD).
Dal=C5=A1=C3=AD mo=C5=BEn=C3=A9 =C5=99e=C5=A1en=C3=AD (odzkou=C5=A1= eno a funguje)
.h8300s .data .align 1 ; zarovnani adresy par1: .long txt1 ; parametricky blok 1 .space 100 ; stack stck: = .text .global _start _start: mov.l #stck,ER7 = push.l ER1 mov.b #44, R0L smycka: = shar.b R0L inc.b R1H = bcs ukladej = add.b #0, R1L shal.b R1L = cmp.b #0x7, R1H beq hotovo = bra smycka ukladej: = add.b #1, R1L shal.b R1L bra smycka = hotovo: xor.b R1H, R1H mov.l ER1, ER0 pop.l ER1 = konec: jmp @konec ; konec vypoctu = .end