Как вы назначаете конкретный адрес памяти указателю?
Регистры специальных функций в микроконтроллере, такие как AVR m128, имеют фиксированные адреса, AVR GCC определяет SFR в заголовочном файле io.h, но я хочу сам обрабатывать его.
Ответ 1
Конечно, проблем нет. Вы можете просто назначить его переменной:
volatile unsigned int *myPointer = (volatile unsigned int *)0x12345678;
Я обычно делаю объявление макроса ввода-вывода с отображением памяти:
#define mmio32(x) (*(volatile unsigned long *)(x))
И затем определите мои регистры в файле заголовка: