Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Atmega8, программирование на "С"
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
kernel32ddl
В свое время приходилось много писать на "С" для DSP TMS. Для этого пользовался средой Code Composer Studio, которая являлась одновременно и компилятором и отладчиком для данного процесссора при подключении оного через JTAG.
А есть ли аналогичная среда для контроллера ATMega8 и JTAG ByteBlaster? Откуда можно скачать если есть?
MrYuran
Есть.

IAR - коммерческий.

WinAVR (AVR-GCC) - свободный.

Атмел бесплатно раздаёт AVR-Studio
kernel32ddl
Цитата(MrYuran @ Mar 21 2009, 18:39) *
Есть.

IAR - коммерческий.

WinAVR (AVR-GCC) - свободный.

Атмел бесплатно раздаёт AVR-Studio

Ну а какой лучше? Какой-нить из них позволят отлаживать программу в реальном времени?
MrYuran
Цитата(kernel32ddl @ Mar 21 2009, 18:43) *
Ну а какой лучше? Какой-нить из них позволят отлаживать программу в реальном времени?

Да вобщем все позволяют.

Лучше конечно ИАР.
Но и стоит соответственно.
Хотя, если совесть не мучит, можно ломаный поставить
kernel32ddl
Цитата(MrYuran @ Mar 21 2009, 18:45) *
Да вобщем все позволяют.

Лучше конечно ИАР.
Но и стоит соответственно.
Хотя, если совесть не мучит, можно ломаный поставить

А IAR через ByteBlaster будет работать?
Сергей Борщ
Цитата(kernel32ddl @ Mar 21 2009, 17:55) *
А IAR через ByteBlaster будет работать?
Нет. Для AVR существуют другие отладчики.
kernel32ddl
Цитата(Сергей Борщ @ Mar 21 2009, 20:07) *
Нет. Для AVR существуют другие отладчики.

Т.е. его вообще нельзя использовать для ATMegи?

Или я путаю простой программатор с отладчиком... Это не одно и тоже?
Сергей Борщ
Цитата(kernel32ddl @ Mar 21 2009, 19:33) *
Или я путаю простой программатор с отладчиком... Это не одно и тоже?
Немного путаете. Отладчик позволяет отлаживать, т.е. запускать программу и иметь возможность пошагового исполнения, чтения/записи регистров и т.д. Отладчик может выполнять функции программатора. В качестве программатора байт-бластер использовать можно, в качестве отладчика - нет. И программировать в этом случае придется не напрямую из ИАРа или студии, а запуская промежуточную программу (AVReal).
kernel32ddl
Цитата(Сергей Борщ @ Mar 21 2009, 20:55) *
Немного путаете. Отладчик позволяет отлаживать, т.е. запускать программу и иметь возможность пошагового исполнения, чтения/записи регистров и т.д. Отладчик может выполнять функции программатора. В качестве программатора байт-бластер использовать можно, в качестве отладчика - нет. И программировать в этом случае придется не напрямую из ИАРа или студии, а запуская промежуточную программу (AVReal).

Отлично, теперь все стало ясно. Т.е. в IAR как я понял можно скомпилировапть hex файл программы написанной на "С" для заливки в контроллер, который потом шьется AVRealом через BB?
Сергей Борщ
Цитата(kernel32ddl @ Mar 21 2009, 20:02) *
Отлично, теперь все стало ясно. Т.е. в IAR как я понял можно скомпилировапть hex файл программы написанной на "С" для заливки в контроллер, который потом шьется AVRealом через BB?
Да. Вызов AVReal можно встроить в меню Tools оболочки IARa. Но вы не зацикливайтесь на IARe - посмотрите и на на WinAVR.
Stanislav_S
Цитата(kernel32ddl @ Mar 21 2009, 23:02) *
Отлично, теперь все стало ясно. Т.е. в IAR как я понял можно скомпилировапть hex файл программы написанной на "С" для заливки в контроллер, который потом шьется AVRealом через BB?

Именно так, кроме того в IAR можно скомпилить файл, который можно передать в AVR Studio для отладки, кстати отладку можно производить и в IAR.
defunct
Цитата(kernel32ddl @ Mar 21 2009, 17:43) *
Ну а какой лучше? Какой-нить из них позволят отлаживать программу в реальном времени?

Cтоит сказать, что ATMega8 (сам проц) - не поддерживает отладку.

Если интересует именно отладка (пошаговое исполнение, точки останова, boundary scan и т.д. в схеме), то можно пойти двумя путями:
1. Взять pin-to-pin совместимый ATMega88 /168 у которого есть dW интерфейс и отлаживать его с помощью покупного AVR-Dragon'a.
2. Взять совместимый по периферии с Mega8, но несовместимый по ножкам ATMega16 у которого есть JTAG, и выполнять отладку с помощью эмулятора JTAGICE
(схема последнего достаточно простая и достуная для повторения - в инете куча примеров, делается он на Max232 + такой же Mega16, который надо будет единожды прошить BB с помощью AVReal).

