Заранее извиняюсь, я не занимаюсь программированием. Вопрос такого порядка. Есть исходники под IAR. ass.asm, main.c, setting.h. Нужно подправить пару цифирей во временных интервалах и создать hex файл для прошивки. Контроллер ATTiny13. Подскажите, пожалуйста, если можно подробно, как это сделать.
Как сделать hex файл
- Сообщения: 228
- Зарегистрирован: Сб фев 12, 2011 01:29:29
Доброе время суток.
Заранее извиняюсь, я не занимаюсь программированием. Вопрос такого порядка. Есть исходники под IAR. ass.asm, main.c, setting.h. Нужно подправить пару цифирей во временных интервалах и создать hex файл для прошивки. Контроллер ATTiny13. Подскажите, пожалуйста, если можно подробно, как это сделать.
Заранее извиняюсь, я не занимаюсь программированием. Вопрос такого порядка. Есть исходники под IAR. ass.asm, main.c, setting.h. Нужно подправить пару цифирей во временных интервалах и создать hex файл для прошивки. Контроллер ATTiny13. Подскажите, пожалуйста, если можно подробно, как это сделать.
- Реклама
Запускаем IAR, идем во вкалдку прожект/крейт нев прожект
выбираяем язык С и аврстудио4 компатайбл оутпут
жмем ок и указываем в какую папку сохранитьпроект
теперь слева вверху жмен на название проекта и правой кнопкой добавляем исходники к проекту (адд файлз)
Лезем во вкладку проект/опции
генералс опшнз/таргет выбираем тип микроконтроллера идем далее по вкладках и на вкладке систем, где настройки стека, включаем енайбл бит дефинишн
идем ниже, в линкер и меняем $PROJ_FNAME$.d90 на $PROJ_FNAME$.hex
вроде как все, компилируем и получаем хекс по адресу: имя проекта\Debug\Exe имяпроекта.hex
З.Ы в настройках проекта еще можно выбрать оптимизацию при компилировании. Это иногда помогает уменьшитьразмер кода. находится в прожект/опшнз/с/с++компиллер
Прошу прощения за транслит, так мне быстрее, а Вам и так понятно
выбираяем язык С и аврстудио4 компатайбл оутпут
жмем ок и указываем в какую папку сохранитьпроект
теперь слева вверху жмен на название проекта и правой кнопкой добавляем исходники к проекту (адд файлз)
Лезем во вкладку проект/опции
генералс опшнз/таргет выбираем тип микроконтроллера идем далее по вкладках и на вкладке систем, где настройки стека, включаем енайбл бит дефинишн
идем ниже, в линкер и меняем $PROJ_FNAME$.d90 на $PROJ_FNAME$.hex
вроде как все, компилируем и получаем хекс по адресу: имя проекта\Debug\Exe имяпроекта.hex
З.Ы в настройках проекта еще можно выбрать оптимизацию при компилировании. Это иногда помогает уменьшитьразмер кода. находится в прожект/опшнз/с/с++компиллер
Прошу прощения за транслит, так мне быстрее, а Вам и так понятно
- Сообщения: 228
- Зарегистрирован: Сб фев 12, 2011 01:29:29
Пожалуйста! Удачи!!!Beloff12 писал(а):Огромное спасибо masterpc за ответ и разъяснение. Буду пробовать.
- Сообщения: 130
- Зарегистрирован: Ср дек 29, 2010 17:30:34
Если это моя рыба13, то еще добавляем
c/c++ compiler/code/Number of registers ... выбираем R4..R15
Кроме того, Output format меняем на Intel-standard
add файлов в проект не нужно.
Просто создаете пустой проект. Среда создаст main.c файл.
Вместо него ложите мой main.c и в ту же директорию остальные файлы проекта.
Вот теперь, похоже, все.
c/c++ compiler/code/Number of registers ... выбираем R4..R15
Кроме того, Output format меняем на Intel-standard
add файлов в проект не нужно.
Просто создаете пустой проект. Среда создаст main.c файл.
Вместо него ложите мой main.c и в ту же директорию остальные файлы проекта.
Вот теперь, похоже, все.
- Реклама
- Сообщения: 228
- Зарегистрирован: Сб фев 12, 2011 01:29:29
Доброе время суток Алексей!
Вы правы это Ваша ryba. Во-первых хочу поблагодарить Вас за проделанную работу!!!
Собрал сигнализатор по Вашему первому проекту. За основу взял купленный за 45 грн. сигнализатор, выбросил все внутренности, вырезал по контуру плату и развел печатку, Ваша не помещалась из-за батарейного отсека, элементы разместил на свободных местах. Работает прекрасно, но хотелось бы изменить временные интервалы срабатывания под себя. Я в программировании и прочих таких нюансах космический челнок "Буран". Если Вас не затруднит, объясните, пожалуйста, что значит registers ... выбираем R4..R15.
Спасибо!
Вы правы это Ваша ryba. Во-первых хочу поблагодарить Вас за проделанную работу!!!
Собрал сигнализатор по Вашему первому проекту. За основу взял купленный за 45 грн. сигнализатор, выбросил все внутренности, вырезал по контуру плату и развел печатку, Ваша не помещалась из-за батарейного отсека, элементы разместил на свободных местах. Работает прекрасно, но хотелось бы изменить временные интервалы срабатывания под себя. Я в программировании и прочих таких нюансах космический челнок "Буран". Если Вас не затруднит, объясните, пожалуйста, что значит registers ... выбираем R4..R15.
Спасибо!
- Сообщения: 130
- Зарегистрирован: Ср дек 29, 2010 17:30:34
В свойствах проекта для c/c++ compiler
на вкладке code в выпадающем списке Number of registers ... выбираем R4..R15
Я в качестве "хранилища" для переменных люблю использовать не ОЗУ а регистры.
Так и размер хекса получается поменьше и работает быстрее.
Для этого нужно компилятору сказать, что эти регистры будут зарезервированы для моих переменных, чтобы он их по своему усмотрению не использовал.
Если этого не сделать, компилятор будет ругаться.
на вкладке code в выпадающем списке Number of registers ... выбираем R4..R15
Я в качестве "хранилища" для переменных люблю использовать не ОЗУ а регистры.
Так и размер хекса получается поменьше и работает быстрее.
Для этого нужно компилятору сказать, что эти регистры будут зарезервированы для моих переменных, чтобы он их по своему усмотрению не использовал.
Если этого не сделать, компилятор будет ругаться.
- Сообщения: 228
- Зарегистрирован: Сб фев 12, 2011 01:29:29
Спасибо за ответ, Алексей.
Просто я имел ввиду то, что выбирать регистры можно произвольно, или необходимо указать какой-то определенный регистр?
Просто я имел ввиду то, что выбирать регистры можно произвольно, или необходимо указать какой-то определенный регистр?
- Сообщения: 228
- Зарегистрирован: Сб фев 12, 2011 01:29:29
Сделал все как советовали. После компиляции выскакивает сообщение:
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 файла нет.
Что я делаю неправильно?
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 писал(а):Откройте его и в конце ткните клавишу ЕНТЕР
Чтобы была в конце пустая строка.
- Сообщения: 130
- Зарегистрирован: Ср дек 29, 2010 17:30:34
Это капризы самого ИАР_а
Ну хотят его авторы, чтобы был в конце признак конца файла.
Если файлик редактировался не самой средой, такое может быть.
И не только в конце...
Ну хотят его авторы, чтобы был в конце признак конца файла.
Если файлик редактировался не самой средой, такое может быть.
И не только в конце...
- Сообщения: 228
- Зарегистрирован: Сб фев 12, 2011 01:29:29
Сделал, но это как в программе которая требует доустановить библиотеку. Подставляешь, требует другую, после другой третью и т. д. Теперь выпало сообщение:
main.c
Warning[Pe001]: last line of file ends without a newline C:\ryba\main.c 190
Done. 0 error(s), 1 warning(s)
Что ей еще не хватает. Вы уж извините меня за назойливость, но хочется чтобы получилось, а......
main.c
Warning[Pe001]: last line of file ends without a newline C:\ryba\main.c 190
Done. 0 error(s), 1 warning(s)
Что ей еще не хватает. Вы уж извините меня за назойливость, но хочется чтобы получилось, а......
Если варнинги только о том, что нужно пустую строку после кода, то на них можно забить. Если больше никаких ошибок, то hex должен уже лежать по адресу: имя проекта\Debug\Exe имяпроекта.hex
- Сообщения: 228
- Зарегистрирован: Сб фев 12, 2011 01:29:29
Больше ничего нет кроме тех строк которые я показал. Тем более, что 0 ошибок. Но hex-а нет. Может в опциях еще что-то нужно указать. Я полностью следовал ваши с Алексеем инструкциям.
- Сообщения: 228
- Зарегистрирован: Сб фев 12, 2011 01:29:29
Я сбрасывал Вам письмо в личку с архивом. Наверное Вы его просто не получили по каким то причинам. Выкладываю проект.
- Вложения
-
- SOURCE.rar
- (4.54 КБ) 274 скачивания
Я имел ввиду полный ИАРовский проект. Ну ниче, я уже сделал сам. Все компилируется без ошибок, hex тоже создается. Проект а архиве.
- Вложения
-
- fish.rar
- (19.02 КБ) 347 скачиваний
- Сообщения: 130
- Зарегистрирован: Ср дек 29, 2010 17:30:34
У Вас немножко не тот проект. Это старая версия.masterpc писал(а):Я имел ввиду полный ИАРовский проект. Ну ниче, я уже сделал сам. Все компилируется без ошибок, hex тоже создается. Проект а архиве.
Вот именно тот, который делает ТС. Открывать - File/Open/Workspace - C:\ryba\ryba.eww
Забыл напомнить, что при установках стека по умолчанию, не хватает 1 байта озу для переменных.
Для этого нужно еще поменять General options/System Data Stack (CSTACK) SiZE (bytes) 0x1F


