реклама на сайте
подробности

 
 
> Как поимать "баг" в STM32 на скорости 72 MHz?, методы поиска и устранения спонтанных и редких сбоев в работе МК
manul78
сообщение Apr 24 2018, 12:09
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Как поймать "Баг" на скорости 72 МГц ?
(тема для обсуждения и поиска решения)

Задача: Есть условное устройство на базе STM32F103C8 (Cortex-3M) которое работает на максимально разрешенной частоте в режиме максимальной нагрузки, то есть активно работает ядро АРМ, периферия, порты ввода-вывода, DMA, таймеры.
В процессе длительной работы (неделя) систематически происходит сбой. Зацикливание, спонтанный неконтролируемый сброс МК и т.д.
Всё это возможно по ряду причин: Сбой по питанию, переполнение стека или "кучи", кривой арбитраж шин или прерываний, неисправность МК. Причин масса.

Вопрос: Как поймать сбой происходящий в периоде довольно длительного отрезка времени?
У простого разработчика разумеется нет тех аппаратных возможностей которыми оперируют крупные лаборатории и производители серийных устройств, нет возможности обвешать "девайс" супервайзерами, логическими анализаторами и неделями круглосуточно гонять устройство, писать
Log-и, а потом отрядом в 50 человек анализировать их.

Стало быть нам придётся думать самим. Что у нас есть? Есть отладочная система CoreSight.
Есть две "собаки" WatchDog таймера. Внутренний, зависимый от периферии и независимый автономный.
Внутренний оконный WWDT, перед командой Сброса МК может сгенерировать прерывание. Данная опция специально разработана инженерами из STM для того, чтобы иметь возможность сделать дамп данных (память, состояние регистров, состояние периферии и т.д) перед сбросом системы МК.
Что может быть проще? Написали в обработчике прерывания от "собаки" процедуру инициализации SPI,UART
или I2C и выплюнули в внешнюю Флэш-память дамп всей оперативной памяти + состояние регистров.
Далее считал с флэши и сиди анализируй - где споткнулся или завис МК. Бинго !

Это я описал самое очевидное и "тепличное" развитие событий. ТАК бывает... Но редко... sm.gif
А если контроллер прерываний "упал" или зациклился в одной точке? Если вообще ядро АРМ "упало" или
зациклилось? А может вообще - стек налетел на "кучу" и управляющая программа рандомно пошла вразнос и
остановила генераторы шин или периферии? В данном случае "собака" WWDT бессильна. Она мертва.
Есть конечно ещё независимый IWWDT - но он не генерит прерываний - тупо сбрасывает контроллер.
Есть отладочное CoreSight - до которого тоже ещё надо уметь достучаться.

Так что Давайте высказываться, Уважаемые участники сообщества. У кого какие есть на это мысли и решения?


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
HardEgor
сообщение Apr 24 2018, 12:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(manul78 @ Apr 24 2018, 19:09) *
Как поймать "Баг" на скорости 72 МГц ?

Сделать 10 одинаковых устройств, функционал распределить между ними. Там где сломается - там проблема.
Вообще тема тестирования бесконечна.
Если время=деньги, тогда надо брать крутой отладчик типа ULINKpro и через него писать лог в компьютер.
Go to the top of the page
 
+Quote Post
manul78
сообщение Apr 24 2018, 12:58
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(HardEgor @ Apr 24 2018, 15:36) *
Сделать 10 одинаковых устройств, функционал распределить между ними. Там где сломается - там проблема.
Вообще тема тестирования бесконечна.
Если время=деньги, тогда надо брать крутой отладчик типа ULINKpro и через него писать лог в компьютер.


Я уже писал в начале. С крутым отладчиком, в тёплой лаборатории и при достаточном бюджете...

Девайс работает на отшибе на территории завода. К нему лишний раз не набегаешься, и лабораторию измерительную не соорудить вокруг.
Глюки спонтанны, но как заметили связаны с увеличением траффика передаваемых данных.



--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 24 2018, 13:03
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(manul78 @ Apr 24 2018, 15:58) *
Глюки спонтанны, но как заметили связаны с увеличением траффика передаваемых данных.

Внимательное ревью кода и обработка исключений творят чудеса даже при самых спонтанных багах laughing.gif
Go to the top of the page
 
+Quote Post
manul78
сообщение Apr 24 2018, 13:19
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(jcxz @ Apr 24 2018, 16:03) *
Внимательное ревью кода и обработка исключений творят чудеса даже при самых спонтанных багах laughing.gif


Если честно - "Это не моя война..." (с)

Софт писали какие-то студенты на Cube-HAL-е... Потом они уволились, допиливали другие... и т.д.

Я привёл данный случай как пример. Но если софт писали дилетанты - это не значит, что не глючит софт написанный профессионалами,
по всем канонам и со всеми ритуалами.

Я запустил эту тему для себя, чтобы попробовать выжать экстракт из общего опыта поиска неисправностей. Универсального решения разумеется
нет, но поределённые базовые шаги и грабли думаю будут интересны всем.

Цитата(AlanDrakes @ Apr 24 2018, 16:03) *
А вообще - хороший вариант - внутренняя же трассировка проблемного события.
Это когда код вместо резкой перезагрузки сохраняет состояние системы и пишет в консоль (или файл, а лучше в два) сообщение о том что произошло, когда, почему и дампы, дампы, дампы...


Построить "своречник" вокруг столба с "девайсом", поставить там ноутбук и жить там-же... круглосуточно... sm.gif

Это устройство не в процессе разработки и не на стадии тестирования. Оно уже в сети, и на нем завязано производство.

Я понимаю Вас. Меня интересуют "методы", пусть даже нестандартные. Возможно даже кто-то здесь имеет в своём распоряжении
самопальные компактные супервазеры для STM32, я-же не прошу схему, код и готовые решения на халяву. Я ищу ВЕКТОР направления
в котором двигаться.


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 24 2018, 13:48
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(manul78 @ Apr 24 2018, 16:19) *
Это устройство не в процессе разработки и не на стадии тестирования. Оно уже в сети, и на нем завязано производство.

Я понимаю Вас. Меня интересуют "методы", пусть даже нестандартные. Возможно даже кто-то здесь имеет в своём распоряжении
самопальные компактные супервазеры для STM32, я-же не прошу схему, код и готовые решения на халяву. Я ищу ВЕКТОР направления
в котором двигаться.

Если с этой точки зрения, то вот что я могу добавить.
Если разработку рассматривать как переходный процесс, то за 3 "тау" мы придем к уровню 5% ошибок. И для кого-то этого будет вполне достаточно, т.к. для этого типа аппаратуры 5% ошибок будут не критичны. Ну например домофон или аэрогриль. Ну, сбойнут или зависнут. Не так страшно. А если аппаратура работает долго, и ошибки фиксируются как нарушение работы, то тогда и 1% ошибок будет неприемлем. Да вот только для 1% а уж про 0,1% нужно столько этих "тау", да еще не в лаборатории, а в труднодоступном месте.
Вот потому "промышленная" аппаратура имеет гораздо более высокую цену.
И потому для "промышленной" аппаратуры все возможные виды тестирования и поисков неисправностей необходимо закладывать как рабочее программное обеспечение. А в идеале - с удаленным доступом. Иначе пара судебных исков и фирму можно будет закрыть...

И эта фраза:"Построить "своречник" вокруг столба с "девайсом", поставить там ноутбук и жить там-же... круглосуточно..." Говорит о том, что ТС еще не натрахался "в поле"...




--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- manul78   Как поимать "баг" в STM32 на скорости 72 MHz?   Apr 24 2018, 12:09
- - Kabdim   Постараться делить неопределенность на малые куски...   Apr 24 2018, 12:25
|- - manul78   Цитата(Kabdim @ Apr 24 2018, 15:25) Поста...   Apr 24 2018, 12:55
|- - juvf   Цитата(manul78 @ Apr 24 2018, 17:55) Суть...   Apr 28 2018, 17:43
||- - jcxz   Цитата(juvf @ Apr 28 2018, 20:43) Прибор ...   Apr 29 2018, 02:35
||- - AlexandrY   Цитата(juvf @ Apr 28 2018, 20:43) Прибор ...   Apr 29 2018, 06:50
||- - jcxz   Цитата(AlexandrY @ Apr 29 2018, 09:50) Хо...   Apr 29 2018, 08:51
||- - novikovfb   Цитата(AlexandrY @ Apr 29 2018, 10:50) На...   Apr 29 2018, 09:54
|||- - jcxz   Цитата(novikovfb @ Apr 29 2018, 12:54) Ди...   Apr 29 2018, 10:04
|||- - AlexandrY   Цитата(novikovfb @ Apr 29 2018, 12:54) Ди...   Apr 29 2018, 17:20
|||- - jcxz   Цитата(AlexandrY @ Apr 29 2018, 20:20) Оп...   Apr 30 2018, 05:45
|||- - AlexandrY   Цитата(jcxz @ Apr 30 2018, 08:45) наприме...   Apr 30 2018, 08:14
||||- - jcxz   Цитата(AlexandrY @ Apr 30 2018, 11:14) Ка...   Apr 30 2018, 08:26
||||- - AlexandrY   Цитата(jcxz @ Apr 30 2018, 11:26) Вы мой ...   Apr 30 2018, 10:49
|||- - juvf   Цитата(jcxz @ Apr 30 2018, 10:45) Это тол...   Apr 30 2018, 17:59
|||- - AlexandrY   Цитата(juvf @ Apr 30 2018, 20:59) в один ...   Apr 30 2018, 19:56
||||- - juvf   Цитата(AlexandrY @ May 1 2018, 00:56) Есл...   May 1 2018, 04:27
||||- - haker_fox   QUOTE (juvf @ May 1 2018, 12:27) готов по...   May 1 2018, 05:23
||||- - AlexandrY   Цитата(haker_fox @ May 1 2018, 08:23) Рас...   May 1 2018, 19:05
||||- - mantech   Цитата(AlexandrY @ May 1 2018, 22:05) В м...   May 1 2018, 19:25
||||- - one_eight_seven   Цитата(mantech @ May 1 2018, 22:25) Это д...   May 1 2018, 20:54
|||- - haker_fox   QUOTE (juvf @ May 1 2018, 01:59) Эта штук...   May 1 2018, 03:51
|||- - mantech   Цитата(juvf @ Apr 30 2018, 20:59) в один ...   May 1 2018, 11:25
|||- - haker_fox   QUOTE (mantech @ May 1 2018, 19:25) Ну во...   May 1 2018, 14:37
||||- - mantech   Цитата(haker_fox @ May 1 2018, 17:37) Инт...   May 1 2018, 17:50
|||- - juvf   Цитата(mantech @ May 1 2018, 16:25) ... д...   May 2 2018, 17:50
|||- - mantech   Цитата(juvf @ May 2 2018, 20:50) какой уж...   May 2 2018, 17:59
||- - juvf   Цитата(AlexandrY @ Apr 29 2018, 11:50) На...   Apr 29 2018, 14:28
|- - KnightIgor   Цитата(manul78 @ Apr 24 2018, 13:55) 50/5...   Apr 30 2018, 15:17
- - Mareng   Обычно помогало постепенное упрощения функционала ...   Apr 24 2018, 12:25
|- - AVI-crak   Скорми проект бешеной лошади. Уверен что она найдё...   Apr 24 2018, 12:29
|- - iosifk   Цитата(Mareng @ Apr 24 2018, 15:25) Обычн...   Apr 24 2018, 12:33
|- - manul78   Цитата(iosifk @ Apr 24 2018, 15:33) Есть ...   Apr 24 2018, 19:46
|- - jcxz   Цитата(manul78 @ Apr 24 2018, 16:19) Софт...   Apr 24 2018, 15:40
|- - manul78   Цитата(jcxz @ Apr 24 2018, 18:40) А какой...   Apr 24 2018, 20:41
|- - twix   Цитата(manul78 @ Apr 24 2018, 20:41) Изви...   Apr 25 2018, 03:31
|- - AVI-crak   Цитата(manul78 @ Apr 25 2018, 02:41) Так ...   Apr 25 2018, 04:45
|- - HardEgor   Цитата(manul78 @ Apr 25 2018, 03:41) По п...   Apr 25 2018, 05:14
|- - AlexandrY   Цитата(HardEgor @ Apr 25 2018, 08:14) Не ...   Apr 25 2018, 05:47
- - jcxz   Цитата(manul78 @ Apr 24 2018, 15:09) Как ...   Apr 24 2018, 12:43
- - Kabdim   При такой постановке - устроить флуд по каналам. С...   Apr 24 2018, 12:57
- - AlanDrakes   После перезапуска проверять состояние регистров пр...   Apr 24 2018, 13:03
- - AlexandrY   Цитата(manul78 @ Apr 24 2018, 15:09) Что ...   Apr 24 2018, 13:39
- - Obam   ЦитатаА может вообще - стек налетел на "кучу...   Apr 24 2018, 14:25
- - -= Александр =-   Гораздо проще и эффективнее не "скворечники...   Apr 24 2018, 14:49
- - k155la3   Еслиб Вы поподробнее расписали что-есть-девайс, в ...   Apr 24 2018, 15:43
- - twix   Цитата(manul78 @ Apr 24 2018, 13:09) Как ...   Apr 24 2018, 15:46
|- - jcxz   Цитата(twix @ Apr 24 2018, 18:46) 1. Пове...   Apr 24 2018, 16:26
|- - twix   Цитата(jcxz @ Apr 24 2018, 17:26) Я вижу ...   Apr 24 2018, 16:40
|- - jcxz   Цитата(twix @ Apr 24 2018, 19:40) А уж ва...   Apr 24 2018, 18:05
|- - AlexandrY   Цитата(jcxz @ Apr 24 2018, 21:05) Вероятн...   Apr 24 2018, 19:38
|- - twix   Цитата(jcxz @ Apr 24 2018, 19:05) 1) С че...   Apr 24 2018, 19:52
- - amiller   Кстати а сама постановка вопроса в теме предполага...   Apr 25 2018, 06:51
|- - jcxz   Цитата(amiller @ Apr 25 2018, 09:51) Кста...   Apr 25 2018, 07:09
- - manul78   Добрый день ! Спасибо всем за ответы, шутки,...   Apr 25 2018, 08:35
|- - adnega   Цитата(manul78 @ Apr 25 2018, 11:35) Дале...   Apr 25 2018, 08:45
|- - jcxz   Цитата(manul78 @ Apr 25 2018, 11:35) 5. ....   Apr 25 2018, 08:49
|- - AlexandrY   Цитата(manul78 @ Apr 25 2018, 11:35) 3. ....   Apr 25 2018, 09:43
|- - ViKo   Цитата(manul78 @ Apr 25 2018, 11:35) Дале...   Apr 25 2018, 10:25
||- - -= Александр =-   Цитата(ViKo @ Apr 25 2018, 13:25) Систему...   Apr 25 2018, 10:46
||- - AlexandrY   Цитата(-= Александр =- @ Apr 25 201...   Apr 25 2018, 10:48
|||- - AVI-crak   Цитата(AlexandrY @ Apr 25 2018, 16:48) Та...   Apr 25 2018, 16:55
|||- - AlexandrY   Цитата(AVI-crak @ Apr 25 2018, 19:55...   Apr 25 2018, 17:21
|||- - twix   Цитата(AlexandrY @ Apr 25 2018, 17:21) RA...   Apr 26 2018, 08:13
||||- - AlexandrY   Цитата(twix @ Apr 26 2018, 11:13) Справед...   Apr 26 2018, 08:35
|||- - k155la3   >> Назовите такой продвинутый редактор, в ко...   Apr 26 2018, 13:54
|||- - AlexandrY   Цитата(k155la3 @ Apr 26 2018, 16:54) ...   Apr 26 2018, 14:07
||- - HardEgor   Через SWD можно читать регистры и память и писать ...   Apr 25 2018, 10:48
|- - k155la3   . . . . а-а-а-а. В ЭТОМ смысле.Цитата(manul78 ...   Apr 26 2018, 14:13
- - Сергей Борщ   Всегда делаю отладочный вывод через свободный УАПП...   Apr 25 2018, 09:13
- - Kabdim   Да, в андроид студии такое есть...   Apr 26 2018, 07:39
- - x893   Это может означать, что плохо или спроектировано и...   Apr 29 2018, 17:52
- - Rst7   QUOTE Если 5V по пину рубит регулярно через диоды ...   May 1 2018, 09:34
- - haker_fox   QUOTE (AlexandrY @ May 2 2018, 03:05) В м...   May 2 2018, 02:18
|- - AlexandrY   Цитата(haker_fox @ May 2 2018, 05:18) Вы ...   May 2 2018, 07:51
|- - mantech   Цитата(AlexandrY @ May 2 2018, 10:51) Вот...   May 2 2018, 09:05
|- - AlexandrY   Цитата(mantech @ May 2 2018, 12:05) Это о...   May 2 2018, 10:19
|- - mantech   Цитата(AlexandrY @ May 2 2018, 13:19) Во...   May 2 2018, 10:45
|- - AlexandrY   Цитата(mantech @ May 2 2018, 13:45) Жаль,...   May 2 2018, 10:55
|- - mantech   Цитата(AlexandrY @ May 2 2018, 13:55) Но ...   May 2 2018, 11:02
|- - AlexandrY   Цитата(mantech @ May 2 2018, 14:02) Приче...   May 2 2018, 12:17
|- - mantech   Цитата(AlexandrY @ May 2 2018, 15:17) Ну ...   May 2 2018, 16:11
|- - AlexandrY   Цитата(mantech @ May 2 2018, 19:11) Это к...   May 3 2018, 05:29
|- - haker_fox   QUOTE (AlexandrY @ May 3 2018, 13:29) А т...   May 3 2018, 10:05
||- - AlexandrY   Цитата(haker_fox @ May 3 2018, 13:05) А з...   May 3 2018, 10:21
||- - mantech   Цитата(AlexandrY @ May 3 2018, 13:21) Так...   May 3 2018, 11:39
||- - haker_fox   QUOTE (AlexandrY @ May 3 2018, 18:21) Так...   May 4 2018, 01:25
|- - Kabdim   Цитата(AlexandrY @ May 3 2018, 08:29) А т...   May 3 2018, 12:19
|- - mantech   Цитата(Kabdim @ May 3 2018, 15:19) третий...   May 3 2018, 15:02
- - Kabdim   Судя по доке, беглым взглядом - ничего подобного, ...   May 3 2018, 15:41
- - yuri_t   Если говорить о fault tolerant системах (медицина,...   May 6 2018, 17:55
|- - AlexandrY   Цитата(yuri_t @ May 6 2018, 20:55) Если г...   May 7 2018, 06:54
- - haker_fox   QUOTE (yuri_t @ May 7 2018, 01:55) Что ка...   May 7 2018, 08:10
- - yuri_t   По поводу WDT - чтобы нарушить работу CPU, достато...   May 8 2018, 15:31
- - juvf   Цитата(yuri_t @ May 8 2018, 20:31) в WDT ...   May 8 2018, 15:36
2 страниц V   1 2 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 19:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.02156 секунд с 7
ELECTRONIX ©2004-2016