Lomach 0 19 августа, 2011 Опубликовано 19 августа, 2011 · Жалоба К контроллеру Mega64 подключена внешняя память данных. Как в IAR записать байт во внешнюю память по определенному адресу, а также считать байт по определенному адресу. В Keil это делается очень просто через XDATA. А как сделать в IAR? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 19 августа, 2011 Опубликовано 19 августа, 2011 · Жалоба //8К расположены по адресу 0x8000 #pragma location=0x8000 volatile __no_init unsigned char mem[8192]; Ну и компилятору намекнуть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kavlav 0 19 августа, 2011 Опубликовано 19 августа, 2011 · Жалоба К контроллеру Mega64 подключена внешняя память данных. Как в IAR записать байт во внешнюю память по определенному адресу, а также считать байт по определенному адресу. В Keil это делается очень просто через XDATA. А как сделать в IAR? По правильному это делается так. В папке ...Iar Systems...\avr\config находите подходящий конфигурационный файл для линкера, например lnkm64s.xcl. В этом фале и прописываются все сегменты, стеки и т.д. В нем есть подробные коментарии, разобраться будет просто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 20 августа, 2011 Опубликовано 20 августа, 2011 · Жалоба Это если надо чтобы линкер какие-нибудь сегменты, кучу например, размещал во внешней памяти. Задача автора читать/писать байт по абсолютному адресу. Для этого либо переменная размещается по абсолютному адресу и используется как переменная #pragma location=0x8000 volatile __no_init unsigned char var; Либо можно по указателю доступ делать unsigned char *mem = 0x8000; *mem = *mem; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться