C xc8 rozkald double na byty

Miroslav Mraz mrazik na volny.cz
Úterý Květen 16 18:48:45 CEST 2017


Jasně, ty pojmy jsme dostatečně nespecifikovali. C-čko má "bit fields" např.
struct S {
     // will usually occupy 2 bytes:
     // 3 bits: value of b1
     // 2 bits: unused
     // 6 bits: value of b2
     // 2 bits: value of b3
     // 3 bits: unused
     unsigned char b1 : 3, : 2, b2 : 6, b3 : 2;
};
což by se jako bitové proměnné dalo do určité míry chápat. Nedá se to 
indexovat a nelze na to vytvořit ukazatel, ale pracovat se s tím dá.
Bitový procesor chápu jako to, co má ta 8051 - pole adresovatelných bitů 
a extra operace (jen) nad nimi - což v "normálním" C-čku vskutku dost 
dobře dělat nejde. Bitbanding v CM3/4 tomu má asi nejblíž, to v C-čku 
sice jde, ale s alokací proměnných nastanou potíže s jejich překrýváním.
Ale celkem bych to považoval za relikt reléové éry, vlastně jsem to 
používal jen v krajních případech, kdy to z té 8051 bylo hodně obtížné 
přenést jinak.

Mrazík

Dne 16.5.2017 v 17:23 Jan Waclawek napsal(a):
>> Můľu se zeptat v čem jsou C-čkové bitové proměnné ne-plnohodnotné ?
>
> No predovsetkym neexistuju.
>
>> Např. https://code.google.com/archive/p/esl/ umoľňuje obecné n-tice bitů
>> indexovat, nicméně se mi nezdá, ľe by ESL právě kvůli tomu někdo
>> pouľíval.
>
> On ten dovod nepouzivania skor bude v
>> ESL is a new programming language
>
>
>> Ono to jde i v tom C větąinou nějak obejít,
>
> Jasne. Rovnako ako ta poziadavka na generovanie inicializatora.
>
>
>> kdyľ daná architektura bitový procesor nemá, tak nezbývá neľ jej
>> emulovat nebo nepouľívat. Ta druhá varianta mi přijde tak nějak rozumnějąí.
>
>
> Neviem co si predstavujete pod pojmom bitovy procesor. Napr. ARMv7 ma
> pomerne silne bitove operacie (nemyslim tym bitbanding v Cortex-M3/M4).
>
> A, pochopitelne, najlepsi mcu vsetkych cias ich ma tiez :-)
>
> wek
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list