Типичный разработчик в среднем тратит около 40% своего программного обеспечения для отладки времени. Это может привести к увеличению затрат и времени выхода на рынок, поскольку разработчики сталкиваются с системными сложностями и пытаются понять, как различные программные компоненты взаимодействуют в своей системе. Есть несколько инструментов, которые я использую в своем собственном цикле разработки, который я нашел незаменимым. Они помогают не просто понять программное обеспечение, но и уменьшить мои затраты и время выхода на рынок. Рассмотрим несколько таких инструментов:
Инструмент № 1-A Отслеживаемый трассировкой отладчик
Первым инструментом, который, как я считаю, имеет решающее значение для панели инструментов, является отладчик с поддержкой трассировки. Независимо от того, является ли это ARM Keil ULINKplus или j-Trace, эти инструменты предоставляют разработчику возможность доступа к функциям трассировки трассировки и памяти встроенной цели. Эти высокопроизводительные отладчики могут быть сопряжены с несколькими различными инструментами визуализации, которые могут предоставить разработчикам представление о том, как их система ведет себя. Хотя инструменты высокого класса не всегда могут быть необходимы для использования этих инструментов визуализации, я обнаружил, что их вспомогательные функции, такие как неограниченные точки останова, запасные контакты GPIO и даже мониторинг энергии, могут быть незаменимыми.
Инструмент № 2 — измеритель Micrium μC
(Источник изображения: ARM Keil & SEGGER |
Микрометрический измерительный прибор Micrium может использоваться для визуализации переменных и данных в режиме реального времени во встроенном приложении. Разработчики могут настраивать собственный собственный пользовательский интерфейс, который наилучшим образом отвечает их потребностям, чтобы контролировать, как работает их система. Я более новый пользователь Micrium μC Probe, потому что изначально я думал, что его можно использовать только с различными версиями μC OS. Недавно я узнал, что μC Probe может использоваться практически для любой встроенной системы, где отладчик способен одновременно получать доступ к памяти микроконтроллера. Эта возможность дает инструменту возможность читать память неинтрузивным способом, который не содержит накладных расходов, если разработчик использует J-Link или j-Trace.
(источник изображения: Micrium) |
Инструмент № 3 — Персепио-трассификатор
За последние несколько лет я очень любил использовать Percepio Tracealyzer для отслеживания встроенного приложения и визуализации того, как он себя ведет. Tracealyzer может быть интегрирован в приложение на основе RTOS для записи событий, которые происходят в приложении, таких как переключатели контекста задач, прерывания, блокировки и разблокировки мьютексов и многие другие события, которые происходят. Эти события могут быть записаны одним выстрелом вокруг конкретной проблемной области в коде или могут передаваться в реальном времени и просматриваться на главном компьютере. После того, как трассировка будет записана, разработчик может затем использовать более 30 представлений для просмотра выполнения программы, времени выполнения задач и событий, потока связи и многих других аспектов приложения. Обычно я использую этот инструмент для отладки приложения, но я также буду использовать его для отслеживания кода примера, стеков программного обеспечения и другого кода, который я хочу понять.
(Источник изображения: Персепио) |
Инструмент № 4 — вид системы SEGGER
SEGGER System View — еще один инструмент визуализации трассировки, который можно использовать для просмотра того, что делает приложение. System View записывает события RTOS и отображает несколько полезных фрагментов информации, таких как время задачи, визуализация задачи и загрузка процессора. Инструмент содержит всего четыре вида, но этого достаточно, чтобы получить полезную информацию о том, как работает приложение, что отлично подходит для бесплатного инструмента.
(Источник изображения: SEGGER) |
Инструмент № 5 — ОГОН СЕГГЕР
Отслеживание инструкций может стать важным инструментом для разработчиков встроенных программ, которые заинтересованы в обеспечении того, чтобы их тестовые примеры получали 100% -ный охват своей базы кода. Свободные разработчики инструментов могут использовать в сочетании с J-Trace SEGGERs Ozone. Озон позволяет разработчикам видеть, насколько хорош их охват кода, позволяя им контролировать выполнение функций и видеть каждую инструкцию, которая была выполнена в коде. Есть много деталей, которые разработчики могут извлечь из своего приложения с помощью этого инструмента.
(Источник изображения: SEGGER) |
Выводы
В начале моей карьеры мне всегда было нелегко, что я не мог понять, что на самом деле происходит, когда моя система выполнила свое программное обеспечение. Конечно, я мог бы взглянуть на внешнее поведение и добавить несколько контрольных сообщений, чтобы в некоторой степени проверить поведение. Но я никогда не мог видеть все. Если вы не видите, что делает система, это затрудняет отладку и проверку программного обеспечения. Если вы видите, что происходит, разработчики могут прийти к решениям гораздо быстрее, что в конце дня экономит время и деньги. Эти приложения являются примерами инструментов, которые я использую. Разумеется, для разных цепей инструментов могут быть другие. Я надеюсь, что вы будете исследовать, какие инструменты подходят в вашей собственной среде, которые предоставляют эти возможности.
Якоб Бенинго является консультантом по встроенному программному обеспечению, который в настоящее время работает с клиентами в более чем десятке стран, чтобы резко преобразовать свой бизнес, улучшив качество, стоимость и время выхода на рынок. Он опубликовал более 200 статей по разработке встроенных технологий разработки программного обеспечения, является востребованным спикером и техническим тренером и имеет три степени, которые включают в себя магистров инженерных наук из Мичиганского университета. Не стесняйтесь связаться с ним по адресу jacob@beningo.com, на его веб-сайте www.beningo.com/ и зарегистрировать его ежемесячный Embedded Bytes Newsletter .
|