Перейти к содержанию
    

Тестирование кода.

Доброго времени суток всем.

Кто как тестирует код под кейлом?

Если тему создал не такм где надо, просьба к админам перенести

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что подразумеваете под фразой тестирование кода ?

Имеете ввиду отладчик или написание тестовых юнитов для вставки в код?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/26/2019 at 4:58 PM, zaicev_ekb said:

Кто как тестирует код под кейлом?

Ой, какая многогранная тема... Думаю, что если изложу своё видение на тестирование кода, хоть и пользуюсь IAR, то ничего не изменится.

Итак... Я бы не стал полагаться на один только отладчик, не важно чей он: IAR, Keil, GDB. Следует воспользоваться в одну из первых очередей теми аппаратными средствами отладки, которые предоставляет ваш микроконтроллер. Вы не указали, какой у вас. Рискну предположить, что Cortex-mx, т.к. они довольно популярны. Если я угадал, то используйте их мощный вектор прерывания HardFault. Особенно много информации он предоставляет у M3/M4 версии МК. В M0 там возможности довольно скромны. С помощью грамотно написанного обработчика (см. офицальный сайт arm.com или книги Джозефа Ю) можно понять причину сбоя МК, например, было обращение к несуществующей памяти, либо к невыровненному адресу (для m0 актуально всегда, для m3/m4 можно включить по желаюнию). Также следует ввести журнал ошибок, который в случае проблемы сохраняет минимум данных (содержимое ргистров, стека, строку/имя файла) в какую-либо энергонезависимую память. Это помогает отладить устройство, которое вроде-бы и работает, но периодически сбоит. Особенно, если это объект, например подстанция или завод. Конечно, следут дополнительно пользоваться статическими анализаторами кода. Например этим. В IAR среде есть свой статический анализатор, ловушки переполнения стека, отладчик "онлайн" C-RUN. Не знакю, как с этим в Кейл, нужно читать доку, но если подобные средства имеются, их следует исопльзовать. По-крайней мере статический анализатор. Запускается очень просто, а ошибки коварные в тексте отлавливает на ура. Мы сейчас планируем внедрить юнит-тестирование у себя на фирме. Пока всё это в процессе, тут ничего не подскажу. Но говорят, что тоже отлично помогает. Есть ещё аппаратные фишечки микроконтроллеров на базе ядра Cortex, как ETM. Это аппаратный буфер, который хранит N команд выполненных перед сбоем. Его можно просматривать через JTAG-отладчик. Но это если у вас кортекс.

Также на форуме поищите темы по отладке кода, в т.ч. мою годичной или чуть более давности. Кстати, вот она.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, haker_fox said:

Ой, какая многогранная тема...

спасибо за ссылки. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Cбасибо за развернутый ответ.

За HardFault в курсе.

Я имел в виду unit тесты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...