zaicev_ekb 0 26 сентября, 2019 Опубликовано 26 сентября, 2019 · Жалоба Доброго времени суток всем. Кто как тестирует код под кейлом? Если тему создал не такм где надо, просьба к админам перенести Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Droid 77 0 5 октября, 2019 Опубликовано 5 октября, 2019 · Жалоба Что подразумеваете под фразой тестирование кода ? Имеете ввиду отладчик или написание тестовых юнитов для вставки в код? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 5 октября, 2019 Опубликовано 5 октября, 2019 · Жалоба 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-отладчик. Но это если у вас кортекс. Также на форуме поищите темы по отладке кода, в т.ч. мою годичной или чуть более давности. Кстати, вот она. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 5 октября, 2019 Опубликовано 5 октября, 2019 · Жалоба 6 hours ago, haker_fox said: Ой, какая многогранная тема... спасибо за ссылки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zaicev_ekb 0 7 октября, 2019 Опубликовано 7 октября, 2019 · Жалоба Cбасибо за развернутый ответ. За HardFault в курсе. Я имел в виду unit тесты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться