ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 июля
1329632 Топик полностью
sav6622 (12.07.2023 12:02, просмотров: 155) ответил sav6622 на Нужна мысль, пока как-то непонятно. Проц- at32f413, непонятки с буфером, обьявлен буфер 1021 байт, создан структурой, но в реальности он в три раза меньше, если судить по начальному адресу, и следующему использующему адресу, соот-но какого-то рожна какой-то оверлей получился, причем sizeof в отладчике показывает нужную длину... но в ту длину, и по тем адресам он не влазит... шозафантастика...
Вот так обьявляется. 
     static const uint16_t Size_ = 1009;

       #pragma pack(push, 1)
        struct FrameC 
        {
            uint8_t         type                : 3;
            bool            request             : 1;
            bool            enabled             : 1;
            uint8_t         _unused_1           : 3;
            uint8_t         _unused_2           : 3;
            uint8_t         ttl                 : 5;
        };
        struct Header // 11 bytes //
        {
            FrameC    frame_control;
            uint8_t         seq;
            uint16_t        dest_pan_addr;
            uint16_t        dest_address;
            uint16_t        source_address;
            uint16_t        length;
        };
        struct Frame // 1021 bytes //
        {
            Header       header;
            uint8_t         crc;
            uint8_t         data[Size_];
        };
        #pragma pack(pop)
        
        Frame rx_frame_;