ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
1 сентября
1602302 Топик полностью
Eddy_Em (Сегодня, 10:27, просмотров: 16) ответил Nikolay_Po на Ты в листинг загляни. Бывает, оно оптимизирует и всё, что можно, копирует полными словами. А бывает - по байтам. Может от версии библиотеки зависеть. YMMV.
Еще ведь от модели МК зависит: на всяких "нулевках", если копировать невыровненными словами, будет хардфолт. Т.е. недостающие до слова из головы и хвоста надо побайтно, остальное - по словам. 

А еще, на каком-то МК, где буфер USB "честный" (т.е. 32-битное слово - это 32-битное слово с соответствующей адресацией), memcpy прокатывает при копировании между буферами, а если там 2 16-битных в одном 32-битном с 16-битной адресацией, memcpy вызвал хардфолт, приходилось по 2 байта в цикле…

Кстати, когда я себе обновил arm-none-eabi-gcc, то оказалось, что 15-й где-то что-то так наоптимизировал, что у меня вообще USB работать не стал (а 9-й нормально все собирал). Пришлось в Makefile дать указание, что конкретный файл нельзя оптимизировать…

eddy-em.livejournal.com github.com/eddyem