ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
1020519 Топик полностью
Гyдвин, волшебник (23.07.2020 23:39, просмотров: 695) ответил fk0 на Проблема в том, что у тебя в программе _нет_ такого типа (U32, но только "упакованный"). Если его руками создать, как в примере по ссылке (внутри IY) -- то оно даже будет как надо работать. Упакованные структуры это очень неполноценное и нестандартная надстройка над C/C++. Не продуманная. Костыль. Её неспроста нет в стандарте. Она "недоделанная" и не совсместима с моделью памяти и системой типов C/C++. Стандартными (для C++, не для C) средствами можно изголиться и сделать
Нет уж... Тысячи строк кода, драйверы, куски стороннего кода (та же FatFs) и пр. как то не способствуют выворачиванию всего наизнанку. А по этому топику: Cortex M3 (LPC17) имеет аппаратную побайтную адресацию, посему фтопку компилер, взомнивший себя шибко грамотным... Более ранняя версия работала "как в мудрых книгах написано" - привели указатель к void* или char*, вызывается предсказуемая библиотечная функция побайтного копирования (и все остальные из string.h). И 

"#pragma pack(1)" я не сам придумывал - было реализовано в Keil, описано, документировано и работало весьма корректно.