Отадчик JTAGICE поддерживается и IAR'ом и AVR-Studio.
Насчет AVR-Dragon'a, не знаю как в новых версиях IAR'а, но раньше поддерживался только AVR-Studio.
kernel32ddl
Всем большое спасибо за ответы! Буду думать smile.gif
Kompot
Цитата(kernel32ddl @ Mar 21 2009, 18:23) *
В свое время приходилось много писать на "С" для DSP TMS.


Если вышенаписанное - правда, то особых проблем с отладкой программ для АВР у Вас быть не должно.

Но поскольку АВР - процессор намного менее мощный, чем TMS, то я бы не стал на Вашем месте особенно зацикливаться на внутрисхемной отладке - это глючно, медленно и большинство реалтаймовых задач просто не будут работать (например, 1-wire интерфейс для термометров Dallas - он требует очень точных временнЫх соотношений).

Абсолютное большинство задач отладки для АВР решается с помощью последовательного порта и любой терминальной программы на PC. Плюс - Вы не зависите от глюков отладчика. Минус - а вдруг послед. порт используется в самой программе. На этот случай есть альтернативное решение - делаем еще один последовательный порт на любой ножке, но уже софтовый. Скоростей больших не надо. Даже 2400 бод уже годится для отладки.
kernel32ddl
Цитата(Kompot @ Mar 23 2009, 18:20) *
Если вышенаписанное - правда...

АТВЕЧАЮ, ВАСЯ! (с) Жорик Вартанов

А если серьезно, то считаю возможность внутрисхемной отладки несомненным плюсом, скажу больше, для некоторых задач это просто жизненно необходимо. Другое дело что для тех задач которые я хочу осуществить с ATMegой - поиграться со светодиодами, кнопочками - особой нужды нет. Да и как я понял внутрисхемный отладчик будет стоит не дешево.
Proton
Цитата(kernel32ddl @ Mar 23 2009, 21:47) *
Другое дело что для тех задач которые я хочу осуществить с ATMegой - поиграться со светодиодами, кнопочками - особой нужды нет. Да и как я понял внутрисхемный отладчик будет стоит не дешево.
Для целей освоения микропроцессора на мой взгляд отладчик просто жезненно необходим, тем более что собирается из подручных компонентов за полчаса(AVRMiniICE), или покупается в магазине тысячи за две(AVRDragon). Если пробовал хотябы один раз, то отказаться уже невозможно, особенно для простых проектов, использование UART идёт лесом вместе с преобразователем уровней.
kernel32ddl
Цитата(Proton @ Mar 24 2009, 18:48) *
Если пробовал хотябы один раз, то отказаться уже невозможно
Это точно biggrin.gif
Поищу схему, но вот люди говорят что ATMega8 не поддерживает внутрисхемную отладку.
defunct
Цитата(kernel32ddl @ Mar 23 2009, 17:47) *
Да и как я понял внутрисхемный отладчик будет стоит не дешево.

Да нет, малость неправильно меня поняли. JTAGICE собирается на коленке. ATMega16 + MAX232. Смотрите схему "Evertool light" на этой страничке http://www.siwawi.arubi.uni-kl.de/avr_projects/evertool/

В случае чего прошивка к JTAGICE'у идет вместе с AVR-Studio "...\Atmel\AVR Tools\JTAGICE\upgrade.ebn", конвертер прошивки ebn2hex здесь на форуме в разделе AVR.

Цитата
ATMega8 не поддерживает внутрисхемную отладку

Ну на ней же мир не заканчивается. Mega16 такой же чип, все то же самое только ног больше и JTAG есть. Начните на нем.
Отлаженную программу перенести с Mega16 на Mega8 всяко проще, чем писать без возможности отладки.
zltigo
Цитата(Proton @ Mar 24 2009, 18:48) *
Если пробовал хотябы один раз, то отказаться уже невозможно...

Ага - 'думалка' отключается и действительно, а чего тут думать, что и как писать - надо трясти смотреть что отладчик покажет sad.gif и заплатки лепить. Короче, опасная штука отладчик для неокрепших писателей, когда инструмент тупо используется вместо всего и вся. Очень,очень частое наблюдаемое в реальности явление sad.gif.
Палыч
Цитата(zltigo @ Mar 27 2009, 09:06) *
Короче, опасная штука отладчик для неокрепших писателей
Не соглашусь... Имхо, отладчик позволяет быстро выявить те места в знаниях работы периферии МК, в которых у неопытного разработчика - пробелы. Ну, а затем - внимательное чтение соответствующих разделов DS.
zltigo
Цитата(Палыч @ Mar 27 2009, 09:29) *
Не соглашусь... Имхо, отладчик позволяет быстро выявить те места в знаниях работы периферии МК

Периферии?! Я даже знаю, какой вопрос сразу задаст начинающий воспользовавшись отдладчиком при работе с периферией - а чего это у меня все не работает - это когда отладчик по полному незнанию заставят читать то, что читать нельзя. Вот уж точно гаранированный глюкодром на голову начинающих.
defunct
Цитата(zltigo @ Mar 27 2009, 20:43) *
Я даже знаю, какой вопрос сразу задаст начинающий воспользовавшись отдладчиком при работе с периферией - а чего это у меня все не работает - это когда отладчик по полному незнанию заставят читать то, что читать нельзя.

