Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: использование __eeprom
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Eugen79
Доброго времени суток.

Значит так, понадобилось мне хранить настройки девайса в EEPROMе, для этого, значит, объявил переменную

Код
__eeprom struct storage_data TDataStreamArch;


однако, при компиляции мой IAR говорит, шо типа не знаю я, что это за __eeprom такой.

Порылся в статьях, там сказано, что данная фишка (keyword __eeprom) есть только во второй версии компилятора.

У меня IAR 4.40A.

Что я еще не донастроил в проекте или чего не хватает в консерватории smile.gif ?

Заранее благодарен за ответы...
IgorKossak
1. Для AVR это обычно Project->Options...->C/C++ Compiler->Language->Allow IAR extensions
2. Если это компилятор для ARM, то где Вы там нашли eeprom?
Eugen79
Упс, так это значит, что таким образом я не смогу использовать внешнюю EEPROM для сохранения настроек?

Камень у меня Sharp LH79524...

Чего-то я не допонял наверно...

Или надо по-другому искать решение?

Заранее благодарен за ответЫ!
IgorKossak
Для записи во внешнюю еепром (в зависимости от производителя и типа интерфейса) существует специальная процедура, как, например, и для флеш.
ИАР не может знать этих тонкостей. Для него работа только с ОЗУ является очевидной. Случай с AVR совсем другой, там еепром встроенная и одинаковая по принципу работы во всём семействе. Отсюда для удобства и возникло расширение и поддержка библиотекой.
Драйвер для конкретной внешней памяти придётся Вам самому писать либо где-то найти готовый.
Eugen79
Спасибо за информацию.

В моем случае флеш-память будет располагаться в одном адресном пространстве с оперативкой (за счет применения флеш-контроллера), так что для работы с ней мне просто будет необходимо указать адрес памяти и работать с ним, как с обычной переменной.

Вроде так.
Сергей Борщ
Цитата(Eugen79 @ Jul 24 2007, 10:00) *
В моем случае флеш-память будет располагаться в одном адресном пространстве с оперативкой (за счет применения флеш-контроллера), так что для работы с ней мне просто будет необходимо указать адрес памяти и работать с ним, как с обычной переменной.
на чтение - да. Вы можете объявить свой сегмент в этих адресах и разместить в этом сегменте переменные (не забыв квалиффикатор __no_init()). Но для записи во внешнюю флеш необходимы некоторые телодвижения, поэтому запись придется делать вручную. И чтобы компилятор отлавливал ошибочные "прямые" обращения на запись, переменные в этой внешней памяти надо объявлять с модификатором const.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.