-
- С ARM7 (правда, LPC2148) была такая фигня: при обработке IRQ, из регистра, где должен лежать адрес конкретной функции - обработчика иногда вылезало 0х0000. _basile(97 знак., 19.02.2018 16:52, )
- Видел подобное в проекте, в котором использовалось динамическое выделение памяти. Туповатый аллокатор выделял память в области, задействованной под eth буфер, где-то ближе к его концу. Как следствие, девайс под нагрузкой стабильно улетал в Evgeniy1294(88 знак., 19.02.2018 12:25)
- С описанием методики сбоя есть проблема. misyachniy(257 знак., 19.02.2018 15:25)
- Где-то что-то портит стек. Описание сбоя довольно обобщенное, попробуйте на время выбросить USB из кода и затестить прошивку без него (поставьте заглушку, счетчик, гоните данные в другой USART и т.д.). Если проблема не проявится - виноват драйвер Evgeniy1294(195 знак., 19.02.2018 17:02 - 17:06)
- SWO Trace умеет отмечать Program Counter каждые N тактов процессора. Вкупе с вменяемым отладчиком (умеющим в SWO) можно посмотреть где программа была перед смертью - lloyd(19.02.2018 15:30)
- Можно и через обычный уарт выводить состояние МК (регистры и PC) при улете в хардфолт. - Ruslan(19.02.2018 16:47 - 16:52, ссылка, ссылка)
- Подробнее про вменяемый отладчик можно? - ASDFS(19.02.2018 16:15)
- Любой, который умеет в SWO Trace. lloyd(101 знак., 19.02.2018 16:26)
- Я в отладчике ИАРа таких слов не нашел. ЧЯДНТ? - ASDFS(19.02.2018 16:54)
- например так: Options проекта -> General Options -> Library Configuration -> Library low-level interface implementation -> stdout/stderr -> via SWO - 0men(19.02.2018 17:04)
- Ээээ.. Я так думал это вывод в SWO всяких printf-ов через stdout. Но я же в реальной программе не буду через строчку вкорячивать отладочный printf, тем более это не прокатит в прерываниях. Че то я тут в непонятках. - ASDFS(19.02.2018 17:11)
- это оно и есть :) именно вывод printf-ов через stdout. Еще есть при входе в дебагер вкладка J-link->SWO Trace - 0men(19.02.2018 17:17)
- Все, нашел наконец. Припаяю проводок и попробую что за штука. - ASDFS(19.02.2018 17:21 - 17:25)
- В SAM7X256 нет SWO. - misyachniy(19.02.2018 17:38)
- Все, нашел наконец. Припаяю проводок и попробую что за штука. - ASDFS(19.02.2018 17:21 - 17:25)
- это оно и есть :) именно вывод printf-ов через stdout. Еще есть при входе в дебагер вкладка J-link->SWO Trace - 0men(19.02.2018 17:17)
- Ээээ.. Я так думал это вывод в SWO всяких printf-ов через stdout. Но я же в реальной программе не буду через строчку вкорячивать отладочный printf, тем более это не прокатит в прерываниях. Че то я тут в непонятках. - ASDFS(19.02.2018 17:11)
- например так: Options проекта -> General Options -> Library Configuration -> Library low-level interface implementation -> stdout/stderr -> via SWO - 0men(19.02.2018 17:04)
- SAM7X256 вроде как ARM7TDMI... - Vit(19.02.2018 16:37)
- Цифра 7 в названии ввела меня в заблуждение. lloyd(20 знак., 19.02.2018 17:48)
- Я в отладчике ИАРа таких слов не нашел. ЧЯДНТ? - ASDFS(19.02.2018 16:54)
- Любой, который умеет в SWO Trace. lloyd(101 знак., 19.02.2018 16:26)
- С описанием методики сбоя есть проблема. misyachniy(257 знак., 19.02.2018 15:25)
- Улет по неверному адресу -- скорей порча стека (где адрес возврата был). Если у тебя gcc, то там есть опция -fstack-check, может помочь отловить такие случаи. Ещё можно поискать на стеке адреса возврата и подумать, что могло быть вызвано. Все fk0(100 знак., 19.02.2018 11:02)