ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
595520 Топик полностью
LightElf (29.04.2015 17:27, просмотров: 268) ответил Mahagam на кратко, у авр указатель на рам и указатель на флеш не совсем равнозначны. доступ к _данным_ во флешке идёт через отдельную команду LPM, посему просто скормить функции указатель невозможно, функция должна знать это указатель на флеш или на раму.
Не "не совсем равнозначны", а совсем не равнозначны. Чистый гарвард: есть адресное пространство команд и есть адресное пространство данных. Каковые между собой не пересекаются совсем. Адрес команды 0x1234 и адрес данных 0x1234 - абсолютно разные вещи. Потому компиляторы Це вынуждены либо прикручивать к указателю дополнительный байт (чтобы понять, куда он собственно указывает), либо иметь два вида указателей и две копии функций. Ровно такая же фигня у 8051, PIC12 и т.д.
Не надо делать мне как лучше, оставьте мне как хорошо