c: hi-tech 9,80, interrupt asm

Andrej Jancura aj.hwlist na gmail.com
Pondělí Březen 31 20:11:47 CEST 2014


Dobry vecer,

vidim, ze ste uz temu uzavreli, takze to mozem pomaly zbalit aj tu. Ale
este by som rad dve poznamky k tejto problematike. Nie je to sice k tomu
ako donutit kompilator, aby Vam dal na adresu interruptu Vasu rutinu, ale o
tom ako to robil HiTech cisto v C.

Neviem aku verziu kompilatora mate Vy, ale ja som mal v tej svojej adresar
examples, kde bol hotovy bootloader vratane zdrojaku a suboru s pouzitymi
prepinacmi pre kompilator, aby relokoval aj interrupt vektor. Mozno Vas to
inspiruje.

Druha moznost ako na to, je pozriet sa na prepinac kompilatora tusim ICD
alebo taky nejaky podobny. Ked si ich nechate vypisat, tak Vam vypise
vsetky a z tych si vybrat tie, ktore potrebujete. Ja si ich uz nepamatam.
Ale bolo to uz v casoch 16F877. Teda peknych par rokov dozadu.

A.



2014-03-31 13:13 GMT+02:00 Miroslav Draxal <evik na volny.cz>:

> 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/en558478.pdf
>
>
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140331/f8966ace/attachment.html>


Další informace o konferenci Hw-list