ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
1021141 Топик полностью
йцyкeн (26.07.2020 17:01, просмотров: 539) ответил RxTx на Тут тонкость в том, что проблема будет только лишь при разыменовании указателя. Для memcpy() тут исключение. memcpy() принимающая void* всегда должна работать корректно при любом значении указателя, выравнен он или не выравнен. Однако в-том то и дело, что в данном случае без "ручного вмешательства" правильно она не работает.
В ИАРе как раз "ручное вмешательство" нужно, чтобы получить хардфолт. Функции memcpy() в ИАРе на самом деле нет, компилятор подставляет __aeabi_memcpy или __aeabi_memcpy4. __aeabi_memcpy4 не проверяет выравнивание, считается, что компилятор не промахнётся, и ИАР не промахивается. Какого чёрта Кейл работает по-другому - для меня загадка.