Zenembed
402 subscribers
83 photos
1 video
40 links
Новости, обзоры и анонсы одного блогера и фрилансера.

Блог: https://zenembed.com
Фриланс: https://work.zenembed.com

Вопросы, предложения: @zenls
Download Telegram
Я решил создать новую группу ElectroBases, которая станет местом для начинающих и не только. Здесь каждый сможет рассчитывать на помощь в решении своих проблем, связанных с электроникой, будь то схемотехника, программирование микроконтроллеров, разработка PCB или работа с FPGA.

Основная идея группы — создание дружелюбного и конструктивного пространства, где все чувствуют себя комфортно. Для этого будет применяться более жёсткая модерация: попытки троллинга, насмешек или любых оскорблений в адрес участников немедленно приведут к бану. Я хочу, чтобы группа стала местом, где можно спокойно задавать даже самые «глупые» вопросы и не бояться, что вас высмеют.

Честно говоря, я не знаю, насколько подобная концепция приживётся в русскоязычном сообществе, но считаю, что она точно заслуживает шанса. Если вам это кажется интересным и вы хотите стать частью сообщества, которое помогает, учит и делится опытом без токсичности, присоединяйтесь.
🔥17👍4👏2
Вероятно, многие видели этот прекрасный твит. Очевидно, что это бред — даже не стоит обсуждения. Однако мне показалось интересным другое: почему VirusTotal (по сомнительным критериям, но тем не менее) отмечает драйверы для Windows.

К сожалению, я полный ноль в вопросах, связанных с Windows, и минус один в вопросах драйверов для этой системы. К счастью, нашёлся человек, который объяснил эту потенциально непонятную ситуацию. И это оказалось крайне интересным.

Суть в том, что данный адаптер "вынужден" притворяться CD-ROM-устройством. Нюанс в том, что Windows настроена так, что автозапуск с USB-флешек невозможен, а вот с CD-ROM всё ещё работает (даже в Windows 11). Таким образом, этот свисток притворяется CD-ROM, автоматически монтируется, устанавливает драйвер, а затем размонтируется. Мне кажется, это интересный способ доставки драйверов, если вы разрабатываете устройство для Windows на микроконтроллере. Обязательно ознакомьтесь с видео — оно крайне познавательное, хотя и на английском.

Напоследок, не могу не порадоваться тому, что "эксперты" по информационной безопасности из Твиттера знают, кто кому сосал.
👍84🔥3
Кажется в этом мире произошло хоть что-то хорошее.

Производители (пока только DELL) пытаются делать легко заменяемые порты Type C в ноутах.

(Интересно подпружиненные контакты не сильно портят импеданс для Thunderbolt 5?)
🔥181
К слову о хрупкости современных технологий.

Сегодня столкнулся с прекрасным багом: в VS Code не работает вставка текста через Ctrl + V, но при этом Ctrl + Shift + V работает. Оказалось, что я не один такой «счастливчик», и это довольно распространённая проблема. Решение просто гениальное — нужно разбиндить комбинацию Ctrl + V внутри редактора.

Интересно, это проблема Linux (из-за отсутствия единого системного буфера обмена) или Wayland (где есть дополнительная надстройка с буферами внутри portals)?
👍3
Похоже, я снова еду на Embedded World. Буду в Нюрнберге с 11 по 14 число. Если окажетесь рядом – давайте пересечемся.

Для тех, кто не сможет приехать, постараюсь поделиться самым интересным. В этот раз на бейдже написал, что я не только фрилансер, но еще и блогер.
👍16🔥4
В нашем уютном эмбеддед сообществе, иногда, происходят так называемые инфобез момент. Это происходит когда люди из сферы инфобеза начинают читать документацию на аппаратные платформы и делают много дивных открытий. Приведу 2 примера.

Первое это конечно Bad USB. Люди из мира информационной безопасности открыли доки на USB и обнаружили что девай сам передаёт собственные дескрипторы на хост. А что если они будут ложные? Ни какие доводы о том, что это фича не останавливали любителей инфобеза. Второе это SD Express карты. Их сделали сильно быстрее подключи напрямую к PCIE. Однако оказалось что устройства на шине PCIE могут читать произвольные участки оперативной памяти с использованием DMA контроллера. А значит ваши данные, из оперативки, можно украсть. Пользователь, будь осторожен, не перепутай SD карту и огромную отладку, которая пихается в SD слот.

Буквально пару дней назад в Мадриде на конференции RootedCON произошёл очередной инфобез момент. На этот раз он касался ESP32. Что произошло: "специалисты" в сфере инфобеза разобрали несколько бинарников (с помощью Ghidra) которые поставляются в ESP IDF для работы с Bluetooth Controller. Они обнаружили недокументированные HCI команды (картинка 2). Поясню: HCI - это самый низкоуровневый протокол общения с контроллером BT, на данном уровне вы просто формируете команду из байтов и шлете ее в радио сопроцессор. Есть демо от ESP, с помощью которого можно посылать данные команды напрямую через UART. По сути с помощью этих скрытых команд реализован отладочный интерфейс, можно читать и писать оперативку, флеш и регистры.

Казалось бы, очень интересное исследование, однако эти люди зачем-то решили назвать это бекдором (хотя в последствии дописали, что погорячились). Очевидно что это не является бекдором, потому что команды HCI посылаются внутри контроллера. То есть, сам ESP32 должен послать себе команду на чтение памяти. Однако, если вы можете модифицировать код внутри ESP32, вы и так сможете читать и писать всю память т.к. там нет никаких TrustZone. Особенно меня забавляет демонстрация данной уязвимости на C# (последняя картинка). Они сначала загрузили демку от ESP реализующую управление HCI через UART, а потом показывают что "бекдор" можно использовать на различных языках программирования (полное демо на python).

