|
|
  |
IAR генерит .hex файл с ошибкой, AVR Studio невоспринимает .hex сгенерированный IAR |
|
|
|
Jul 6 2006, 11:56
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Ситуация следующая: Написал пробную программу на С, в IAR 4.20A, для тестирования USART для Atmega8. Программа выдает строку в USART. Подключил файл .hex (формат Intel - extended) из папки Release проекта IAR в Proteus 6.9.04 для тестирования в виртуальном терминале. Реакции на то что программа работает - ноль. Состояние регистров USART :UCSRA 0x000B 0b00100000 UCSRC 0x0020 0b00000000 UCSRB 0x000A 0b00000000, что говорит о том что даже непрошла инициализация USART. И конечно же никаких прериваний от него и ожидать нестоит. Другая картина наблюдается когда я подключаю ubrof 8(forsed) файл того же проекта из папки Debug. Все работает как и положенно. в реальном железе тот же файл .hex работает но только наполовину: выдается только первая буква из строки. В конце концов решил подключить файл .hex для его дизасcемблирования и пошаговой отладки в AVR Studio 4.12. В итоге получаю такое сообщение: Coordinator: An error occured while reading the object file. The file may be of wrong type or corrupted, or the object file reader is not up to date. Error loading object file J:\TestRS232\Release\Exe\TestRS232.hex Мои попытки подсунуть AVR Studio вместо .hex (Intel - extended) .hex (Intel - standart) - увенчались тем же сообщением об ошибке. Хотя я в этом случае все понятно, так как в описании поддержки форматов в AVR Studio значится Intel - extended. Так почему же AVR Studio непонимает сгенерированного файла .hex IAR, симулятор Proteus 6.9.04 - его не запускает в работу, реальное железо выполняет его неправильно ? Все сводится к логическому заключению : IAR 4.20A генерит .hex файл с ошибкой. Попытки компиляции в IAR 4.12A - привели к тому же результату. Перечитал документацию на компилятор IAR - там скудная информация по поддерживаемым форматам.. В итоге незнаю что делать. Сталкивался ли кто-то с подобным явлением ? Есть ли у кого -то идеи как мне решить подобную проблему. Заранее буду благодарен за Ваши советы. Файл исходник прикрепляю к письму.
|
|
|
|
|
Jul 6 2006, 13:09
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Цитата(IgorKossak @ Jul 6 2006, 15:53)  Для пошаговой отладки по ассемблерному тексту вовсе не обязателно грузить в AVRStudio hex файл. Достаточно загрузить отладочный файл в формате ubrof8 и открыть окно View/Disassembler. Уважаемый IgorKossak, неужели Вы думаете что я просто из академического интереса пишу программу ?  И как мне потом зашыть этот ubrof8 в Atmega8 ? Как я уже писал выше : "Другая картина наблюдается когда я подключаю ubrof 8(forsed) файл того же проекта из папки Debug. Все работает как и положенно. в реальном железе тот же файл .hex работает но только наполовину: выдается только первая буква из строки." ubrof 8(forsed) - я подключал в Proteus 6.9.04. Там все работает как и задумывалось по алгоритму программы: на виртуальный терминал выдается строка полностью. Если Вам нетрудно, пожалуйста посмотрите код. Может там что-то нетак. Заранее Вам благодарен.
|
|
|
|
|
Jul 6 2006, 15:27
|

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

|
Посмотрел проект, сразу бросилось следующее: 1. Options/General Options/Target/Memory model - поставьте Small (8 кБайт кода) вместо Tiny (256 байт кода) 2. .../Linker/Extra options - уберите опцию -y(CODE) 3. там же опция -Ointel-extended,(DATA)=$EXE_DIR$\$PROJ_FNAME$_data.hex бессмысленна, тоже уберите или вместо неё вставьте -Ointel-extended,(CODE)=$EXE_DIR$\$PROJ_FNAME$_code.hex 4. увеличьте размер стека данных для начала вдвое, если заработает и будет нехватка памяти, тогда будете постепенно уменьшать
С самой прогой пока не сильно разбирался, но для начала попробуйте упростить, лишьбы заработала.
|
|
|
|
|
Jul 6 2006, 15:51
|

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

|
Что касается AVRStudio и hex файлов, то удалось выяснить следующее. В файле, сгенерированом IARом, вторая снизу строка содержит команду 03 Код :0400000300000000F9 удалите эту строку и всё пойдёт. AVRStudio ещё не научилась распознавать эту команду
|
|
|
|
|
Jul 7 2006, 13:17
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Цитата(IgorKossak @ Jul 7 2006, 15:23)  Думаю врядли стоит винить IAR в том, что они решили следовать стандарту (Команда 03 означает точку старта программы, в данном случае 0x0000). Когда я как и Вы впервые столкнулся с подобным сообщением, стал разбираться с форматом intel-hex. Кстати, нашёл ещё одну вещь - не всякая программа, принимающая hex файл правильно понимает пустые строки. Как говорится, век живи, век учись. Хм...интересная получается ситуация. Если программа для программатора не следует стандарту, то получается, что и данные для контроллера шьются неверно. И в итоге имеем такую ситуацию, которая наблюдалась и у меня. Да совершенно с Вами согласен: "век живи - век учись !" Какие Вы можете дать рекомендации дабы избежать подобного. Неужто все время следует удалять эту строку ?
|
|
|
|
|
Aug 20 2007, 20:43
|

Местный
  
Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530

|
Цитата(Александр Куличок @ Aug 17 2007, 11:53)  При программированиии выставить опцию "Use Current Simulator/Emulator FLASH Memmory" Александр, а где эта опция выставляется? У меня ИАР вер. 3.10А и 4.30А для АВР и нигде не видел её! как и настройки линкера -- Format Variant: 32bit linear without entry point. -- но это уже не к Вам С уважением
--------------------
нельзя недооценивать предсказуемость глупости
|
|
|
|
|
Aug 24 2007, 14:08
|

Участник

Группа: Участник
Сообщений: 27
Регистрация: 7-02-06
Из: Москва
Пользователь №: 14 070

|
Цитата(sKWO @ Aug 21 2007, 00:43)  Александр, а где эта опция выставляется? У меня ИАР вер. 3.10А и 4.30А для АВР и нигде не видел её! как и настройки линкера -- Format Variant: 32bit linear without entry point. -- но это уже не к Вам С уважением Смотрите вложение.
Сообщение отредактировал Schtirlitz - Aug 24 2007, 14:13
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|