bitove pole, pole bitu

Miroslav Šinko sinkomiro@gmail.com
Středa Leden 28 11:11:52 CET 2009


Dňa 28. január 2009 9:18, Jan Waclawek <konfera@efton.sk> napísal/a:
>
> Ono je to dost roboty implementovat oboje (packed aj nepacked), pritom dnes sa s vynimkou 8-bitov predpoklada velkorysost co sa pamate tyka. Je smutne, ze prave u 8-bitov si zatial nikto tu namahu nedal - ale zasa chap, ze tie 8-bitove Pascaly (s vynimkou Mikroelektroniky - tam je to ocividne byprodukt toho ze ten Pascal uz napisali pre PICko, tak to chcu vyuzit - a mozno aj KSC) su zvacsa nadsenecka robota (Lamiers mi to otvorene napisal, zarobit sa na tom jednoducho neda).
>
> V skutocnosti je to ekvivalent prepinaca pre optimalizaciu na rychlost a na pamat.
>
> Mimochodom, ortodoxneho Pascalistu nezaujima, aka je interna reprezentacia toho-ktoreho typu... ;-)

Takto by to malo byt nielen pri Pascale, no nie vzdy je to mozne. Ked
sa ale odosobnis od tohto pohladu, prave pri low-levelovejsich
aplikaciach si usetris vela namahy (plus mozes usetrit velkost kodu a
vypoctovu narocnost). V C tiez nie je normou dane, ako ma byt interne
reprezentovane napr. bit-field, ale ked to vies pre dany kompilator,
ulahci to pracu (typicke priklady: VGA farby, rozne timestampy).
Samozrejme je to na ukor prenositelnosti medzi platformami.. Myslim,
ze aj Ty si kedysi pisal, ze v pripade MCU je platformova
prenositelnost problematicka. Je to aj moj nazor.
Rovnako implementacne zavisla je v C reprezentacia int a co sa tyka
endianovosti, tak aj vsetkych datovych typov (okrem char). Prave
endianovost zacina byt zaujimava az ked mas prenasat data podla
stanoveneho protokolu a "najlepsie" medzi platformami, ktore chapu
byte-order opacne. S tymto problemom sme sa vysporaduvali pri
projekte, kde PC komunikovalo so zariadenim s MCU od Renesasu (big
endian). Tam treba konvertovat vsetky datove polozky, lebo pri opacnom
endiane nesedi nic :-( Kvoli rychlosti a velkosti kodu sa konverzie
robili v PC. Ak si raz niekto zmysli zmenit platformu v zariadeni (MCU
bude s little endian) a ak by sa aj po nejakej namahe dali pouzit
povodne zdrojaky, tak alebo bude musiet konvertovat endian v MCU,
alebo sa bude musiet prerobit program v PC...

Tym som chcel povedat, ze zivot prinasa situacie, kedy interna
reprezentacia datovych typov je nielen zaujimava, ale aj zivotne
dolezita. No a preto sa o nu ortodoxne/neortodoxne zaujimam :-))

miro



> wek
>
>



Další informace o konferenci Hw-list