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

 
 
> как тестировать программу микроконтроллера
nckkm
сообщение Nov 26 2013, 12:00
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 13-04-10
Пользователь №: 56 623



Собственно вопрос - пишу программу для микроконтроллера STM32, но как проверить все ли правильно работает?
Как автоматизировать и симулировать проверку всех заявленных функций контроллера?

Я почему спрашиваю, я долго работал с ПЛИСами и там с этим делом было более менее все понятно.

В ПЛИС сам проект описывается на Verilog, потом к нему дописывается Testbench - это вторая программа на том же Verilog, которая симулирует все внешние воздействия / сигналы на микросхему. Так же, Testbench контролирует, что разрабатываемая микросхема выдает правильные отклики и вообще правильные последовательности сигналов.
Таким образом, с помощью Verilog можно абсолютно точно посмотреть что и как происходит внутри любого блока проекта.
Я так даже симулировал от начала до конца запуск ядра Linux в ПЛИС и просматривал сигналы обращения к SDRAM, и прочие..

А как все это делается с микроконтроллерами? И делается ли вообще?
В принципе, я понимаю, можно использовать статический анализ с инструментами типа cppcheck, или писать Unit Test, но кажется мне это все не совсем то, что нужно.. Ну вот какой unit test можно написать для обработчика прерываний или функции ининциализации контроллера DMA?

А если у меня контроллер управляет медленными процессами типа включил вентилятор, выждал 10 секунд, включил печку.. Как тестировать такие функции устройства?

Возможно тема обсуждалась, извините если так, не нашел поиском.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lekintr
сообщение Nov 27 2013, 13:04
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-10-13
Пользователь №: 78 684



Ну не знаю, у меня вопрос в отладке микроконтроллеров всегда решался довольно просто и топорно.
Берем подпрограмму, запускаем ее по циклу на длительное время и долбим снаружи всеми возможными данными, которая она обязана сожрать. Если зависла, вылетела, отожрала память, порушился стек, разбираемся. Не вылетела, идем к следующему модулю.
Отличие от ПЛИС, у микроконтроллеров в том, на мой взгляд, что они с одной стороны более "тянучие" на баги, то есть влетает он в баг легко, но и вылетает также легко. А вот ПЛИС, влетае в баг тяжело, благодаря жесткой симуляции, но уж если влетела, вытащить очень трудно.
ТС могу повторить то, что тут уже озвучил сам ТС. Отлаживайте по кускам. Если подпрограмма не зависает от данных в тестовом модуле, она не зависнет и в связке с остальными устройствами. Микроконтроллеры скорее страдают от аппаратных чудес, которые устраивают им разработчики. Кривые клоки, плохое питание, порушенные входные сигналы, испорченные уровни и так далее. Соответственно микропроцессор зависает в 99% случаев не то того, что программа плохо написана, а от того, например, что разработчики забыли подтянуть выводы JTAG и вообще бросили их как попало, ну и там кондесаторы на питанию поставили не те и не там. Вот и начинается поле чудес...

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

Сообщение отредактировал lekintr - Nov 27 2013, 13:06
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 27 2013, 14:22
Сообщение #3


Ally
******

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



Цитата(lekintr @ Nov 27 2013, 15:04) *
Если подпрограмма не зависает от данных в тестовом модуле, она не зависнет и в связке с остальными устройствами.

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

Глючная программа в 99% случаев изменяет свое поведение при переносе на целевую платформу, целевой компилятор и целевую область памяти.


Цитата(lekintr @ Nov 27 2013, 15:04) *
Про ОСь, как необходимый инструмент в отладке на мой взгляд чушь конкретная. Имеет смысл только в пределах данной конкретной темы.
Ось отдельно, отладка отдельно. На мой взгляд опять же, ось как существо жрущее несравнимо больше ресурсов менее надежна, чем более простая самописная программа. Но это уже другая тема...


Здесь искажен смысл первоначальной мысли.
Ось (вернее RTOS) предлагалась как единственный надежный носитель таких сервисов как логи, сохранение логов, апгрейда, перехвата исключений, контроля загруженности процессора и проч.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- nckkm   как тестировать программу микроконтроллера   Nov 26 2013, 12:00
- - Falkon_99   вопрос почти риторический и многогранный, для этог...   Nov 26 2013, 12:08
- - Tahoe   Цитата(nckkm @ Nov 26 2013, 16:00) В ПЛИС...   Nov 26 2013, 13:26
- - HardEgor   Цитата(nckkm @ Nov 26 2013, 19:00) Собств...   Nov 26 2013, 14:58
- - mempfis_   Цитата(nckkm @ Nov 26 2013, 15:00) Собств...   Nov 26 2013, 16:01
|- - nckkm   Цитата(mempfis_ @ Nov 26 2013, 19:01) Про...   Nov 26 2013, 17:51
|- - scifi   Цитата(nckkm @ Nov 26 2013, 21:51) Вот эт...   Nov 26 2013, 18:14
|- - AlexandrY   Цитата(nckkm @ Nov 26 2013, 19:51) Чисто ...   Nov 26 2013, 22:04
|- - Golikov A.   Цитата(AlexandrY @ Nov 27 2013, 02:04) Ны...   Nov 27 2013, 05:10
|- - AlexandrY   Цитата(Golikov A. @ Nov 27 2013, 07:10) т...   Nov 27 2013, 06:29
- - Aner   Для профессиональных разработок на процах пишутся ...   Nov 26 2013, 17:33
- - Golikov A.   Ну в целом покрыть всю программу тестовыми модулям...   Nov 26 2013, 20:10
- - Aner   AlexandrY думаю вы напугали теоретиков и им подобн...   Nov 27 2013, 09:12
|- - AlexandrY   Цитата(Aner @ Nov 27 2013, 11:12) Но все ...   Nov 27 2013, 12:02
|- - Lagman   Цитата(AlexandrY @ Nov 27 2013, 16:02) То...   Nov 27 2013, 13:30
|- - lekintr   Все это не менее надежно можно написать и без RTOS...   Nov 27 2013, 14:56
|- - AlexandrY   Цитата(lekintr @ Nov 27 2013, 16:56) Все ...   Nov 27 2013, 15:46
- - Golikov A.   ОСЬ не панацея ни разу. Куча программ без операцио...   Nov 27 2013, 15:57
- - ViKo   Вот Cppcheck - буквально сегодня набрел. Не тестир...   Nov 27 2013, 17:05


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

 


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


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