Automaticke pretypovani u AVR-GCC

Pavel Hudecek phudecek@tiscali.cz
Neděle Červenec 26 21:57:39 CEST 2009


Pokud byl původní projekt psán tímto způsobem, tak to jde snadno. Ale je 
otázka, zda to má nějaký smysl. Osobně bych to nechal celé v C a do asm 
převedl jen kritické části. Tím se veškerá další práce (včetně přeportování) 
ještě více usnadní.

Bavíme-li se ale o portování asm -> asm, pak bych považoval za samozřejmé, 
že původní projekt nemá s vyšším jazykem od počátku nic společného, neb 
pokud autor kompletně použil asm, měl k tomu nějaký dost dobrý důvod, který 
souvisí např. s tím, že daný procesor má pro danou úlohu určité výhodné 
vlastnosti, které vyšší jazyk neumí použít (např. hardwareové ochrany/správu 
paměti, nekompatibilní s pointry) a s obecným portováním nepočítal. A když 
už to celé dělá v asm, může obecně použít spoustu asm vychytávek, které se 
naprosto příčí zvyklostem překladačů vyšších jazyků, ale program v asm 
značně zpřehledňují a samotné psaní zpříjemňují. Např. moje oblíbená metoda 
předávání konstantních parametrů:

maMsgboxIm 'Ukázkový msgbox', 0, 'Ahoj!', 0, wmOK

což je makro, z něhož vyleze:

call sys_disp_msgbox_im
db 'Ukázkový msgbox', 0, 'Ahoj!', 0, 0

Volaná funkce vyrobí msgbox a po stisku OK se vrátí do programu za konec 
db. - Takhle nějak se programovalo v asm, pod mým vlastním OS psaným také v 
asm. Ovšem nechtěl bych to portovat na procesor, který má nějakou 
nepraktickou metodu čtení dat z kódového segmentu, nebo třeba hardwarový 
zásobník návratových adres:-)

PH

PS: Uznávám, že tím příkladem s FSIN jsem si vyloženě naběhnul na smeč:-)

From: "Milan B." <milan@bastl.sk>
Preio si vsetci myslite, ze portovat znamena  lepit instrukciu k
instrukcii a vsetko od zaciatku?

1. Mam nejaky algoritmus.
2. Naprototypujem ho trebars v C a odladim
3. Prelozim ho v C, vygenerujem ASM zdrojak a upravim ho tak, aby sedel
do mojho ASM projektu
4. Povodny C zdrojak necham ako poznamku a ako popis algoritmu

A teraz idem portovat:
1. Zoberiem kus zdrojaku z poznamok
2. Prelozim ho v C novej architektury, vygenerujem ASM zdrojak .. a
upravim ho tak, aby sedel do mojho ASM projektu

Chce trochu systematickejsi pristup k praci a trochu discipliny. A to sa
bohuzial dnes nenosi. 




Další informace o konferenci Hw-list