Как сделать hex файл

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Прорезались зубы
Сообщения: 228
Зарегистрирован: Сб фев 12, 2011 01:29:29

Сообщение Beloff12 »

Доброе время суток.

Заранее извиняюсь, я не занимаюсь программированием. Вопрос такого порядка. Есть исходники под IAR. ass.asm, main.c, setting.h. Нужно подправить пару цифирей во временных интервалах и создать hex файл для прошивки. Контроллер ATTiny13. Подскажите, пожалуйста, если можно подробно, как это сделать.
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Сообщение masterpc »

Запускаем IAR, идем во вкалдку прожект/крейт нев прожект
выбираяем язык С и аврстудио4 компатайбл оутпут
жмем ок и указываем в какую папку сохранитьпроект
теперь слева вверху жмен на название проекта и правой кнопкой добавляем исходники к проекту (адд файлз)
Лезем во вкладку проект/опции
генералс опшнз/таргет выбираем тип микроконтроллера идем далее по вкладках и на вкладке систем, где настройки стека, включаем енайбл бит дефинишн
идем ниже, в линкер и меняем $PROJ_FNAME$.d90 на $PROJ_FNAME$.hex
вроде как все, компилируем и получаем хекс по адресу: имя проекта\Debug\Exe имяпроекта.hex


З.Ы в настройках проекта еще можно выбрать оптимизацию при компилировании. Это иногда помогает уменьшитьразмер кода. находится в прожект/опшнз/с/с++компиллер

Прошу прощения за транслит, так мне быстрее, а Вам и так понятно :)
Реклама
Прорезались зубы
Сообщения: 228
Зарегистрирован: Сб фев 12, 2011 01:29:29

Сообщение Beloff12 »

Огромное спасибо masterpc за ответ и разъяснение. Буду пробовать.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Сообщение masterpc »

Beloff12 писал(а):Огромное спасибо masterpc за ответ и разъяснение. Буду пробовать.
Пожалуйста! Удачи!!!
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Ср дек 29, 2010 17:30:34

Сообщение aleksey_gregul »

Если это моя рыба13, то еще добавляем
c/c++ compiler/code/Number of registers ... выбираем R4..R15

Кроме того, Output format меняем на Intel-standard

add файлов в проект не нужно.
Просто создаете пустой проект. Среда создаст main.c файл.
Вместо него ложите мой main.c и в ту же директорию остальные файлы проекта.

Вот теперь, похоже, все.
Реклама
Прорезались зубы
Сообщения: 228
Зарегистрирован: Сб фев 12, 2011 01:29:29

Сообщение Beloff12 »

Доброе время суток Алексей!

Вы правы это Ваша ryba. Во-первых хочу поблагодарить Вас за проделанную работу!!!
Собрал сигнализатор по Вашему первому проекту. За основу взял купленный за 45 грн. сигнализатор, выбросил все внутренности, вырезал по контуру плату и развел печатку, Ваша не помещалась из-за батарейного отсека, элементы разместил на свободных местах. Работает прекрасно, но хотелось бы изменить временные интервалы срабатывания под себя. Я в программировании и прочих таких нюансах космический челнок "Буран". Если Вас не затруднит, объясните, пожалуйста, что значит registers ... выбираем R4..R15.

Спасибо!
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Ср дек 29, 2010 17:30:34

Сообщение aleksey_gregul »

В свойствах проекта для c/c++ compiler
на вкладке code в выпадающем списке Number of registers ... выбираем R4..R15
Я в качестве "хранилища" для переменных люблю использовать не ОЗУ а регистры.
Так и размер хекса получается поменьше и работает быстрее.
Для этого нужно компилятору сказать, что эти регистры будут зарезервированы для моих переменных, чтобы он их по своему усмотрению не использовал.
Если этого не сделать, компилятор будет ругаться.
Прорезались зубы
Сообщения: 228
Зарегистрирован: Сб фев 12, 2011 01:29:29

Сообщение Beloff12 »

Спасибо за ответ, Алексей.

Просто я имел ввиду то, что выбирать регистры можно произвольно, или необходимо указать какой-то определенный регистр?
Прорезались зубы
Сообщения: 228
Зарегистрирован: Сб фев 12, 2011 01:29:29

Сообщение Beloff12 »

Сделал все как советовали. После компиляции выскакивает сообщение:

main.c

Warning[Pe001]: last line of file ends without a newline C:\ryba\main.c 189

Done. 0 error(s), 1 warning(s)

hex файла нет.

Что я делаю неправильно?
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Ср дек 29, 2010 17:30:34

Сообщение aleksey_gregul »

Откройте его и в конце ткните клавишу ЕНТЕР
Чтобы была в конце пустая строка.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Сообщение masterpc »

aleksey_gregul писал(а):Откройте его и в конце ткните клавишу ЕНТЕР
Чтобы была в конце пустая строка.
Кстати, я так всегда сам делаю, но какой смысл в этой пустой строке?
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Ср дек 29, 2010 17:30:34

Сообщение aleksey_gregul »

Это капризы самого ИАР_а :))
Ну хотят его авторы, чтобы был в конце признак конца файла.
Если файлик редактировался не самой средой, такое может быть.
И не только в конце... :))
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Сообщение masterpc »

Понятно :))
Прорезались зубы
Сообщения: 228
Зарегистрирован: Сб фев 12, 2011 01:29:29

Сообщение Beloff12 »

Сделал, но это как в программе которая требует доустановить библиотеку. Подставляешь, требует другую, после другой третью и т. д. Теперь выпало сообщение:

main.c

Warning[Pe001]: last line of file ends without a newline C:\ryba\main.c 190

Done. 0 error(s), 1 warning(s)

Что ей еще не хватает. Вы уж извините меня за назойливость, но хочется чтобы получилось, а......
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Сообщение masterpc »

Если варнинги только о том, что нужно пустую строку после кода, то на них можно забить. Если больше никаких ошибок, то hex должен уже лежать по адресу: имя проекта\Debug\Exe имяпроекта.hex
Прорезались зубы
Сообщения: 228
Зарегистрирован: Сб фев 12, 2011 01:29:29

Сообщение Beloff12 »

Больше ничего нет кроме тех строк которые я показал. Тем более, что 0 ошибок. Но hex-а нет. Может в опциях еще что-то нужно указать. Я полностью следовал ваши с Алексеем инструкциям.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Сообщение masterpc »

а можете выложить архивом свой проект для ИАРа?
Прорезались зубы
Сообщения: 228
Зарегистрирован: Сб фев 12, 2011 01:29:29

Сообщение Beloff12 »

Я сбрасывал Вам письмо в личку с архивом. Наверное Вы его просто не получили по каким то причинам. Выкладываю проект.
Вложения
SOURCE.rar
(4.54 КБ) 274 скачивания
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Сообщение masterpc »

Я имел ввиду полный ИАРовский проект. Ну ниче, я уже сделал сам. Все компилируется без ошибок, hex тоже создается. Проект а архиве.
Вложения
fish.rar
(19.02 КБ) 347 скачиваний
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Ср дек 29, 2010 17:30:34

Сообщение aleksey_gregul »

masterpc писал(а):Я имел ввиду полный ИАРовский проект. Ну ниче, я уже сделал сам. Все компилируется без ошибок, hex тоже создается. Проект а архиве.
У Вас немножко не тот проект. Это старая версия.
Вот именно тот, который делает ТС.
RYBA.rar
Полный проект С:\RYBA
(23.64 КБ) 246 скачиваний
Открывать - File/Open/Workspace - C:\ryba\ryba.eww
Забыл напомнить, что при установках стека по умолчанию, не хватает 1 байта озу для переменных.
Для этого нужно еще поменять General options/System Data Stack (CSTACK) SiZE (bytes) 0x1F
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»