Цитата(Сергей Борщ @ Oct 25 2016, 10:41)

Потому что не обязан. Вы же хотите, чтобы ваши программы были маленькими и быстрыми. Используете явное приведение типов - вся ответственность на вас.
Я просто думал, что для cortex-m0 компилятор генерирует безопасный код в тех случаях когда адрес переменной на момент компиляции не известен. Тогда мне не ясно назначение опции -mno-unaligned-access. Ладно бы hardfault возникал при оптимизациях Os или O3,
где побайтовый доступ потенциально приводил бы к раздутию кода или снижению производительности.
2Allregia: Нет, на IAR\KEil не проверял.
Цитата(Kabdim @ Oct 25 2016, 11:10)

Кстати патч на мой вкус не очень. В таких случая лучше либо использовать memcpy (в релизе его соптимизируют в инлайн), либо код вроде такого:
...
В вашем решении много битовых операций на ровном месте.
memcpy при оптимизациях Os\O3 меня уже пару раз подводила. решение со структурой действительно потенциально быстрее, но
не будет ли генерироваться ассемблерный код, который будет вылетать при невыровненном доступе?