Easyelectronics.ru

Электроника для всех
Текущее время: 26 янв 2020, 05:28

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Влияние отладчика на стабильность работы
СообщениеДобавлено: 09 авг 2019, 01:47 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Добрый день,

Уже не первый раз сталкиваюсь с таким явлением на разных процах STM32 (F103xx, F205xx...)

Программа работает отлично при подключённом отладчике.
Как только компилится релиз и программа запускается без подключённого отладчика (при чём акцент именно на этом), схема работает нестабильно.
Точнее просто через некоторое время зависает.

Это происходит не всегда. Я работаю с CAN и зависания происходят как правило, при большом количестве сообщений в секунду времени.
Отладить этот момент я пока не придумал как, ибо отладчик в этот момент не подключен, а когда он подключен, зависания не происходит (тестировалось сутками).

Кто-то может объяснить это?

Заранее благодарен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 09 авг 2019, 05:29 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4524
Откуда: Кемеровская область, Киселевск
Ну проблема явно с программированием. Программу проверять надо.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 09 авг 2019, 09:28 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 ноя 2010, 20:11
Сообщения: 97
Откуда: Омск
Если у Вас RTOS - добавьте поток, который будет считывать состояния и выводить их время от времени в отладочную консоль. Не отладчик, а именно отдельный UART.
Если без RTOS - подключите консоль и время от времени выводите в неё какие-то отладочные данные. Либо по прерыванию приёма (именно в обработчике прерывания) быстро собирайте отладочные данные и выводите их в консоль.
Этот метод поможет даже при зависшем основном потоке.
Но на релизной версии делать так - всё же не рекомендую.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 09 авг 2019, 12:31 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 644
Откуда: Санкт-Петербург
zacher писал(а):
Добрый день,
Точнее просто через некоторое время зависает.

я бы в этот момент подключил его к отладчику и запустил (без ресета). посмотрел бы что в стеке и по этому определил места зависона.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 09 авг 2019, 12:51 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6432
zacher, заземлите ваше устройство, дефект уйдет.
И, обращайте внимание на качество БП в вашем устройстве. А именно - на уровень помех, синфазных и дифференциальных.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 09 авг 2019, 14:59 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Спасибо за ответы.

По поводу проблем с программированием - тут даже не знаю что ответить... Приведите пример что-ли...

По подключения к отладчику на ходу - пытался, программа перезагружается и понять где зависание невозможно.

Нет, у меня не RTOS. Обычная разработка на SDK.

С заземлением устройства я не понял. У меня подача питания постоянного тока. 12V понижаются до 5 потом до 3.3. с помощью стандартных регуляторов питания LM7805CT, LT1117IST. О каком заземлении может идти речь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 09 авг 2019, 17:51 
Старожил

Зарегистрирован: 19 апр 2016, 11:59
Сообщения: 459
zacher писал(а):
По поводу проблем с программированием - тут даже не знаю что ответить... Приведите пример что-ли...
Привести пример "кривого" кода?
Речь же не про прошивку контроллера, а про код.

zacher писал(а):
По подключения к отладчику на ходу - пытался, программа перезагружается и понять где зависание невозможно.
Значит неправильно подключали. Прочитайте для начала.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 09 авг 2019, 20:10 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1840
Atomic-dm писал(а):
zacher писал(а):
Добрый день,
Точнее просто через некоторое время зависает.

я бы в этот момент подключил его к отладчику и запустил (без ресета). посмотрел бы что в стеке и по этому определил места зависона.

Правильно товарищ говорит.
Ключевые слова в гугле
segger ozone
начинающие могут использовать
how to debug STM32 without reset


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 12 авг 2019, 21:09 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
x893 писал(а):
Atomic-dm писал(а):
zacher писал(а):
Добрый день,
Точнее просто через некоторое время зависает.

я бы в этот момент подключил его к отладчику и запустил (без ресета). посмотрел бы что в стеке и по этому определил места зависона.

Правильно товарищ говорит.
Ключевые слова в гугле
segger ozone
начинающие могут использовать
how to debug STM32 without reset

естественно опция такая есть. подключаться к работающему процессу.
но я примерно представляю где висит прога.
вопрос в другом: почему она там висит?

не смотря на обилие ответов, самый главный вопрос остался открытым - в чём отличие работы с подключенным дебаггером и без него?
что такого даёт отладчик, чего нет в отдельно работающей плате?

или просто никто не знает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 12 авг 2019, 21:14 
Старожил

