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