přístup na byty v int C

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Úterý Říjen 29 20:51:54 CET 2013


No ja bych rekl, ze vic zalezi na zapnutych optimalizacich, nez jak se 
to napise...
Ta konstrukce co jsem napsal IMHO neni az tak prasacka a treba u AVR 
vedla presne ke kodu, jak je to mapsano - vezmi ukazatel a na adresu +0, 
+1 ... uloz data z eeprom.
Take dost zalezi na pouzitych typech, treba
uint16_t u;
uint8_t b;
u = ((uint16_t)b) << 8
by melo vest primo k zapsani byte do HIBYTE u, do LOBYTE se zapise 0.

Ale je to dost casto detektivka, zkuste zacit s ARMama, to vas takove 
detaily prejdou, kdyz se v ISR automaticky na zasobnik uklada milion 
registru vcetne FPU :-P

Dne 29.10.2013 20:02, Miroslav Draxal napsal(a): uloz data z ee
> Re: přístup na byty v int C
>
> No hrát, to je trochu nadnesené. Můj problém je v tom, že jsem od mala 
> vyrůstal na ASM. No a teď, když se kouknu na disasemler toho co vyleze 
> z C, tak někdy mi lezou oči z ďůlků. To co se dá udělat 4 řátky, né 
> zřídka C spáchá i 20. Beru to jako daň za pohodlí. Ale někdy mě to 
> drapne, a snažím se tomu kompilátoru pomoct, aby z toho vylezlo něco 
> krátšího. Třeba v přerušení.
>
> Tak jak by ten zápis tedy měl vypadat, aby byl "košer"
>
> Míra
>
> *From:*hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] 
> *On Behalf Of *Jaroslav Buchta
> *Sent:* Tuesday, October 29, 2013 6:07 PM
> *To:* HW-news
> *Subject:* Re: přístup na byty v int C
>
> Tak tazatel si chtel s ukazatelema hrat, pokud jsem dobre cetl ;-)
>
> Dne 29.10.2013 13:30, Josef Štengl napsal(a):
> > Notěbůch, ještě že vám nedělám revize kódu :-).
> >
> > Jen pro ty, co by se z toho chtěly poučit; jako ukázka možnosti
> > ukazatelů to lze použít, jinak jsou to příklady jak to, v tomto
> > konkrétním případě, _nedělat_. Oproti prostému shiftu je to komplikace
> > jak pro programátora, toho kdo to bude číst i pro kompilátor.
> >
> > Pro dokonalé poučení najděte situace, kdy to nebude fungovat tak jak
> > očekáváte :-D.
> >
> > ced
> >
> >
> > Dne 29.10.2013 11:37, Jaroslav Buchta napsal(a):
> >> To asi prekladaci zbytecne komplikujete zivot, dalo by se bez pomocne
> >> promenne:
> >> ((char *)&Linear.Krok)[0] = eeprom...
> >> ((char *)&Linear.Krok)[1] = eeprom...
> >>
> >> nebo
> >> *((char *)&Linear.Krok + 0) = eeprom...
> >>
> >
> > _______________________________________________
> > HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
> > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
> > http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 8979 
> (20131029) __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 8981 
> (20131029) __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
>
> _______________________________________________
> 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/20131029/15d24ccd/attachment.htm>


Další informace o konferenci Hw-list