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