(hard)core test na AVR

Miroslav Šinko sinkomiro@gmail.com
Pátek Prosinec 5 11:26:20 CET 2008


Dňa 5. december 2008 11:08, Jan Waclawek <konfera@efton.sk> napísal/a:
>>> Presne "to" ma zaujima.
>>
>>No tak presne "to" bude tazke zistit :-)
>
> Pisal som dakde, ze "to" je lahke? ;-)
> A vobec, mas pocit, ze tu zvyknem davat lahke otazky?
> Ma vobec zmysel davat lahke otazky?
> Aky nazor maju Kant a Schopenhauer na davanie lahkych otazok?
> Co hovori Freud na vztah pokladania lahkych otazok a zazitkov sexualneho charakteru v ranom detstve?

Ale to je vsetko v poriadku, nehadam sa. Len som potvrdil, ze Tvoja
otazka je tazka :-))

>>http://www.cs.uakron.edu/~margush/306/ppt/06stackNcall.ppt
>>na strane 32 vidno to poradie.
>>
> Pekne. Takze LSB je na vyssej adrese.
>
> Moja predpoved vychadza z toho popisu co som pisal pre ten Z+: ret ma 4 cykly. V prvom cykle sa precita SP, inkrementuje, latchne sa vysledok do adresneho registra a zapise sa SP spat. V tomto okamihu teda uz ukazuje SP na sam seba, t.j. v SPL je 0x5D. V druhom cykle sa precita MSB a zapise do MSB PC (takze tam bude 0x5Dxx); sucasne sa znova cita SP, inkrementuje, a v druhej polovici toho cyklu  (to nie je konflikt - tam bude osobitna 16-bitova zbernica veduca do scitacky ktora robi inkrement/dekrement a offsetove indirect veci) sa zapise spat, takze SP ukazuje na SPH. V dalsom cykle sa cita z tej nedefinovanej adresy do LSB PC, stack pointer sa uz nemeni. Posledny cyklus je tam kvoli tomu, ze sa musi precitat nasledujuca instrukcia uz z novej adresy v PC z programovej pamati do "pipeline".
>
> Takze toto u toho tini nema prilis vyznam skumat, take vysoke adresy v programovej pamati (0x5Dxx) nemas.
>
> Zaujimavejsie by bolo zapisat do registra na 0x5C nulu, ak to ide; a SP nastavit na 0x5B. Potom ak ten popis sedi, skoci sa na adresu 0x005D.

Ano. To by som si musel rozbehat nejaku megu... tak skoro asi cas nebude :-(

>>> Ale uplne najzakladnejsia otazka je, ze ako zistit, kde ten program bude pokracovat...?

Odbrusit puzdro, nakontaktovat sa na program counter na cipe a
pripojit MiniLA. Viem, ze je to tazke, ale... vid uvod Tvojho mailu
:-))))

>>Vecer som sa este hral so simulatorom v AVRStudiu. To Z+ nasimuloval
>>uplne presne, vysledkom v r30 bola 0. Tak som skusil simulovat aj
>>stack podla toho, ako som popisal. Vysledok bol zabavny :-) Po
>>instrukciu ret malo pocitadlo krokov od resetu hodnotu asi 13
>>(nepodstatne). Urobil som krok -> hodnota pocitadla 444, vo vypisoch
>>niekolkokrat "stack underflow" a "invalid opcode FFFF" a PC za
>>zastavil na 0 :-)
>
> Hehe, mam nieco napisat o studentoch? ;-)

Myslim si, ze to nie je nutne. O registri 5C pisu, ze je reserved, nic
viac. Reserved veci sa spravidla nema chytat (mozno to niekde uviedli,
mozno nie). Kod skocil niekde, kde je pamat prazdna (FFFF), kedze moj
programik mal dokopy hadam 30 bytov, nebolo to nic nepredpokladatelne.
Opkod FFFF naozaj neprislucha ziadnej instrukcii a to v dokumentacii
je. Skratka chcem napisat, ze na zverske  chovanie sa programu
(vyuzivanie nedefinovanych prostriedkov) sa simulator zachoval velmi
slusne. A vobec nie je vylucene, ze realny procesor by sa zachoval
rovnako.

miro


Další informace o konferenci Hw-list