AVR a dva seriaky

Tomas Dresler dresler@hw.cz
Pátek Prosinec 12 11:23:20 CET 2008


Ale panove, Cortex v asm je celkem easy :-) Tvrdi se, ze ASM nepotrebujete,
ale pokud nejsou implementovane intrinsic funkce, jak zabalite WFI, WFE,
MSR, MRS apod.?

Jeden zakaznik se rozplyval nad tim, ze při skoku do interruptu ma strasne
pomalou odezvu na zmenu GPIO (v ARM C) a ze ze zminovanych 12 cyklu je 50.
Tak se kouklo do asm, zjistilo, ze před zapisem do datoveho registru je
ulozeni navratove adresy na stack a nacitani nekterych konstant pro zapis na
port a ze se to da zkratit na cca 30 (v asm). No a abych ho presvedcil, ze
ten interrupt fakt tech 12 cyklu trva, napsal jsem entry toho preruseni v
asm s první instrukci SEV, pak uz byl klasicky B <C_interrupt>, no a reakce
se najednou zkratila na 14 cyklu.

Na druhou stranu, třeba diferencialni Manchestr na 14 Mbit/s (in/out
simult.) lze napsat v C celkem easy :-) Je pravda, ze je to vicemene
nastaveni casovace, dvou DMA a SPI a pak uz jen parsovani bufferu, ale
funguje to v C a je to pohoda.

No a C++ na malem MCU - to by weka vystrelilo na Mesic, ne? Mam uz tu
zkusenost od zakaznika a musim rict, ze tak dobře se mi na RTOS s mnoha
ulohami ještě neprogramovalo... Ridici a navigacni systém pro male motorove
lode, komunikace asi na deseti kanalech najednou, rizeni magnetickeho
kompasu, nadherna aplikace. Pritom celkem maly ARM7/9, zadny Linux nebo tak
něco.

Ja bych tenhle flame fakt uzavrel s tim, ze ucel sveti prostredky, a když
dobře chodi SW UART v C, tak proc do toho stourat (jen nezapomen na
preruseni :-)).

--
S pozdravem/with best regards

	Ing. Tomas Dresler

mailto:dresler@hw.cz


-----Original Message-----
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
Behalf Of Petr Kubáč
Sent: Friday, December 12, 2008 9:07 AM
To: HW-news
Subject: Re: AVR a dva seriaky

> Pokud by chtel nekdo argumentovat, ze i v tech armech je nutne pouzivat
> castecne asm, tak napr. takova jadra Cortex jsou jiz FULLY ASM FREE.

No pokud se jedna o ARM (Cortex) tam je skutecne otazka jestli clovek vubec 
je schopen napsat optimalni kod (vzhledem ke komplexnosti ARM instrukci). C 
kompilator samozrejme neni schopen napsat optimalni kod nikdy, ale ve 32 
bitove matematice s desitkami MIPS to tolik neboli jako na 8051.

Zdravi Petr Kubac 

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list