OT Tak ma ti norski studenti zasa raz vytocili...

Karel Minarčík karel.minarcik@seznam.cz
Pondělí Prosinec 1 19:08:14 CET 2008


Zdravim
kratce jsem se mrkl na ten Vas kod:
mam par pripominek, nevim presne jaky ten Vas staro/novy kompiler pouzivate, ale:

pro generovani listingu je treba to sdelit kompileru prepinacem -l, nebo v AVRstudiu nastavit:
Project >> Assembler options >> a zaskrtnout Create list file

co se tyce r00 versus r0, neodpovim Vam presne, ale co vam brani pouzit v celem programu
misto r00 r0 ? (staci dat najit/nahradit)

Karel

bylo/bolo:

Tak som si to skusil aj s nejakym vlanajsim vydanim AVRStudia... Bleeee....

Predovsetkym, je tam novy asembler. Dokumentacia k nemu je strasna, kapitola "known issues" nahana hrozu - len tak namatkovo: "Increment/decrement operators (++/--) are recognized by the assembler and may cause surprises[...]"

Uprimne, nahnevalo by ma to, ale neprekvapilo...

No ale podstatne je, ze mi to moj vcerajsi zdrojak - ktory som s tou avra rozchodil bez problemov - neprelozilo vobec. Vyhodi jednu chybu a zdochne. Asembler co zdochne hned po prvej chybe som videl naposledy v roku 1996, a to som bol jeden zo spoluautorov, tak si to viete predstavit.

Ta chyba spocivala v tom, ze ja pouzivam mena registrov ako r00, r01, r02 atd. Robim to odkedy robim na AVRkach, a este nikdy som s tym problem nemal. Je to okrem estetickosti aj prakticke - ak chcem replacnut register r1 trebars za nejake symbolicke meno, tak pri mojom zapise nemusim bojovat s tym, ze bude replacovat aj "zaciatok" r10-r19. No ale norski studenti maju na to iny nazor.

Tak skusam fintu ako .def r00 = r0, ale kedze v dalsom mam .def X0_0 = r00, to mi uz nezozerie.

Ale kupodivu zozerie #define r00 r0 ... takze dopisujem dalsie #define a uz to prelozi a aj spravne, makra su OK.

Dalsia finta je, ze nemam listing aj ked mam uvedenu direktivu .list. Znova norski studenti nechapu, ze ak si dam namahu tam tu direktivu napisat, tak asi ten listing chcem mat, bez ohladu na to co je nastavene v AVRStudiu (a teda co sa odovzdava ako parameter asembleru). Nehovoriac o tom, ze ja som vcera to vytvaranie listingu mal v projekte zakliknute, no ale to by som asi chcel vela, prenositelnost parametrov projektu, ze?

OK, zaklikavam v projekte ze chcem listing, a pozrel som do toho listingu... a na spodku je veleuzitocna statistika, ze kolkokrat bola ktora instrukcia pouzita (plus ze ake percento zo vsetkych instrukcii vyuzivam), a kolkokrat ktory register... To je kvoli nejakej direktive EU, ze sa musia programy pisat tak, aby sa procesor opotrebovaval rovnomerne, alebo sa to ma zaslat statistickemu uradu?

Este som si pre uplnost som sa prepol do "stareho" asemblera (ale novsia verzia ako mam doma), tomu sice tie #define kupodivu nevadili, ale ich aj ignoroval, a zato mu tie r0x vadili, takze som ich prepisal rucne a prelozilo to spravne, makra boli OK.

Ja som uz asi fakt stary ufrflanec, ze mi taketo malickosti vadia, ze?

wek




Další informace o konferenci Hw-list