[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Начнем с исходного вопроса, опустим пока и IAR, и его версии:
Подскажите, пожалуйста, как в IAR C 2.26 правильно расположить массив данных (с инициализацией) во внешней EEPROM? Почему не удается сделать так?: char name[]@0x260="lalala"
А теперь прочитаем, что я написал в ответ:
Здрасьте, а как же Вам IAR этот массив во внешней-то EEPROM проинициализирует??? Он-то откуда знает, что за EEPROM, какой у нее протокол записи и как она подключена?
И сейчас посмотрим, что пишете Вы:
Нужно создать переменные, лежащие в EEPROM.
Теперь объяснимся. Что, по-Вашему, должен сделать компилятор - расположить массив в должном сегменте, или все же создать целую конструкцию, определяющую для начала, какой EEPROM и каким образом подключен к МК, и потом записывающую в этот EEPROM массив в соответствии со всеми требованиями протокола программирования? Такое даже профессиональные программаторы не умеют толком делать - определить, что за EEPROM засунут в колодку, выставить параметры программирования и вдуть туда данные. Это доходчиво, или снова что-то не так?
Если не так - поясню: существуют десятки типов EEPROM, отличающихся друг от друга весьма изрядно. У одних запись побайтовая, у других - поблочная, у третьих требуется сначала стереть данные, у четвертых стирание происходит автоматически, у пятых есть вывод "Ready", у шестых - "Busy", седьмым надо для записи подать 12 вольт, восьмым достаточно 10 микросекунд для записи байта, девятым и 20 миллисекунд не хватит на блок... и т.д.
А вот теперь, уважаемый Учитель-Обличитель, потрудитесь внятно объяснить сначала мне, а потом любому на Ваш выбор компилятору, как это сделать посредством применения "ключевых слов", VC++, сегментов, cstartup и т.п. А после того, как поймете, воздержИтесь от криков негодования и посвятите хотя бы немного своего драгоценного времени на ознакомление с азами схемотехники.
E-mail: info@telesys.ru