-
- Я с таким поведением сталкивался в Keil-е, думаю в IAR аналогично. Обычно после заливки прошивки происходит старт программы, затем среда (Keil/IAR) еще выполняет сброс. При этом момент сброса может выпасть в "удачный" момент - например в середине il-2(393 знак., 06.09.2017 18:37)
- Нашел решение: отключить на main в уровнях оптимизации "static clustering". И ВСЁ! ROBINZONE(271 знак., 07.09.2017 17:17)
- Любопытно, потом посмотрю как это оптимизация вообще устроена, по описанию не оч понятно - 0men(07.09.2017 17:55)
- В том то и дело, все включают на максимум оптимизации, все опции, а они являются "минами замедленного действия". - ROBINZONE(07.09.2017 19:26)
- Вы где-то прочитали, что все включают? Или сами так решили? Я включаю оптимизации только, если без них места в памяти не хватает. Даже если оптимизация не добавляет глюков, она затрудняет отладку. - mmc(07.09.2017 21:08)
- Делал просто: брал цикл с изменением регистра в/в и смотрел по ассемблеру, во что компилируется. ROBINZONE(177 знак., 08.09.2017 16:20)
- у меня всегда оптимизация включена на максимум, начиная с яр для авр 2.28, пока все глюки были только моими )) - 0men(08.09.2017 12:21)
- плюсую - Oman(08.09.2017 21:37)
- Аналогично - LightElf(08.09.2017 12:31)
- Это не мины. Это ещё один способ выявить глюки в коде. А так да, не надо включать оптимизацию. Вы куда-то опаздываете? Памяти не хватает? Вот и не надо. Я и сам так делаю. - SciFi(07.09.2017 20:12)
- Согласен, просто с оптимизацией вылезают те глюки, которые не вылезают без нее( простейший пример, неинициализированные переменные). Oman(56 знак., 08.09.2017 10:38)
- Вот, к примеру, глюк FreeRTOS при этом уровне оптимизации ROBINZONE(237 знак., 08.09.2017 16:24)
- имхо- хрень, фри была 6 и щас 7.3 (временами посматривал что изменилось, не интересовало). Oman(680 знак., 08.09.2017 21:50)
- Хе-хе. У меня есть программа, которая начинает глючить, если компилятору включить LTO. Проблема в том, что при этой оптимизации в дизассемблере вообще ничего не понять, а по старинке через printf() возиться не хочется... - SciFi(08.09.2017 10:43)
- Вот, к примеру, глюк FreeRTOS при этом уровне оптимизации ROBINZONE(237 знак., 08.09.2017 16:24)
- Согласен, просто с оптимизацией вылезают те глюки, которые не вылезают без нее( простейший пример, неинициализированные переменные). Oman(56 знак., 08.09.2017 10:38)
- Вы где-то прочитали, что все включают? Или сами так решили? Я включаю оптимизации только, если без них места в памяти не хватает. Даже если оптимизация не добавляет глюков, она затрудняет отладку. - mmc(07.09.2017 21:08)
- В том то и дело, все включают на максимум оптимизации, все опции, а они являются "минами замедленного действия". - ROBINZONE(07.09.2017 19:26)
- Любопытно, потом посмотрю как это оптимизация вообще устроена, по описанию не оч понятно - 0men(07.09.2017 17:55)
- Так, наоборот, при отладчике всё работает. ROBINZONE(211 знак., 06.09.2017 18:54)
- в IAR в настройках J-linka есть разные варианты выбора ресета - 0men(06.09.2017 18:50)
- Нашел решение: отключить на main в уровнях оптимизации "static clustering". И ВСЁ! ROBINZONE(271 знак., 07.09.2017 17:17)
- попробуйте дата брикпоинты поставить на чтение из той области памяти? - Oman(06.09.2017 18:24)
- Я не знаю точно, где и что изменяется - единственное проявление это то, что у меня в программе есть дополнительная проверка на состояние чипа физики (лан 7820), и, если там в регистре нулевое значение - значит, инициализация не прошла. ROBINZONE(355 знак., 06.09.2017 18:31)
- Надо диагностическую информацию куда-нибудь выплёвывать, если внутрисхемный отладчик не позволяет вычислить. - SciFi(06.09.2017 18:33)
- Есть экран, попробую на него. - ROBINZONE(06.09.2017 18:55)
- Надо диагностическую информацию куда-нибудь выплёвывать, если внутрисхемный отладчик не позволяет вычислить. - SciFi(06.09.2017 18:33)
- Я не знаю точно, где и что изменяется - единственное проявление это то, что у меня в программе есть дополнительная проверка на состояние чипа физики (лан 7820), и, если там в регистре нулевое значение - значит, инициализация не прошла. ROBINZONE(355 знак., 06.09.2017 18:31)
- Барьер поставь перед прыжком - Petrovich(06.09.2017 15:53, )
- _isb(), _dsb(), _dmb() или что-то ещё? ROBINZONE(77 знак., 06.09.2017 17:54)
- Бег с барьерами отличная тема для топика, кстати, наподобие volatile. Думаю, здесь поставить не меньше чем DSB, а то и ISB хотя в руководствах при смене векторов рекомендуют DMB - Petrovich(07.09.2017 09:24, )
- Непонятно, почему подключение внутрисхемного отладчика играет роль. - SciFi(06.09.2017 17:56)
- _isb(), _dsb(), _dmb() или что-то ещё? ROBINZONE(77 знак., 06.09.2017 17:54)
- Иногда включают сторож и протирка в стартапе при добавлении протираемого тупо не успевает до срабатывания сброса по сторожу. - Vit(06.09.2017 15:42)
- Сторож отключен, на последней версии ИАРа код работает, но есть трабл именно в секции инита (обработки) LAN. ROBINZONE(40 знак., 06.09.2017 17:56)
- Была похожая фигня, особенно из-за j-link отладчика, который замедлял работу, а подключенные железки были чуть медлееноватые. waw(654 знак., 06.09.2017 15:37)
- Что значит "под дебуггером код рабочий"? Ровно та же прошивка, но подключен SWD? - SciFi(06.09.2017 15:11)
- Да, код тот же самый. ROBINZONE(160 знак., 06.09.2017 15:15)
- Ещё раз. Какой код тот же самый? Исходный (си) или двоичный (хекс)? - SciFi(06.09.2017 15:22)
- Код тот же самый, байт-в-байт. В ИАР-е отладка без программирования. - ROBINZONE(06.09.2017 16:09)
- Ещё раз. Какой код тот же самый? Исходный (си) или двоичный (хекс)? - SciFi(06.09.2017 15:22)
- Да, код тот же самый. ROBINZONE(160 знак., 06.09.2017 15:15)
- стек пробовали увеличить? - 0men(06.09.2017 14:40)
- Да, не помогает. - ROBINZONE(06.09.2017 15:09)
- Расставьте проверки диапазонов указателей. Это первое, что я бы сделал. Подозревать компилятор в глюке ещё рано. - Nikolay_Po(06.09.2017 14:28)
- Я с таким поведением сталкивался в Keil-е, думаю в IAR аналогично. Обычно после заливки прошивки происходит старт программы, затем среда (Keil/IAR) еще выполняет сброс. При этом момент сброса может выпасть в "удачный" момент - например в середине il-2(393 знак., 06.09.2017 18:37)