|
HEX-файл |
|
|
|
 |
Ответов
(1 - 10)
|
Jul 2 2007, 17:42
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Продолжаем разговор... Цитата(KRS @ Jun 16 2007, 23:00)  А у вас эти файлы в одном target ( release/debug ...) генерируются? может настройки компилятора разные? Да, в одном. Опишу процес подробней... 1) В настройках проекта Options\XLINK\Output\Output format выбираю формат simple (EEPROM используется, поэтому поставить формат HEX не могу: выдаётся ошибка ) 2) Получаю на выходе raw-файл 3) Запускаю bat-файл: Код del code.hex del eeprom.eep "C:\iar\avr\bin\postlink.exe" -intel-extended -code M_S.raw code.hex "C:\iar\avr\bin\postlink.exe" -intel-extended -xdata M_S.raw eeprom.eep Зашиваю программатором - не работает программа.
|
|
|
|
|
Jul 2 2007, 19:57
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 17-10-06
Из: Санкт Петербург
Пользователь №: 21 387

|
В настройках проекта прописываются настройки линкера, сразу генерятся 2 файла HEX - один для Флеша, второй для EEPROM вот здесь обсуждалось как это сделать: http://www.fulcrum.ru/cgi-bin/bbs/mess_sel...14608&LID=1еще были ссылки, сам на том форуме писал, но найти не могу  во, нашел: Цитата в иаре удобно сделано обращение к EEPROM, как уже писалось выше. Я делаю так:
объявляем переменную (и) __eeprom unsigned char ASD=0;
далее в программе можете с ней работать как с обычной переменной if(ASD > 5) ASD = 0;
но, что бы компиллер сделал файл инициализации для еепрома (такой же как вы создаете для FLASH'а) надо лезть в настройки. в окне проекта выбираем нужную конфигурацию (Debug/Release или какую надо настроить), на файле проекта правой кнопкой мыши => "Options...". Затем в категории выбираем "Linker", вкладка "Extra Options". Ставим галочку "Use command line options" поле ниже становится активным в нем вводим: -y(CODE) -Ointel-extended,(XDATA)=$PROJ_DIR$\HEX\eeprom.hex
после компиляции в папке HEX будет файл eeprom.hex который надо прошить в еепром
Сообщение отредактировал IceS - Jul 2 2007, 20:01
|
|
|
|
|
Jul 2 2007, 22:41
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 17-10-06
Из: Санкт Петербург
Пользователь №: 21 387

|
Цитата(_Артём_ @ Jul 3 2007, 00:11)  Спасибо, буду пробовать... Кстати, вопрос о EEPROM в IAR. При работе с ним, как с переменными, происходит ли запрет прерываний во время чтения/записи в EEPROM? Только что проверил (компиллятор 4.30А): при чтении из ЕEPROM прерывания не изменяются, на время записи в EEPROM - запрещаются.
Сообщение отредактировал IceS - Jul 2 2007, 22:42
|
|
|
|
|
Jul 6 2007, 13:03
|
Частый гость
 
Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371

|
Цитата(_Артём_ @ Jul 3 2007, 00:11)  Кстати, вопрос о EEPROM в IAR. При работе с ним, как с переменными, происходит ли запрет прерываний во время чтения/записи в EEPROM? Так для того чтоб работать с переменными, хранящимися в EEPROM, вам нужно их оттуда сначала прочитать в RAM, выполнить все необходимые операции, и в случае надобности записать обратно. А функции чтения/записи EEPROM самим надо писать, поэтому прерывания запрещать надо самому руками.
|
|
|
|
|
Jul 8 2007, 20:59
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(Юрий Санвальд @ Jul 6 2007, 16:03)  А функции чтения/записи EEPROM самим надо писать, поэтому прерывания запрещать надо самому руками. Совершенно нет необходимости это делать. IAR замечательно работает с переменными в EEPROM встроенными библиотечными функциями. При определении/обьявлении таких переменных используется квалификатор __eeprom. По сути основного вопроса - о правке xcl файла на предмет получения hex файлов для разных областей на этом форуме неоднократно писАлось, воспользуйтесь поиском.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|