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