Это было-бы очень смешно, если бы не было так грустно. Компания которая говорит о себе как о "Tarlogic, a leading company in Bluetooth standard security" делает настолько низкокачественные исследования. Крупные медиа (1, 2) просто копируют зарубежные статьи не включая мозг, и в целом подрывается доверие системе CVE.

(картинки взяты из презентации)
👍15👏3🆒1
Несколько дней назад завершилась выставка Embedded World, и в ближайшие дни я опубликую несколько постов о том, что показалось мне интересным.

ST представили новую серию микроконтроллеров U3. По их словам, это самый энергоэффективный контроллер в мире. Как мне объяснили на стенде, высокой эффективности удалось достичь благодаря качественному техпроцессу, который позволяет ядру работать при 0,65 В. Также у них была демонстрация с сравнением U3 с другими контроллерами, где очевидно, контроллер от ST был сильно лучше прочих.

Но у меня есть сомнения. Я работал с Ambiq Apollo 3, и это очень замороченный на энергопотребление контроллер. Например, его оперативная память разбита на банки, которые можно отключать для экономии энергии. Так как у нас нет информации о том, какие именно тесты проводили ST, я пока не готов верить их заявлениям на слово. В любом случае, благодарю компанию за предоставленную борду.
👍8🤔21
Китайская компания Geehy сделала очень интересный контроллер для motor control приложений - G32R501. Этот контроллер основан на Cortex-M52, но самое примечательное — он поддерживает расширение Arm Helium, которое представляет собой набор векторных инструкций, а также собственный "Zidian mathematical calculation extended instruction set", разработанный Geehy.

Последнее особенно интересно, так как оно реализует sin, cos, tan как расширенные инструкции, а не как отдельный периферийный модуль, как Cordic в STM32G4. К сожалению документация по данному расширению доступна только на китайском, и там нет информации про их длительность в тактах. Придется когда нибудь проверить экспериментально, что не так уж и сложно учитывая что мне была предоставлена борда для экспериментов.
🔥10👍31
Одна из моих любимых компаний, продающих мне бесполезную хрень — M5STACK, представила новую отладочную плату. В этот раз она основана на ESP32P4 и выполнена в формате планшета, причём с возможностью подключения клавиатуры.

Я не знаю зачем, но я точно должен это купить.
🔥7😁5👎1
Всем привет! (Вероятно) вы могли задаться вопросом, куда я пропал и где же наигоднейший контент. Сегодня история будет именно об этом.

Учебные заведения в Германии гораздо более открытые, чем в России. Например, вы можете прийти в любую библиотеку и почитать любые книги, лежащие на полках. Единственное, их нельзя брать с собой, если вы не студент. Также вы можете стать "guest student" и посещать 1–2 предмета в семестре, и даже поучаствовать в сдаче экзамена. Именно в это я и ввязался.

Стать участником довольно просто: нужно найти нужный формуляр на сайте университета, подписать его у профессора (он не должен быть против), отправить обратно, и долго ждать. После этого вам дадут логин и пароль от личного кабинета студента, и можно официально учиться.

Я нашёл курс по проектированию RISC-V и цифровой схемотехнике на английском, потому что это именно то, что я преподавал в РФ, и было интересно посмотреть на разницу. Однако меня ждала подстава: то, что курс на английском, ничего не значит - семинары всё равно проходили на немецком. А ещё я залез немного глубже, чем следовало бы: через 2 недели мне нужно сдавать тест, а через 4 - презентовать групповой проект.

Вот с последним у меня и возникли проблемы. Я работаю в группе с тремя студентами. Идея такая - передача информации с помощью лазера через воздух. Конечно же, я взял на себя часть со схемотехникой, ведь я сеньор-помидор. Оказалось, что достичь 10 Mbit на 50-центовом ноунейм-лазере с Amazon и самом дешёвом пин-диоде - практически нереально. В итоге я потратил кучу времени на попытки заставить это работать, и даже не успел поиграться с FPGA и RISC-V. Кстати, кустарный прототип можно посмотреть на фото в посте.

В общем, данное приключение подходит к концу. Думаю, я ещё напишу, чем всё закончилось с экзаменом и проектом. Но главное - жизнь становится стабильнее, а значит, сейчас критическая вероятность появления нового годного контента.
🔥31🏆4👍2
Как-то совсем незаметно прошло очень важное изменение от ST. Теперь в CubeMX 6.15.0 есть полная поддержка CMake toolchain. То есть теперь при выборе Toolchain/IDE -> CMake ниже появится новый пункт Default Compiler/Linker, и там можно выбрать между GCC и Starm-Clang.

Для меня это крайне хорошая новость, т.к. теперь можно использовать всю инфраструктуру clang без необходимости думать о том, как подружить clangd со специфическими GCC-макросами. Наконец-то на контроллерах можно работать с единой экосистемой.

Я не успел ещё протестировать Starm-Clang, зато в старом конфиге (с GCC), что-то идет не по плану и обновление ломает генерацию кода. Если воспользоваться инструкцией из моей статьи, то код просто не будет собираться, с ошибками вроде:

error: implicit declaration of function ‘__LDREXW’
error: implicit declaration of function ‘__STREXW’


Это происходит потому, что в файле CMakeLists.txt не появилась очень нужная там строка:

# Include toolchain file
include("cmake/gcc-arm-none-eabi.cmake")


14 и 15 строки содержат два \n - как будто эти строки должны были появиться между ними, но что-то пошло не так.

В любом случае, проблему наверняка скоро поправят. А я думаю о том, чтобы написать третью статью из серии про работу с STM - в этот раз с акцентом на CMake toolchain и более глубокой настройкой clangd и clang-format.
11👍10