
Как сделать из китайского ПЛК Arduino с промышленными интерфейсами и другим "блекджеком".
Программист микроконтроллеров
Как сделать из китайского ПЛК Arduino с промышленными интерфейсами и другим "блекджеком".
До потребительского рынка наконец добрались микроконтроллеры с частотой до 1 ГГц, с открытой документацией, набором разнообразного софта, примерами полезного применения и наличием в стоках. Это семейство i.MX RT. Их называют кроссоверы, потому что они претендуют на ниши, где до недавнего времени доминировали малинки и одновременно легко могут заместить старшие 8-битники не увеличивая цены и потребления. Мир кроссоверов - малые встраиваемые системы, устройства для интернета вещей (IoT), промышленная автоматика, преобразовательная техника, роботы и т.п.
С одной стороны поначалу этот материал может показать нетипичным для хабра. Но написать отдельный материал сюда все же решил.
Причин тому три: во-первых моя история влетела в топ VC.ru, набрав почти 500 аповутов, хотя и для VC материал совершенно не типичный.
Впервые известие о том, что фирма PADAUK Tech продаёт микроконтроллеры по три цента появилось в 2018 году. Эта новость вызвала интерес и обсуждение на форумах, а затем благополучно была забыта (по крайней мере в русскоязычном комьюнити).
В статье расскажу о своём опыте освоения микроконтроллеров PADAUK. Кратко рассмотрим особенности архитектуры, средствах разработки и отладки, посмотрим что нужно учесть перед тем как использовать эти микросхемы в своих проектах. Протестируем микроконтроллер PFC161 на отладочной плате.
В данной статье хочу рассмотреть банальный и не сложный проект, а именно подсчет количества поднятых пальцев.
Все исходники можно найти на моем Github.
Код будем рассматривать с самого начала, но лучше всего ознакомиться с моими предыдущими статьями.
Подготавливаем среду и устанавливаем следующие библиотеки:
Наверное, каждый из нас задумывался о том, как было бы классно, если бы кондиционер сам включался, когда мы подходим домой. Однако для управления всеми устройствами либо используют готовое решение из облака, либо приходится заморачиваться с покупкой микрокомпьютера, чтобы умный дом не стал глупым без интернета :) Но нужен ли для этого микрокомпьютер, если наверняка в шкафу лежит запылившийся планшет или смартфон, который когда-то работал и с более требовательными приложениями?..
Это список вопросов на которые должен уметь ответить тот кто хочет программировать микроконтроллеры и заниматься разработкой электроники. Вопросы в частности взяты из технических собеседований при устройстве на работу в разные компании. Постарался отобрать только самые приближенные к практике вопросы, которые можно выделить после 10 лет insider(ского) опыта.
Если вы знаете адекватные, сложные и интересные вопросы по теме разработки на MCU, то пишите их в комментариях.
Бреши в устройствах не всегда можно закрыть, в отличие от уязвимостей в софте. Однако это не повод для фрустрации! Исследовать безопасность IoT, телефонов, планшетов, блоков управления и т. д. все равно нужно. По крайней мере, можно предупредить пользователей об уязвимостях, а также устранить недостатки в новых версиях продуктов.
Мы с командой покопались в одном из самых популярных отладчиков для микроконтроллеров — J-Link. В результате нашли уязвимости в его системе лицензирования, которые позволяют за несколько секунд превратить бюджетную версию устройства в дорогую.
Раз меня упомянул @Arnak в его большой статье "Почему СтарЛинк от Илона Маска это Скам", то нужно написать ответ. (точнее повторить и немного расширить, тот что я написал там в комментах)
1) Я не знаю, что точно обозначает "скам". Поэтому не могу тут ответить ни да, ни нет.
2) так же не хочу говорить про другие проекты Маска (а там ведь помимо СоларСити есть и крайне успешный Falcon9).
3) В комментируемой статье есть ряд фактических ошибок в части спутникового проекта СтарЛинк или спутниковой связи, но они не меняют общий смысл утверждения Автора статьи, хотя и позволяют комментаторам статьи поставить под сомнения основной вывод автора.
4) Проект СтарЛинк безусловно был начат Маском (и Гуглом) в 2014 году без понимания всей его сложности и особенностей этого рынка (первый признак этого заявка на Сеть первого этапа она же Generation 1 (в Ку банд) от 2016 года потом изменялась еще 4 (четыре!!!) раза итого до 2020 года имелось 5 версий сети с разными частотными планами, орбитами и количеством спутников
5) основная проблема сети нынешнего первого этапа StarLink Generation 1 не хватка пропускной способности. Это признал в начале декабря 2021 года сам Илон Маск , сказав что это поколение СтарЛинка "финансово слабо" (то есть по сути нерентабельно). Я лично пришел к этому выводу на основании расчетов пропускной способности сети в сентябре 2021 года .(это есть в одной из статей тут на Хабре)
6) Следующая сеть V диапазона (7000 спутников), если верить письму СпейсХ в ФСС не подходит для создания сети с коммерческим сервисом (большие потери мощности сигнала на этих частотах, нет задела по радиоборудованию для абонентскмих терминалов)) и видимо вообще не будет реализована. По крайней мере сейчас не видно ни малейшего движения в эту сторону со стороны СпейсХ.
Почти в каждом микроконтроллере с интегрированной флэш памятью есть защита от вычитывания прошивки. Это делается чтобы защитить интеллектуальную собственность, криптографические ключи и алгоритмы от злоумышленников. Микроконтроллеры серии STM32, получившие широкое распространение в последнее время, особенно часто подвергаются атакам, однако нет практического опыта или информации касательно защищенности STM32 от подобных атак доступной публично. В этой статье рассмотрим системы защиты прошивки на примере STM32f0 серии и способы их взлома.
Flash Readout Protection (RDP) ключевой компонент в защите, включенный во все линейки микроконтроллеров. Он защищает системную прошивку, сохраненную во внутренней флэш памяти от вычитывания. В зависимости от линейки, могут быть включены дополнительные механизмы, такие как Memory Protection Unit (MPU) и привилегированные / непривилегированные режимы исполнения. Вместе, эти системы призваны повысить защищенность.
Авторы статьи пришли к выводу, что серия мк STM32F0 содержит ряд уязвимостей позволяющих в лаборатории с базовым оборудованием создать установку для вычитывания прошивки. Методы могут комбинироваться для достижения наилучшего результата или позволить работать в RDP level 2.
Привет!
Представляем вашему вниманию дорожную карту для изучения языка программирования C++. Идея дорожной карты возникла после проведения десятков собеседований молодых разработчиков, которые претендовали на роль Junior Developer C++, но обладали довольно слабой подготовкой по различным причинам.
Заинтересовавшихся приглашаем к прочтению статьи, а также ознакомиться с дорожной картой.
Доброго времени суток хабровчане. Давненько я не писал, был довольно сильно занят семьей, начались тренировки и нужно каждый день возить детей. Но вот наконец-то есть время чтобы немного вспомнить про разработку ПО.
Сегодня будем выводить иконку на черной белый графический LCD — но это слишком простая задача. Потому что перед тем как её вывести, необходимо её нарисовать. Рисовать можно в Paint, потом использовать генератор, который переведет растровое изображение в код и использовать его для вывода на экран.
Но мы не ищем простых путей, поэтому иконку будем рисовать сами на С++ для CortexM4 микроконтроллера и сразу в ПЗУ, чтобы не зависеть от всех этих внешних программ, заодно и посмотрим как можно отловить ошибки в уже существующем коде (студентов), которые никто не заметил (даже PVS-Studio).
А еще некоторые компиляторы запрещают делать UB для кода исполняющегося во времени компиляции, поэтому можно отлавливать и UB. Например, мой IAR прекрасно ловит переполнения int. Но обо всем поподробнее.
Чтобы было просто — рисовать будем круг.
Язык Си - один из наиболее влиятельных языков программирования за всю историю. Он стал незаменимым инструментом разработки операционных систем, сместив с этого пьедестала языки ассемблера. Изучение Си обязательно для любого уважающего себя программиста. Этот язык любим за свою внешнюю простоту и ненавидим за беспощадность к ошибкам. Благодаря нему у нас есть ядро Linux и тысячи уязвимостей в нём же в придачу.
Попробуем понять, что же такое этот противоречивый язык Си - благословение или проклятие?