Zaèáteènický dotaz na C - variant ve struktuøe

Josef Štengl ok1ced na nagano.cz
Čtvrtek Listopad 13 11:34:53 CET 2014


Ano, máte pravdu. V normě je to jasně napsané a několikrát. Nemám tušení odkud jsem vzal takovou blbost.

Tímto se omlouvám za mystifikaci a děkuji za opravu.

K endianitě. Máte pravdu, ale periférie jako taková není svázána s MCU a někdy ani endianita samotná.
Například čipy řady TMS570 a RM4x si jsou dosti podobné, mají většinu periférií společných CPU je shodné, ale jeden je ve 
výchozím nastavení překládán jako big a druhý jako little. Pokud máte konfigurovatelný systém, u kterého je možno použít 
obě verze/nebo jen změnit endianitu při překladu, tak je otázka endianity důležitá, když není předem známo, jak se to 
přeloží. Dost jsem se natrápil s cizím kódem na toto téma, tak jsem na to citlivější.

Ale v tomto případě to je asi nepodstatné.

ced


Dne 13.11.2014 v 10:54 Jan Waclawek napsal(a):
>> Dle specifikace jazyka C není zaruèeno (implementaènì závislé), že pøekladaè u union ukládá jeho prvky do stejné
>> pamìové oblasti; union se mùže chovat stejnì jako struct a nebude to chyba (dle specifikace).
>
> Tak, ako ste to napisali, to nie je pravda. C99, 6.7.2.1#14:
> [...] A pointer to a union object, suitably converted, points to each of
> its members [...]
>
> Na druhej strane nie je normou zarucene, ze struct nebude mat medzi prvkami
> medzery kvoli zarovnaniu; toto zarucuje to prekladacovo-specificky
> atribut. Tie kniznice ku Cortexom (aj tie od ARMu v ramci CMSIS) su plne
> podobnych nestandardnych prekladacovo-zavislych zalezitosti, nie je dovod
> sa tomu branit. Detto endianita - vzhladom na to, ze sa jedna o popis
> hardwarovych registrov konkretneho radu mcu s fixnou endianitou, je
> vrcholne nepravdepodobne, ze by sa niektory prekladac rozhodol interne
> pouzivat inu endianitu - technicky by to sice slo, ale je to totalny
> nezmysel.
>
> Motivacia ST bola uplne ina, a to urobit to rychlo a lacno, t.j. bez
> ohladov na uzivatelov a zrejme aj bez konzultovania s uzivatelmi. Inak by
> nemohli robit taketo pomerne elementarne chyby, na ktore sa stazuju 3 zo 4
> uzivatelov tych mcu na nahodne vybranom fore... ;-)
>
> wek
>
>
>


Další informace o konferenci Hw-list