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

 
 
> Как поимать "баг" в 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
8 страниц V  « < 4 5 6 7 8 >  
Start new topic
Ответов (75 - 89)
one_eight_seven
сообщение May 1 2018, 20:54
Сообщение #76


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата(mantech @ May 1 2018, 22:25) *
Это для коллекции или тут какой-то практический смысл, но что-то не могу придумать такового biggrin.gif

Go to the top of the page
 
+Quote Post
haker_fox
сообщение May 2 2018, 02:18
Сообщение #77


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (AlexandrY @ May 2 2018, 03:05) *
В моем тулбоксе около 10 разных файловых систем.
Большинство я тестировал. Тесты охватывают основные сервисы файловой системы.

Вы тестируете какими-то скриптами? Они выполняются на платформе конечного устройства, или на внешнем процессоре (например на ПК)? Если так, то как они получают доступ к ФС устройства?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 2 2018, 07:51
Сообщение #78


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(haker_fox @ May 2 2018, 05:18) *
Вы тестируете какими-то скриптами? Они выполняются на платформе конечного устройства, или на внешнем процессоре (например на ПК)? Если так, то как они получают доступ к ФС устройства?

Вот один из примеров - https://geektimes.com/post/274416/

Go to the top of the page
 
+Quote Post
mantech
сообщение May 2 2018, 09:05
Сообщение #79


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AlexandrY @ May 2 2018, 10:51) *
Вот один из примеров - https://geektimes.com/post/274416/

Это обычные тесты скорости, надежность и "безглючность" ФС не тестируется.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 2 2018, 10:19
Сообщение #80


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(mantech @ May 2 2018, 12:05) *
Это обычные тесты скорости, надежность и "безглючность" ФС не тестируется.

Во! И это только тесты скорости.
А теперь покажте мне героя который еще добавит сюда еще тесты надежности и безглючности.
Go to the top of the page
 
+Quote Post
mantech
сообщение May 2 2018, 10:45
Сообщение #81


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AlexandrY @ May 2 2018, 13:19) *
Во! И это только тесты скорости.
А теперь покажте мне героя который еще добавит сюда еще тесты надежности и безглючности.


Жаль, что потер уже свой проект, в котором были тесты на чтение\запись в течении суток, работу ФС в режимах внезапного удаления карты, появления бедов, и пр. ошибок в интерфейсе, причем проверялось это в то время на жаре и холоде... По результатам выявилось несколько проблем в модуле ФС и драйвере карты. Прошло 5 лет и я уже подзабыл что да как... laughing.gif
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 2 2018, 10:55
Сообщение #82


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(mantech @ May 2 2018, 13:45) *
Жаль, что потер уже свой проект, в котором были тесты на чтение\запись в течении суток, работу ФС в режимах внезапного удаления карты, появления бедов, и пр. ошибок в интерфейсе, причем проверялось это в то время на жаре и холоде... По результатам выявилось несколько проблем в модуле ФС и драйвере карты. Прошло 5 лет и я уже подзабыл что да как... laughing.gif

Но опять же при чем тут температура, внезапное удаление карты и течение суток.
Вопрос стоит как проверить на программные ошибки?
Тестировать сами SD карты можно и на компьютере. С этим как раз проблем нет.
Go to the top of the page
 
+Quote Post
mantech
сообщение May 2 2018, 11:02
Сообщение #83


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AlexandrY @ May 2 2018, 13:55) *
Но опять же при чем тут температура, внезапное удаление карты и течение суток.
Вопрос стоит как проверить на программные ошибки?
Тестировать сами SD карты можно и на компьютере. С этим как раз проблем нет.


Причем тут сд-карты, проверялось, что будет, если внезапно удалить карту во время операций инита, чтения или записи. При первых проверках выяснилось, что драйвер зависает, ФС работает неадекватно, при посл. вставлении карты и пр... Температура - это как доп. испытание МК, карты и платы...
В подавляющем большинстве демок и проектов такое тестирование не проводится.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 2 2018, 12:17
Сообщение #84


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(mantech @ May 2 2018, 14:02) *
Причем тут сд-карты, проверялось, что будет, если внезапно удалить карту во время операций инита, чтения или записи. При первых проверках выяснилось, что драйвер зависает, ФС работает неадекватно, при посл. вставлении карты и пр... Температура - это как доп. испытание МК, карты и платы...
В подавляющем большинстве демок и проектов такое тестирование не проводится.

Ну и при чем тут тестирование все таки?
Это обычная итерационная процедура разработки.
Файловая сложная, вы ее до конца конечно не изучили и методом тыка вот так добивались работы при извлечении карты.
Нормальный подход, сам так делаю.
Но это не то тестирование, которое тут воспевают.
Go to the top of the page
 
+Quote Post
mantech
сообщение May 2 2018, 16:11
Сообщение #85


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AlexandrY @ May 2 2018, 15:17) *
Ну и при чем тут тестирование все таки?

Но это не то тестирование, которое тут воспевают.


Это как-раз и называется "нагрузочное тестирование"... К сожалению большинство кодеров, которые делают демки для соотв. камней этой штукой не заморачиваются от слова вообще. sad.gif
Go to the top of the page
 
+Quote Post
juvf
сообщение May 2 2018, 17:50
Сообщение #86


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(mantech @ May 1 2018, 16:25) *
... дребезг в цепях питания и т.п. с которыми собака хорошо справляется, поэтому никогда от нее не отказываюсь
какой ужас
Go to the top of the page
 
+Quote Post
mantech
сообщение May 2 2018, 17:59
Сообщение #87


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(juvf @ May 2 2018, 20:50) *
какой ужас


Что делать, далеко не всех клиентов заботит качественное питание аппаратуры и качество соединителей, а приказать им я не могу, вот и стараюсь, чтоб хотя бы с моей стороны все четко отрабатывалось.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 3 2018, 05:29
Сообщение #88


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(mantech @ May 2 2018, 19:11) *
Это как-раз и называется "нагрузочное тестирование"... К сожалению большинство кодеров, которые делают демки для соотв. камней этой штукой не заморачиваются от слова вообще. sad.gif

Нет это я бы назвал "перегрузочное" тестирование.
Т.е. тестирование чего угодно: там климатики, износа карты, каких то экстремальных механических вмешательств, даже может влияние ядерного взрыва,
но только не того что реально помогает выявить глубокие баги.

Цитата(mantech @ May 2 2018, 20:59) *
Что делать, далеко не всех клиентов заботит качественное питание аппаратуры и качество соединителей, а приказать им я не могу, вот и стараюсь, чтоб хотя бы с моей стороны все четко отрабатывалось.

А теперь догадайтесь зачем все таки 4-е! WDT ставят, причем оконных.
За сбои питания отвечает не WDT, а brownout детектор.
А если вам нужно привлекать к этому WDT, то у вас точно не все в порядке с тестированием на программные зависания.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение May 3 2018, 10:05
Сообщение #89


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (AlexandrY @ May 3 2018, 13:29) *
А теперь догадайтесь зачем все таки 4-е! WDT ставят, причем оконных.

А зачем? Я полагаю, что WDT это абсолютно независимый (ну кроме питания, одного корпуса) счётчик от процессора и его периферии. Который в любом случае сбросит процессор, если за время таймаута, не будет сброшен. Для повышения надёжности? Или каскадирования? Т.е. сработал 1-й пёс - предупреждение, второй - серьёзное предупреждение и т.п.? Или на каждое ядро свой пёс?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 3 2018, 10:21
Сообщение #90


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(haker_fox @ May 3 2018, 13:05) *
А зачем? Я полагаю, что WDT это абсолютно независимый (ну кроме питания, одного корпуса) счётчик от процессора и его периферии. Который в любом случае сбросит процессор, если за время таймаута, не будет сброшен. Для повышения надёжности? Или каскадирования? Т.е. сработал 1-й пёс - предупреждение, второй - серьёзное предупреждение и т.п.? Или на каждое ядро свой пёс?

Так для контроля реалтайма. Не на ядро, а на задачу.
Go to the top of the page
 
+Quote Post

8 страниц V  « < 4 5 6 7 8 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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