bureau 0 18 марта, 2014 Опубликовано 18 марта, 2014 · Жалоба В Keil-e есть пример работы с флешь: char xdata * data pwrite; // FLASH write pointer pwrite = (char xdata *) addr; *pwrite = byte; // write the byte Пробую это переделать под IAR: char __xdata * __data pwrite; // FLASH write pointer pwrite = (char __xdata *) addr; *pwrite = byte; // write the byte В результате имею ошибку: memory attributes not allowed on auto variables or parameters Данный кусок кода находится в отдельной функции и делать указатель "pwrite" глобальным -- не очень то и красиво будет... Может кто знает какие пути решения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 19 марта, 2014 Опубликовано 19 марта, 2014 · Жалоба static Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 126 19 марта, 2014 Опубликовано 19 марта, 2014 · Жалоба memory attributes not allowed on auto variables or parameters Попробуйте так: char __xdata * pwrite; // FLASH write pointer pwrite = (char __xdata *) addr; *pwrite = byte; // write the byte Компилятор в самом деле лучше знает, куда ему удобнее разместить автоматические переменные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bureau 0 19 марта, 2014 Опубликовано 19 марта, 2014 · Жалоба Да, так работает. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться