Easyelectronics.ru

Электроника для всех
Текущее время: 17 сен 2019, 01:56

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



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

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

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

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

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

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

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

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


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

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

_________________
RADIOWOLF.RU


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

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


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

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

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


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

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


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

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

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

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

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

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


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

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

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


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

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

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

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


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

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

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

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

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

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

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


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

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


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

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

_________________
Потоковая OS


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

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


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

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


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

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


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

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

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


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

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


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

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


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


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

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


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

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

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

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


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

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

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

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


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

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


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

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


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

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


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

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

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


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

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

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


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

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


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

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

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


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

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

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

_________________
Потоковая OS


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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