zahada delky struktury GCC
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pondělí Březen 11 20:31:20 CET 2024
packed ve strukturach se vyhybam jako cert krizi, pak to nema zarovnane
nic a kod je tezko prenositelny na neco, co to nesnasi. Ani nevim,
jestli to snasi ESP32S3 ale nemelo by to byt fixovano na jeden typ
procesoru...
Dne 11.03.2024 v 20:25 Miroslav Mraz napsal(a):
> To se sice doporučuje, ale asi to nepomůže. Já to sice taky nechápu,
> ale pomůže
>
> typedef struct {
> union {
> struct {
> char gsm_apn[32]; // module GSM APN
> // ...
> double gps_last_latitude; // car last
> known latitude, *10^7 (GPS_FIXP_MULT)
> double gps_last_longitude; // car last
> known longitude, *10^7 (GPS_FIXP_MULT)
> }__attribute__((packed));
> uint8_t ba[CFG_DATA_LEN - 4];
> };
> uint32_t crc32;
> } app_data_cfg_t;
>
> Mrazík
>
> On 11. 03. 24 20:10, Jaroslav Buchta wrote:
>> Muzete upresnit? Nechapu co mate na mysli. Myslim, ze to rozhodily ty
>> double i bez vlozene struct ale to bych musel znova zkusit.
>> Jo a samozrejme 1e7 ma byt ta konstanta. Ono je to stejne lepsi
>> ukladat do int32*1e7 nez do double, aby to melo OK rozliseni (float
>> nestaci ani nahodou), ale je to konverze starsiho projektu a bude se
>> to muset vic predelat...
>> A osvedcilo se pouziti kontroly static_assert (sizeof(app_data_cfg_t)
>> == CFG_DATA_LEN); jinak bych na to jen tak neprisel a je to dulezite
>> kvuli ulozisti...
> _______________________________________________
> 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