Зарегистрирован: 19 апр 2016, 11:59
Сообщения: 459
zacher писал(а):
но я примерно представляю где висит прога.
вопрос в другом: почему она там висит?
Вам виднее. У вас код, а не у нас.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 12 авг 2019, 21:34 
Старожил
Аватара пользователя

Зарегистрирован: 30 мар 2015, 23:56
Сообщения: 764
Отладчик добавляет программные точки останова, на любых уровнях компиляции. Та самая нелюбимая старая версия отладчика, что имела всего 3-6 точек останова - не использовала программную часть, и работала полностью аппаратно. Но ведь нам нужно много точек...
Чего получается в релизе: при отсутствии дополнительной программной обработки состояния мк - программный код выполняется чуть чуть быстрее. Это трудно заметить на глаз, да и приборами тоже -влияние отладчика минимально. Но акцент на те места, которые стали выполняться на несколько тактов быстрее - это все условные переходы (без исключения).
Например при опросе состояния аппаратных флагов периферии с более низкой частотой.
Вполне реально состояние, когда периферия не успела отработать предыдущую команду (там есть свой конвейер), а её уже дёргают с другого конца. Либо слишком частый опрос, отчего общая шина на которой висит периферия - почти всегда занята. В любом случае нужно добавлять небольшие программные задержки - на 2-16 циклов системной шины.

_________________
Потоковая OS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 13 авг 2019, 19:57 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
AVI-crak писал(а):
Отладчик добавляет программные точки останова, на любых уровнях компиляции. Та самая нелюбимая старая версия отладчика, что имела всего 3-6 точек останова - не использовала программную часть, и работала полностью аппаратно. Но ведь нам нужно много точек...
Чего получается в релизе: при отсутствии дополнительной программной обработки состояния мк - программный код выполняется чуть чуть быстрее. Это трудно заметить на глаз, да и приборами тоже -влияние отладчика минимально. Но акцент на те места, которые стали выполняться на несколько тактов быстрее - это все условные переходы (без исключения).
Например при опросе состояния аппаратных флагов периферии с более низкой частотой.
Вполне реально состояние, когда периферия не успела отработать предыдущую команду (там есть свой конвейер), а её уже дёргают с другого конца. Либо слишком частый опрос, отчего общая шина на которой висит периферия - почти всегда занята. В любом случае нужно добавлять небольшие программные задержки - на 2-16 циклов системной шины.


Спасибо, что поняли меня.
Релиз не релиз, дебаг не дебаг - тут роли не играет. Играет роль физически подключенный отладчик.
Что касается зависаний на периферии - это проблема процессора, он должен отрабатывать эту задачу, я работаю через прерывания.
У меня MAILBOX либо пуст либо переполнен. Но переполнения не возникает - потому что на это есть индикатор.

Без ресета действительно, возможно подключение отладчика, попробую, отпишу. Пока жду зависания (это происходит не сразу).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 14 авг 2019, 04:45 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Изображение
И что нам это дает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 14 авг 2019, 05:07 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1840
Это нам дает информацию о том, что происходит HardFault.
Добавляете парсер для него (от Segger например) и разбираетесь какой код его вызывает.
Ну и попутно думаете как поступать в такой ситуации.
Потом опять программируете.

Так что на пару часов будет развлечение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 14 авг 2019, 17:08 
Заглядывает иногда

Зарегистрирован: 06 янв 2014, 17:52
Сообщения: 105
Откуда: СПБ
Я сталкивался с похожей ситуацией.
Инициализация экрана не работала без отладчика.
Просто подключение J-link не помогало. Нужна была именно активная сессия дебагера. Без точек останова, без чтения памяти и периферии. Просто активная сессия.
Решилось задержкой 1мкс посл установки сигнала CS на экран, перед инициализацией.
Причину я так и не понял, но может это Вам как-то поможет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 14 авг 2019, 19:11 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Utyf писал(а):
Я сталкивался с похожей ситуацией.
Инициализация экрана не работала без отладчика.
Просто подключение J-link не помогало. Нужна была именно активная сессия дебагера. Без точек останова, без чтения памяти и периферии. Просто активная сессия.
Решилось задержкой 1мкс посл установки сигнала CS на экран, перед инициализацией.
Причину я так и не понял, но может это Вам как-то поможет.


