c: hi-tech 9,80, interrupt asm
Hynek Sladky
econf na centrum.cz
Pondělí Březen 31 12:53:05 CEST 2014
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/en558478.pdf
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140331/45a55ff9/attachment.html>
Další informace o konferenci Hw-list