(hard)core test na AVR

Miroslav Šinko sinkomiro@gmail.com
Čtvrtek Prosinec 4 23:44:19 CET 2008


Dňa 4.12.2008, Jan Waclawek <konfera@efton.sk> napísal(a):
> Ha! [vyteseny smajlik s tucnym sebavedomim]

Rado sa stalo :-)

> (ale priznam sa, ze doobeda som bol nakloneny skor vysledku 1, a aj som mal nejake argumenty; a okolo obeda som sa pohraval aj s myslienkou, ze by tam mohlo byt 31... :-) )
>
> Dakujem, ze si si dal namahu s tym testovanim.

Zas az taka namaha to nebola. Cosi si majstrujem, takze osadena a
ozivena DPS s pripojenym ISP je k dispozicii ihned. Cela robota teraz
bola vytvorit projektik v AVRStudiu :-)

> A teraz by si mohol skusit ten ret ked sa stack pointer nastavi pod stack pointer :-) Schvalne, akou metodikou by sa na to dalo ist?

Obavam sa, ze nerozumiem pointe. Do SP naplnim adresu leziacu pod
adresou SP registra v datovej pamati. Napr. v tom mojom tiny13 je iba
SPL na adrese 3Dh t.j. pamatova adresa bude 5Dh. SP teda nastavim na
5C alebo 5B (skor 5B, lebo ret urobi SP+2). Teraz pride instrukcia
ret. SP sa "nejako" zvysi o 2 (to "nejako" chces asi testovat) a
vyberie adresu kam nasledne skoci program. Ak by sa to spravalo uplne
jednoducho, tak sa SP zvysi o 2, z bytov na adresach 5D a 5E vyberie
hodnotu adresy a tam skoci program. Na adrese 5D je SPL s
predpokladanou hodnotou 5D, na adrese 5E nie je ziaden register
definovany. Kde teda skoci program je silne otazne. Ak by sa to +2
spravalo inac, vysledkom moze byt ze SP ukaze "kamsi", odkial vezme
adresu, kde bude kod pokracovat.

No... ak som to popisal ako-tak spravne, tak nevidim vyznam takehoto
badania pre nejake netradicne vyuzitie ...a tradicne uz vobec nie
:-)))

Finty so zasobnikom som kedysi robil este na Z80, napr. rychle presuny
v RAM cez POPy a PUSHe, alebo skok niekam cez PUSH adresy a RET. Tam
nastastie registre boli mimo RAM, takze prepis samotneho SP "Tvojim"
stylom nehrozil :-)

miro


Další informace o konferenci Hw-list