Jump to content

    
Sign in to follow this  
zaicev_ekb

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites
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-отладчик. Но это если у вас кортекс.

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this