Цитата(aaarrr @ Jun 1 2009, 11:41)

Для начала, крепко подумать, откуда на стеке может взяться "бешеный адрес начинающийся на 0xD8", иногда по числу удается понять, откуда оно пришло.
Там на самом деле разный мусор. Число каждый раз непонятное, ни очем не говорящее.
Цитата(aaarrr @ Jun 1 2009, 11:41)

Еще можно порекомендовать посмотреть содержимое LR того режима, из которого влетели в аборт.
Смотрел. Влетаю явно из систем-режима, но в данном регистре вообще был нечетный адрес.
Проблема была хитрой. Парсер от процессора ловил некоторую сигнатуру в данных и принимал ее за команду и... всё.
Но она была явно не одна.
Сейчас наблюдаю вылет по данным.
Проблема в том что без отключенной оптимизации код вместе с сегментом констант и инициализированных данных не влезает в процессор. Соответственно под отладчиком посмотреть не получается - информация для него отсутсвует и он кажет хрень.
Закомментировал некоторое количество кода и запустил без оптимизатора (none и low) - сбоев нет. Включаю оптимизатор и сбоит, причем точку вылета поймать пока не удается - в отладчике опять охинея, плюс он подвисает в самый неудачный момент. Программа без операционки, но с кучей конечных автоматов. Хорошо хоть проблема стабильно проявляется.
Уарты все заняты и в консольку я выбросить ничего не могу, есть только вариант с USB. Однако непонятно как написав обработчик dataabort дотянутся до регистров system.
Чтобы сделать такого чтоб добраться до истока проблемы? Мозг уже сломал.
Цитата(IgorMarx @ Jun 1 2009, 20:50)

А нескромный вопрос мона? Какая среда программирования? Какой язык программирования? Тут не боги заседают.
Не знаю чем поможет такое уточнение. Проц sams256 + IAR4.41A.
Цитата(IgorMarx @ Jun 1 2009, 20:50)

Кстати, отладчик может предупреждать о переполнении стека. Нужно смотреть в окне отладочных сообщений.
Угу. Это если ему будет угодно то да, покажет. Ну если конечно не зависнет.
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.