На моей памяти в этом форуме было немного таких прецедентов. Помню, что кто-то упорно пытался найти какое-то значение то ли в SPDR, то ли в UDR, и ничего не получалось. Но это единичный случай.

В остальном вижу только позитив при использовании отладчика, порты посмотреть, выставить внешние сигналы для проверки схемы, проверить тикают ли таймеры, I2C стейт проверить, банально стек промониторить, и т.п..
zltigo
Цитата(defunct @ Mar 27 2009, 22:21) *
Но это единичный случай.

Да ну smile.gif как быть, напрмер, с дежурным воросами про "неработающие" контроллеры прерываний, да и любая более сложная нежели GPIO периферия имеющая сбрасываемые обращением флаги накрывается медным тазом.
Цитата
В остальном вижу только позитив при использовании отладчика, порты посмотреть, выставить внешние сигналы для проверки схемы, проверить тикают ли таймеры, I2C стейт проверить, банально стек промониторить, и т.п..

Все это позволяет и проcтейшая директива чтения/записи из консоли, хоть и без красотулечек.
P.S.
Не припомню, когда последний раз пользовался....
Зато осциллографом, анализаторами, протокол-тестерами - постоянно smile.gif.
defunct
Цитата(zltigo @ Mar 27 2009, 22:00) *
как быть, например, с дежурным воросами про "неработающие" контроллеры прерываний

А ну и это тоже, но это также редкие явления.

Цитата
Все это позволяет и проcтейшая директива чтения/записи из консоли, хоть и без красотулечек.

Это Вы с высоты ARM'а так говорите ;> в AVRку порой консоль просто не влазит, а если влазит - бывает некуда ее прикрутить, т.к. единственный UART и тот занят под 485-й.
Отладчик кстати дает "бесплатную" консоль через JTAG. Куцую, тормозную, sad.gif но хоть такую, иногда актуально.
Так что - позитив smile.gif
zltigo
Цитата(defunct @ Mar 28 2009, 03:58) *
...единственный UART и тот занят под 485-й.

Значит собственно весь функционал сего девайса через этот 485 и просматривается, а если еще и "светодиод" повесить ...
Цитата
Так что - позитив smile.gif

А я и не утверждаю, что негатив и отладчики под все используемые контроллеры имею в обязательном порядке - но реально не пользуюсь - осваиваю и держу только, как аварийный вариант.
Напомню, что я вступил в разговор с этой фразы:
Цитата
Если пробовал хотябы один раз, то отказаться уже невозможно...

Пробовал и не один раз и не один контроллер (не говоря уже о PC), но наркотичесой эйфории не испытал. Зато результаты творчесва людей не вылезающих из отладчиков наблюдать приходится слишком часто sad.gif. Особенно страшная ситуация среди PCшных "программистов", где отладка на халяву и не умея связать пары слов сразу начинают "отлаживаться", т.е. заставлять что-то "работать" обвешивая заплатками.
singlskv
Цитата(zltigo @ Mar 28 2009, 09:40) *
Значит собственно весь функционал сего девайса через этот 485 и просматривается, а если еще и "светодиод" повесить ...
Как это не удивительно, здесь я очень даже поддержу нашего уважаемого модератора,
уарты у меня то же всегда заняты, но всю отладочную инфу я просто кидаю через 485(модбас).
Цитата
А я и не утверждаю, что негатив и отладчики под все используемые контроллеры имею в обязательном порядке - но реально не пользуюсь - осваиваю и держу только, как аварийный вариант.
Напомню, что я вступил в разговор с этой фразы:
И даже здесь поддержу... у меня например лежит JTAG MK2 тока я его последний раз подключал для AVR32

Каждый раз когда у меня возникает идея подключить его к AVR8 я нахожу кучу причин почему это не нужно делать smile.gif

Да и для АРМ мне в смысле отладки вполне хватает 1 брейкпоинта и просмотра переменных,
тч вполне хватает просто виглера...
SasaVitebsk
А по-моему надо просто им пользоваться. Вы же сами пишете - не хочу!

Я пользовался и сниферами и мониторами. Тут один проект на S7-300 делал, так там вообще практически без отладки. Не вижу здесь никаких высот и преимуществ.

По-моему JTAG сделан людьми и для людей. Мне, к примеру, - дико удобно. Никто не говорит, что надо заморачиваться на этом. Если побайтно отлаживать протокол - не ваш уровень, так и не надо туда лезть. Принял пакет - просмотри буфер - убедись что всё Ok и дальше поехали.
Порой достаточно одного взгляда на картину, чтобы хомут был выловлен.

Особый случай mega8.

Я сразу в одно из изделий запаиваю m88 и отлаживаю. Отладки на м8 просто не требуется. У меня ни разу не возникала. Просто включаешь - работает. Особенно приятно, что в таком корпусе сохранены почти все ноги для именно работы.

Отладка работает устойчиво до ужаса. Никаких проблем не возникает. Кроме клинических случаев, когда отлаживается сам принцип (проводятся исследования), то наладка проекта в среднем занимает 1-2 дня.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.