Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: переполнен CStack и RStack
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
//Nikson
Было работающее устройство на ATmega128 (проработало полгода примерно).

Когда вносил правки в исходник (добавлял новые функции) произошло замыкание, сгорела мега, самодельный jtag ice (натурально так горел, с дымом и лопнувшим корпусом на Мега16).

Всё перепаял, собрал новый jtag, из архива достал предыдущую версию проекта (которая работала)...
При отладке (точнее, ещё при прошивке) ИАР говорит

The stack 'CStack' is filled to 100% (2200 bytes used out of 2200). The warning threshold is set to 90%.
The stack 'RStack' is filled to 100% (140 bytes used out of 140). The warning threshold is set to 90%.

и прога работать соответственно отказывается.

в чём проблема? это у меня программный глюк (что имхо маловероятно - проект-то был рабочий) или аппаратный (новая мега/ новый житаг)?

подскажите плиз!
skn
Никогда не видел, чтобы была ругань на стеки при прошивке. При компиляции да, бывало. Это особенность работы с JtagIce? Может галочку совместимостьи с m103 забыли снять?
defunct
Очень может быть, что просто рассинхронизация или помехи в линии.
JTAG связь часом не теряет?
Igor26
Цитата
Никогда не видел, чтобы была ругань на стеки при прошивке

Запросто! ИАР перед запуском сеанса отладки по JTAG сначала "собирает" проект, а затем программирует кристалл (если ему это разрешено). Ну и далее начинается отладка. Вы попробуйте в исходнике убрать где-нибудь, например, кавычки и запустить из под ИАРа JTAG.
По теме. Если проект старый и рабочий, то можно попробовать прошить старый HEX JTAGом из под Студии.
VladimirYU
Сталкивался с подобным, проверьте все же опции проекта, у меня подобная проблема оттуда росла.
Вспоминаю подробности, кажется это было из-за неправильной модели памяти.
korobov_michael
Бывало, что когда начинал новый проект с теми же исходниками, забывали проставить опции компилятора (Project -> Options -> System -> CStack, RStack). В силу обильного использования памяти как раз эта ошибка вылезала довольно часто. Вы не используете внешний .xcl файл?
Сергей Борщ
Цитата(//Nikson @ Aug 2 2007, 00:23) *
Было работающее устройство на ATmega128 (проработало полгода примерно).

The stack 'CStack' is filled to 100% (2200 bytes used out of 2200). The warning threshold is set to 90%.
The stack 'RStack' is filled to 100% (140 bytes used out of 140). The warning threshold is set to 90%.
Такое сообщение начали выводить сравнительно свежие версии отладчика. Возможно вы раньше работали с предыдущей версией, которая это сообщение просто не умела выдавать, а устройство не работает по другой причине?
Забить 140 байт RSTACK - это 70 раз вызвать подпрограмму. Сомневаюсь что у вас такая глубина вложенности.
//Nikson
в общем, впаял новый контроллер на новую плату, проект тот же самый, житаг ice тот же самый, и всё заработало (вроде бы..... тьфу х 3).

причины произошедшего мне не совсем понятны sad.gif


PS. совместимость с м103 отключена, связь не теряется, проект со всеми настройками и версия ИАРа те же самые.

PPS. да, вот ещё вспомнил - когда была эта проблема, то пробовал прошить тестовой программкой мегу64 - так вот, IAR прошивал код, не ругался никак, но в окне Disassembly вместо реального кода были сплошные 0xFFFF и программа соответсвенно не выполнялась (ногами не дрыгала). быть может, просто день неудачный был?
defunct
Цитата(//Nikson @ Aug 3 2007, 17:36) *
быть может, просто день неудачный был?

Скорее просто GND на JTAG разъеме неконтачил.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.