16 Способов Отладки и Диагностики FirmWare

В этом тексте перечислены основные способы отлаживать и диагностировать проекты на микроконтроллерах.
Для аналогии буду каждому методу отладки метафорично приводить в соответствие аналогию из медицины.
Учимся программировать микроконтроллеры
В этом тексте перечислены основные способы отлаживать и диагностировать проекты на микроконтроллерах.
Для аналогии буду каждому методу отладки метафорично приводить в соответствие аналогию из медицины.
Изначально вторая главазадумывалась только, как шпаргалка по работе из оперативной памяти, но делать и разбираться в этом не очень трудно. Основная "запара" может настигнуть несведущего именно при работе с прерываниями. Собсна, решено объединить.
Я всей душой люблю малоизвестных производителей. Зачастую их продукты имеют фичи, недоступные у их более именитых конкурентов, по очень интересной цене (однажды меня очень выручило наличие встроенной в SoC полуамперной зарядки для аккумулятора и нескольких LDO, способных запитать всю периферию). Кроме того, сроки и условия поставки какого-нибудь Nanjing Qinheng Microelectronics могут приятно удивить разработчиков, привыкших за последние два ковидных года к конскому ценнику и 52+ неделям доставки на ST, TI, Nordic и прочие привычные вещи. Логистика становится особенно приятной, если массовое производство планируется в Китае и на площадке присутствует ваша китайская команда, способная разрулить возникающие проблемы. Да и доставка из Шеньчженя в Шеньчжень проще и предсказуемей, чем со склада глобального дистрибьютора и растаможка в России.
В субботу 13 ноября с 12.00 по Москве пройдет следующая сессия Сколковской школы синтеза цифровых схем, в режиме онлайн. По плану на ней должны были быть упражнения на FPGA плате с последовательностной логикой. Однако мы решили изменить план и переставить на эту дату занятие по архитектуре RISC-V. Это занятие было изначально запланировано 11 декабря. Занятие по последовательностной логике будет передвинуто на 20 ноября. Почему мы решили так сделать - см. обьяснение через три абзаца.
Занятие по RISC-V проведет проектировщик российского микропроцессорного ядра Никита Поляков из компании Syntacore. В Syntacore Никита перешел из компании МЦСТ где он проектировал процессор Эльбрус.
Занятие будет состоять из лекции с одновременными упражнениями на симуляторе RARS. RARS моделирует процессор на уровне архитектуры (системы команд, видимых программисту), в отличие от симулятора Icarus Verilog, который мы обсуждали в предыдущей заметке и который моделирует на уровне регистровых передач / микроархитектуры (внутреннего устройства схемы процессора). Разработчику процессора нужно уметь пользоваться симуляторами обеих типов.
У RARS есть три кнопки - запустить, ассемблировать и выполнить шаг. В конце занятия вы будете уметь программировать на ассемблере, даже если раньше этого никогда не делали. В этой заметке мы расскажем, как установить симулятор и запустить простую программу на ассемблере. Потом в следующей заметке я напишу, что такого особенного есть в архитектуре RISC-V и почему мы выбрали для семинара именно ее, а не ARM, x86/64, MIPS, AVR, SPARC, Эльбрус, Z80, 6502, PDP-11 или еще что-нибудь другое.
Решение по созданию недорогого варианта для открывания шлагбаума. После нескольких месяцев тестирования в посёлке были выявлены проблемы, исправлены ошибки. Статья повторяет первую, но основана на практическом опыте, в ней много фотографий, ссылки на исходники. Информации должно быть достаточно, чтобы каждый смог это быстро повторить.
Здесь рассматривается технология отладки платы контроллера резервного питания и его программного обеспечения . Используются: адаптер SWD, осциллограф, VT100 терминал через UART, движок FreeMaster, экспорт и анализ в MATLAB. Дан пример реализации регулируемого источника напряжения. Заключительный тюнинг платы.
Допустим, вы сделали свое собственное устройство «Умного дома» и хотите интегрировать его в платформу домашней автоматизации Samsung SmartThings. Тогда вы сможете включить его в общую экосистему, поддерживающую множество устройств от разных производителей. Пользователи вашего устройства смогут инициализировать его удобным образом, задавать сценарии автоматизации, взаимодействовать с ним через мобильное приложение.
Я покажу, как это сделать, на примере самодельного устройства «Умный чайник». На функциональном уровне оно повторяет существующие на рынке устройства такого типа. Конечно, сам «чайник» мы собирать не будем, сделаем только очень простой прототип. Мой пример будет иллюстрировать в основном программный уровень. На железном уровне, я обошелся минимумом периферийных устройств, а часть из них реализовал как “заглушки”. Чтобы вы могли повторить все описанные в статье шаги самостоятельно, в качестве целевой платформы я выбрал плату микроконтроллера ESP8266 - одну из самых доступных и популярных на рынке. Данный пример я сделал в качестве стажировки в Исследовательском центре Samsung, и он будет полезен всем, кто еще только начинает заниматься разработкой умных устройств.
Как известно, каждый пьезоизлучатель уникален и производится со скрытым талантом. Наша задача его увидеть. Так получилось, что у моего пьезоизлучателя врожденный талант к музыке. Голосом он, конечно, не вышел, пассивный, маломощный, на АЧХ вообще лучше не смотреть, зато желания воспроизводить музыку хоть отбавляй. Воспроизведение мелодии понадобилось для одного из проектов. Задача простая: действия пользователя должны сопровождаться звуками. Если нажатие кнопки это стандартный «БИП», то разряд батареи уже «ТУРУРУМ», включение «ТУМТУМ-ТУТУ» и т.д. Оказалось, что звуки в моей голове и звуки, получаемые на пьезоизлучателе совершенно не похожи друг на друга. Пришлось немного углубиться в тему.
Решил как-то отец собрать для дачи некое устройство, в котором, по его заверению, можно будет варить сыр. Устройство сие вид имело могучий и представляло из себя железный короб, подозрительно напоминающий старую стиральную машинку. Внутрь короба (все также добротно!) были вмонтированы три тэна по 1700 Ватт каждый. В общем сыра должно было хватить на небольшой посёлок.
Изделие (внешне выглядящее как что-то из безумного макса), должно быть весьма технологичным и поддерживать заданную температуру в максимально узких пределах. Для этого рядом появилась ещё одна коробка с симисторами, к которым подключались ТЭНы, схема, выдающая высокий уровень при переходе синусоиды через ноль, а у меня появилось задание каким-то образом сделать так, что-бы все это выполняло изначальную задачу.
Итак нам нужно выходить на заданную величину и поддерживать её, с этим должен справляться алгоритм ПИД регулятора, глубоко вдаваться в его работу не буду, скажу лишь что он получает на вход текущую ошибку, а на выходе выдает какое-то число в заданных пределах. У меня таким числом будет необходимая мощность выдаваемая на ТЭН. Для начала разберемся с мощностью.
Здравствуйте! Меня зовут Александр, я работаю инженером-программистом микроконтроллеров.
Пишу на С/С++, причем предпочитаю плюсы, ибо верую в их эволюционную неизбежность в embedded.
Мир встроенного ПО, язык С++ динамично развиваются, поэтому разработчикам важно не отставать и поддерживать свои скиллы и наработки актуальными моменту.
Я стараюсь следовать этому очевидному посылу, благо небожители ведущие С++ программисты и консультанты щедро делятся своим опытом и идеями на разных площадках (например здесь, или здесь).
Некоторое время назад я посмотрел мощный доклад Сергея Федорова про построение конечного автомата с таблицей переходов на шаблонах.
В этом посте я хочу поделиться с вами программой написанной мной для разработки ПО под микроконтроллеры по стандарту близкому к AUTOSAR.
Приветствую, Habr! В данной статье рассмотрен процесс разработки Wireless Sensor Network (WSN) шлюза для передачи данных от беспроводных датчиков на сервер через мобильную связь. В качестве начинки будем использовать Sub-1GHz SoC CC1310 и программируемый модуль WP8548 от Sierra Wireless. AirPrime WP8548 - это промышленный модуль LGA-239. Его беспроводной модем обеспечивает передачу данных в сетях HSPA, WCDMA, EDGE и GPRS, а также прием GPS сигнала.
Пришла зима, короткий день, домашней пальме мало света. Нужно организовать подсветку. Готовую лампу покупать как-то неловко, да и надо ж чем-то заняться долгими зимними вечерами. Поехали ;)
Номинант на премию «БОМЖ-ПРОЕКТ ГОДА» 2020
Весной 2020, сидя дома на карантине (да ещё и без работы), решил взять небольшую халтурку в виде изготовления настенного светильника для фаната Тёмного рыцаря. Что из этого получилось — читайте под катом.
P.S. Осторожно, много картинок!
Здравствуйте, уважаемые читатели. В своих разработках на микроконтроллерах STM32, для вывода осмысленной информации, я пользуюсь OLED дисплеями на чипе SSD1306. В последний раз пришел ко мне 1,3" дисплей по демократичной цене — около 200руб. Первое, что бросилось в глаза — надпись SH1106 вместо SSD1306, поиск в интернете прояснил, что это практически тоже самое, только оставлен единственный страничный режим адресации, да и тот ограничен одной строкой. Как с ним работать я и постараюсь объяснить вам в этой публикации.
Где-то с год назад мне стало не хватать возможностей синей пилюли (STM32F103) и была заказана китайская плата разработчика STM32F407VE. Для отладки, часто, двух светодиодов не хватает, поэтому в каждом проекте для вывода информации подключаю OLED SSD1306 по шине I2C, в который влюбился еще со времен Arduino. Так как графику я на него не вывожу, в основном числа и текст, а размер готовых библиотек и их содержание поражало мое воображение, была написана небольшая библиотечка, которую я немного адаптировал под SH1106 и хочу поделится с вами процессом ее написания. Дисплей приехал 7pin SPI:
Плата разработчика у меня такая, но ничего вам не помешает подключить к другой, хоть на STM32F103, для чего HAL и был придуман (разве не так ?):