Именно так всё и происходит! Тупое подключение JLINK ничего не даёт. Именно активная сессия...
У меня экрана нет. И в целом код работает, примерно час без проблем. Проблемы возникают позднее.
Возможна ли аппаратная заморочка? (Например, неподключенные VCAP1, VCAP2?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 14 авг 2019, 20:07 
Заглядывает иногда

Зарегистрирован: 06 янв 2014, 17:52
Сообщения: 105
Откуда: СПБ
Я думаю что активация внутри-схемного отладчика меняет какие-то тайминги в контролере. И что-то, работающее на пределе, может сломаться/заработать.
Мне помог логический анализатор. Попробуйте поймать сигналы в момент сбоя и сравнить с нормальной работой.
Если решает не подключение j-link, а сессия дебагера, то думаю проблема программная.
Но VCAP поставить нужно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 14 авг 2019, 22:21 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 644
Откуда: Санкт-Петербург
zacher писал(а):
Изображение
И что нам это дает?

ну наверно нужно посмотреть что находится в 814 строчке main
и 72 строчке в файле прерываний.

думаю в main'е будет или сравнение или присвоение переменной которая каким-то образом не определена.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 15 авг 2019, 02:42 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Atomic-dm писал(а):
zacher писал(а):
Изображение
И что нам это дает?

ну наверно нужно посмотреть что находится в 814 строчке main
и 72 строчке в файле прерываний.

думаю в main'е будет или сравнение или присвоение переменной которая каким-то образом не определена.


Гениально!
Поэтому час работает программа, а потом вдруг сравнение или присвоение.
Нет в main ничего нет там вечный цикл while (1) вот какая строчка

А в 72 строчке hard_fault_handler в который мы и попадаем хз откуда, так как видимо стек уже к этому времени разрушен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 15 авг 2019, 02:44 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Utyf писал(а):
Я думаю что активация внутри-схемного отладчика меняет какие-то тайминги в контролере. И что-то, работающее на пределе, может сломаться/заработать.
Мне помог логический анализатор. Попробуйте поймать сигналы в момент сбоя и сравнить с нормальной работой.
Если решает не подключение j-link, а сессия дебагера, то думаю проблема программная.
Но VCAP поставить нужно.


Если бы не приходилось час ждать пока зависнет, я бы с удовольствием воспользовался логическим анализатором.
Но за совет спасибо! Пока это единственная реальная помощь.

P.S.>
Вот еще нашел информацию что может что-то переполняться... Вопрос что?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 15 авг 2019, 12:18 
Заглядывает иногда

Зарегистрирован: 06 янв 2014, 17:52
Сообщения: 105
Откуда: СПБ
zacher писал(а):
Если бы не приходилось час ждать пока зависнет, я бы с удовольствием воспользовался логическим анализатором.
Но за совет спасибо! Пока это единственная реальная помощь.

попробуйте ускорить зависание. Дайте максимальную нагрузку на шину. Размер пакетов, скорость.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 16 авг 2019, 01:19 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
В общем, так я ничего и не выяснил.
Я сделал пару небольших правок в программе, касаемо таймеров (интервалы и обработчики).
Откомпилил релиз, он стал виснуть практически сразу.
Я обрадовался было, откомпилил дебаг - он не виснет.
Откомпилил релиз без оптимизаций - он тоже не виснет.
Пока ещё гоняю, но два часа давно позади, так что думаю уже не повиснет.
Странно это всё и нестабильно.

Осталось проверить как это всё полетит на китайском процике.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 16 авг 2019, 05:42 
Старожил

Зарегистрирован: 28 сен 2018, 00:25
Сообщения: 201
Если при включении оптимизаций виснет - только смотреть.
У самого, как я понимаю, мозгов не хватает отловить - придется выкладывать для ознакоммления более сведущими камрадами..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 16 авг 2019, 18:08 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
cubot писал(а):
Если при включении оптимизаций виснет - только смотреть.
У самого, как я понимаю, мозгов не хватает отловить - придется выкладывать для ознакоммления более сведущими камрадами..

да, мозгов - одна извилина... обделили


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Влияние отладчика на стабильность работы
СообщениеДобавлено: 16 авг 2019, 22:37 
Старожил
Аватара пользователя

Зарегистрирован: 30 мар 2015, 23:56
Сообщения: 764
В релизе на выхлоп нужно отключать Generate debugging information, и интерфейс программирования (с небольшой задержкой - чтобы вернуться можно было). Вот тогда программа будет исполняться максимально быстро, в том числе все условные переходы.

Зависание при сборке с оптимизацией - признак слишком быстрого и бессмысленного обращения к периферии, отчего оную глючит. Там почти всё медленное, даже fmc.
А вот DMA наоборот, даже немного быстрее arm ядра. Флаги dma срабатывают когда информация была полностью прочитана из источника, но самому dma нужно немного времени чтобы сбросить данные по нужному адресу.

_________________
Потоковая OS


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: vbogom


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB