ivainc1789 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба Появилась возможность приобрести AVR Dragon и STK500, но есть некоторые сомнения. Конечно, хорошо иметь параллельный программатор, но давайте пока про это забудем и рассмотрим только работу AVR Dragon и только в качестве отладчика по JTAG и dWIRE. Есть следующие возможности: 1. Использовать для отладки внутр EEPROM. Достаточно иметь тестовый пин и буфер в EEPROM например на 50 ячеек. Я пользуюсь этим методом и вообщем-то он кажется удобным. Отлаживается всегда реально прошитая программа, результаты с большей надежностью достоверны, т. к. для отладки используются ресурсы самого MCU. 2. Использовать для отладки AVR Dragon. Опыта естественно пока нет как и самого Дракона. Все проекты я делаю в IAR EWAVR. На выходе получаем файл "пожатой/оптимизированной" прошивки. Однако Студия не может работать с таким файлом и, возможно, остается только использовать debug firmware. Налицо проигрыш при отладке, т. к. получается что отлаживаем одно, а окончательно прошиваем другое. Поправьте, если я не прав. С другой стороны, как отлаживать с Драконом? Расставляем точки останова и смотрим содержимое переменных? Насколько я представляю, любое изменение точек приводит к необх перепрошивки кристалла... Но наблюдать ресурсы таким образом можно и способом 1. Как-то с трудом представляю себе преимущества отладчика. Если есть опыт и желание поделиться, милости прошу. И еще попутно вопрос по Студии. Есть ли возможность при старте заставить ее СРАЗУ располагать панели инструментов в одну строку? Сейчас у меня это происходит только при загрузке конкретного DBG файла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба Все проекты я делаю в IAR EWAVR. На выходе получаем файл "пожатой/оптимизированной" прошивки. Однако Студия не может работать с таким файлом Или я не до конца понимаю, о чем Вы говорите или Вы не знаете, о чем говорите :) . Я, иногда, отлаживаю "пожатый/оптимизированный" код в AVRStudio. Для этого достаточно в ИАР в меню Project->Options... зайти на вкладку C/C++ Compiler->Output и поставить галку в Generate debug information... И все прекрасно отлаживается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vesago 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба Расстановка точек и перепрошивка кристалла - разные вещи. Вообще в начале сеанса отладки можно грузить образ в кристалл, а можно поставить галку и код не будет грузиться - будет цепляться к старому. Если есть различия, выдаст предупреждения. В общем - смело берите дракона и приобщайтесь к благом который он дает, в том числе и параллельное программирование. Из яра транслируйте в студию через уброф8 и к ней цепляйте дракона. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба Налицо проигрыш при отладке, т. к. получается что отлаживаем одно, а окончательно прошиваем другое. И отладочный вариант, и соптимизированный должны работать одинаково. Поправьте, если я не прав. Да и драгону все равно какой код заливать. С другой стороны, как отлаживать с Драконом? При запуске отладки, программа остановится на входе в main(). Можете ставить точки останова, можете не ставить. Остановить ход выполнения программы и посмотреть состояние переменных/памяти/ регистров, а также добавить/удалить точки останова можно в любой момент не прерывая сеанса отладки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivainc1789 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба Или я не до конца понимаю, о чем Вы говорите или Вы не знаете, о чем говорите :) . Я, иногда, отлаживаю "пожатый/оптимизированный" код в AVRStudio. Для этого достаточно в ИАР в меню Project->Options... зайти на вкладку C/C++ Compiler->Output и поставить галку в Generate debug information... И все прекрасно отлаживается. Студия не поддерживает уровень оптимизации выше LOW. Об этом четко написано в документации. И отладочный вариант, и соптимизированный должны работать одинаково. При условии что в оптимизаторе нет ошибок... А кто за это поручится... ) Остановить ход выполнения программы и посмотреть состояние переменных/памяти/ регистров можно в любой момент не прерывая сеанса отладки. Я так понял, грузим debug вариант прошивки через UBROF8 в Студию. Запускаем на выполнение. По-моему, единственная возможность остановить программу (чтобы взглянуть на переменные и регистры) - предварительно поставить точку останова, так? Иначе, что значит "...в любой момент..."? Расстановка точек и перепрошивка кристалла - разные вещи. Вообще в начале сеанса отладки можно грузить образ в кристалл, а можно поставить галку и код не будет грузиться - будет цепляться к старому. Так сколько нужно ждать после установки/переустановки одной точки? Полная перешивка Меги16 на программаторе AvrUSB500 занимает 6 сек. И еще. Что там за душещипательная история с ошибкой в схеме Дракона? У всех выходит из строя импульсный стабилизатор или большинство работает как есть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба Иначе, что значит "...в любой момент..."? Ровно то и значит, в любой момент нажимаем кнопку Break (CTRL-F5) и проц останавливается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба Студия не поддерживает уровень оптимизации выше LOW. Об этом четко написано в документации. Можете указать точно? Я в данный момент отлаживаю проект в IAR 4.10b, Release, Project->Options->C/C++ Compiler->Optimizations = Hight(Maximum optimizations), Speed При этом AVRStudio прекрасно видит все переменные и показывает мне С-шный текст и скачет по операторам правильно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба Студия не поддерживает уровень оптимизации выше LOW. Об этом четко написано в документации.Не парьтесь насчет этого. Единственная проблемма в AVRStudio это неправильный показ локальных переменных при высокой степени оптимизации... Но в регистрах всегда все правильно. При условии что в оптимизаторе нет ошибок... А кто за это поручится... )Нету в оптимизаторах ошибок...., обычно нету Неоптимальности встречаются... достаточно часто, но обычно не критичные... Я так понял, грузим debug вариант прошивки через UBROF8 в Студию.Да причем она будет автоматически обновлятся в студии после каждой перекомпиляции и код будет именно таким как в итоговом изделии... И еще. Что там за душещипательная история с ошибкой в схеме Дракона? У всех выходит из строя импульсный стабилизатор или большинство работает как есть?Счас подумаю и отпишусь в соответствуещей ветке (если надумаю конечно....) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivainc1789 0 4 ноября, 2007 Опубликовано 4 ноября, 2007 · Жалоба При этом AVRStudio прекрасно видит все переменные и показывает мне С-шный текст и скачет по операторам правильно :) Не парьтесь насчет этого. Единственная проблемма в AVRStudio это неправильный показ локальных переменных Ну, удивили... Может и мне попробовать? Просто несколько лет назад я поимел ситуацию, когда при высокой оптимизации Студия работала некорректно. Подробностей щас не упомню... Ровно то и значит, в любой момент нажимаем кнопку Break (CTRL-F5) и проц останавливается. А какой в этом смысл? Останавливать то надо в определенные моменты. Видимо для того и нужны эти пресловутые точки останова. Хотя может быть смысл все же есть например при пошаговой отладке, когда инструкции выполняются раз примерно в секунду... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 5 ноября, 2007 Опубликовано 5 ноября, 2007 · Жалоба А какой в этом смысл? Останавливать то надо в определенные моменты. Видимо для того и нужны эти пресловутые точки останова. Хотя может быть смысл все же есть например при пошаговой отладке, когда инструкции выполняются раз примерно в секунду... 1. Остановили 2. задали точки останова 3. запустили программу дальше. еще раз вернусь к началу: Расставляем точки останова и смотрим содержимое переменных? Насколько я представляю, любое изменение точек приводит к необх перепрошивки кристалла... Нет это не так. Точки останова можно снимать/устанавливать в момент когда проц остановлен не выходя из текущего сеанса отладки. Отстановить проц можно в любой момент нажав break. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 5 ноября, 2007 Опубликовано 5 ноября, 2007 · Жалоба Ну, удивили... Может и мне попробовать? Просто несколько лет назад я поимел ситуацию, когда при высокой оптимизации Студия работала некорректно. Подробностей щас не упомню... У меня иногда локальные переменные криво видятся. Больше вроде проблем не было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vesago 0 5 ноября, 2007 Опубликовано 5 ноября, 2007 · Жалоба Собрали бы жтагайс, да на какой м16 испытали - вопросы сами сабой бы отпали. В общем работаете как в симуляторе студии например. Разница только в том, что вам надобно предварительно записать прошивку в кристалл (хотите жтагом, хотите программатором) и в том, что программа исполняется в кристалле. IDE посредством донгла получает из кристалла состояние ячеек памяти, периферии, программного счетчика и т.д. + полностью контролирует его (кристалла) работу. Захотелось вам посмотреть, допустим, как приходит байт в уарт, останавливаете программу, ставите бряк на входе в обработчик, пускаете программу. Как байи пришел, программа останавливается на нужной точке. Можно посмотреть что в соответсвующей пременной, можно подергать ногой, подправляя значение в регистре. В общем через жтаг вы становитесь Всевышним для кристалла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivainc1789 0 5 ноября, 2007 Опубликовано 5 ноября, 2007 · Жалоба Собрали бы жтагайс У меня большее хождение имеют "мелкие" чипы, поэтому более актуально dWIRE. Наверно это более медленный протокол по сравнению с JTAG? Сильно ли это заметно при отладке? можно подергать ногой, подправляя значение в регистре Я еще пока не догоняю... Чтобы подергать ногой нужно код переписать, как минимум... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 5 ноября, 2007 Опубликовано 5 ноября, 2007 · Жалоба Я еще пока не догоняю... Чтобы подергать ногой нужно код переписать, как минимум...Не, не надо, нужно просто ткнуться в AVRStudio в нужный битик в нужном порту. При работе JTAG все что видите на экране то и в реальных регистрах проца. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zhevak 0 12 ноября, 2007 Опубликовано 12 ноября, 2007 · Жалоба Я обычно по старинке отлаживаю -- вывожу в ЮАРТ все, что меня интересует, и смотрю это на компе. Отладочную инфу кладу в небольшой буфер, несколько десятков байт, откуда ее ЮАРТ вынимает и передает в комп. Поскольку ЮАРТ работает по прерываниям, то процесс передачи инфы практически не требует времени, т.е почти никак не сказывается на работе софта. Понятно, что для того, что бы получить вывод отладочной инфы нужно написать соответствующий кусок проги. Дак ведь и это тоже не проблема! Этот кусок уже написан. Написан один раз и реально кочует с одного контроллера на другой с минимальными переделками. В процессе отладки, в нужной точке программы, я просто вызываю функцию debug() с аргуметом того, что хотелось бы увидеть. Понятно что каждый раз приходится переносить debug() в новое место. Но ведь время прошивки во флэшь новой версии занимает секунды. Ресурс флеши, конечно, вырабатывается... но, господа! Поделите стоимость микроконтроллера на гарантированное количество циклов стирания/записи, и вы поймете, что разговор-то ни о чем! Это была преамбула. А амбула -- вот она. Ну есть у меня этот Драгон, ну и что с того? Лежит он сейчас на столе, и лапки к верху. (Не потому, что он издох. Хотя и это было, как многих. Там мелкосхему нужно выпаять, да проводок вместо нее запаять -- вот и весь ремонт!) Я сейчас занимаюсь одним проектом на меге256-ой. А драгон, оказывается, не умеет работать с такими кристаллами: ни запрограммировать, ни отдебажить. Но самое-то печальное, я кажись понял, почему он стоит так дешево! С одной стороны его использование ограничено 32 КБайтами флеша в АВРах, а с другой -- самими-же микроконтроллерами, т.е. не все АВРки поддерживают ЖИТАГ. Иначе говоря, разнообразие поддерживаемых Драгоном типов не очень большое. Вот и получается, что таньку2313 я дебажу по ЮАРТУ, мегу8 -- опять по ЮАРТУ, и мегу256... уже говорил. А других типов АВР я как-то в последнее время не использовал. Не доводилось. Т.е. как-то он (драгон) у меня не попер. Но может только у меня :( А может это временное явление. Не знаю, не знаю. По крайней мере, я честно сказал какая тенденция у меня наблюдается. А за идею сохранять отладочную инфу в ЕЕПРОМе -- спасибо. Как это я сам не догадался!? :) Идея лежала вообще на поверхности. Сохранил, а потом программатором обратно считал... хм :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться