c: hi-tech 9,80, interrupt asm
Miroslav Draxal
evik na volny.cz
Pondělí Březen 31 13:13:37 CEST 2014
Já to pro vyzkoušení udělal podobne , jenom mě zajímalo, jestli není
nějaké"volatile" pro funkce..
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Hynek Sladky
Sent: Monday, March 31, 2014 12:53 PM
To: HW-news
Subject: Re: c: hi-tech 9,80, interrupt asm
No vidite, uz je to dlouho a mnoho detailu jsem si nevzpomnel... Tohle jsem
nasel na konci kodu:-)
do {
....
} while (1);
// dummy call to prevent removing vectors function by optimizer
vectors ();
Samozrejme se to misto nikdy neprojde, takze se funkce nezavola, ale zustane
v kodu zachovana.
Diky za odkaz na PDF. Kdyz jsem psal prvni bootloader, tak zrejme jeste
prezentace nebyla k dispozici, nicmene to mam resene dost podobne. Pak to uz
fungovalo, tak uz jsem to nemenil :-)
Hynek Sladky
Dne 31.3.2014 12:30, Miroslav Draxal napsal(a):
No a jak řešíte, aby vám překladač neoptimalizoval tu vaší funkci? Udělejme
nejjednodušší možnou funkci ve tvaru:
static void vectors (void) @ 4 {
#asm
goto 0x804 & 0x7FF
#endasm
}
potom, pokud jí někde v kódu nevoláte, tak ji překladač zoptimalizuje a
nepřeloží ji.
XC8 to skutečně schroupe správně 9.80 nikoli.
Tohle Vám skutečně chodilo pod 9.83?
Jak to dělat správně s bootloaderem po XC8 je tady
http://www.microchip.com/stellent/groups/SiteComm_sg/documents/DeviceDoc/en5
58478.pdf
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140331/c5bb0b14/attachment.html>
Další informace o konferenci Hw-list