ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
577610 Топик полностью
Mikla (04.02.2015 20:44, просмотров: 175) ответил LightElf на Надо смотреть что в конкретном случае сгенерил кейл. Я с кейлом не знаком. В общем случае компилятор выберет интринсик, основываясь в том числе и на типах указателей. И ежели указатели имеют тип int *, то компилер разумно предположит что они
да, счас экспериментировал, вы правы. реализация memcpy зависит от типа указателей. memcpy(to, from, 8); пока to и from были указатели на char, добиться косяка не мог. всякие оптимизации не помогали. решил изменить тип на указатель на long, сразу же появилась LDRD и hardfault. но почему явное преобразование типа не помогло: memcpy((unsigned char*)to, (unsigned char*)from, 8); - все равно используется LDRD и hardfault(to невыравнена на границу 4байт). видел описания memcpy всего лишь из пары строк. Нигде эта феничка не затрагивалась.