Пользователь
Аппаратный ключ шифрования за 3$ — возможно ли это?
Итоговый результат — ключ размером с флешку
Повсеместное шифрование и, как следствие, обилие ключей заставляет задуматься об их надежном хранении. Хранение ключей на внешних устройствах, откуда они не могут быть скопированы, уже давно считается хорошей практикой. Я расскажу о том, как за 3$ и 2 часа сделать такой девайс.
100 ватт по USB или как работает Power Delivery
Итак, кратко – основные пункты:
- USB PD определяет 5 стандартных профилей по электропитанию – до 5V@2А, до 12V@1.5А, до 12V@3А, до 12-20V@3А и до 12-20V@4.75-5А
- Кабели и порты для Power Delivery сертифицируются и имеют дополнительные пины в разьеме
- Тип кабеля и его соответствие профилю определяются автоматически через дополнительные пины и определение типа USB коннектора (микро, стандарт, A, B и т.д.)
- Обычные USB кабели (не Power Delivery) сертифицируются только по первому профилю до 5V@2A
- При подключении распределяются роли, между тем кто дает ток (Source / Источник ) и кто потребляет (Sink / Приемник)
- Источник и Приемник обмениваются сообщениями по специальному протоколу, который работает параллельно традиционному USB
- В качестве физического носителя протокол использует пару – VBus / GND. Именно поэтому Power Delivery не зависит от основного USB протокола и обратно совместим с USB 2.0 и 3.0
- Используя сообщения, источник и приемник могут в любой момент времени меняться ролями, изменять силу тока и/или напряжение, уходить в спячку или просыпаться, и т.д.
- По желанию устройства могут поддерживать управление PD через традиционные USB запросы, дескрипторы и т.д.
Под катом — детали.
Музыкальная теория для гиков
Я ничего не знаю о музыке. Я знаю, что в музыке есть знаковые обозначения, но иногда у них вырастают закорючки. Я знаю, что увеличение октавы удваивает высоту звука. Я знаю, что для того, чтобы написать песню в стиле поп достаточно всего четырех аккордов. Вот, пожалуй, и все.
Все остальные правила для меня выглядят совершенно, ну просто абсолютно произвольно. Почему у нас есть 12 нот, но для их обозначения применяются только 7 букв? Откуда взялись знаки при ключе? Почему ни одну статью по музыке в Википедии просто невозможно понять, не прочитав сперва все остальные?
USB mass storage device и libopencm3
Моя работа связана с программированием микроконтроллеров, в частности STM32. Долгое время для работы с периферией я использовала STM32 Standard Peripheral Library, так как она предоставляется производителем и, соответственно, является наиболее полной. Однако работать с ней крайне неудобно: инициализирующие структуры зачастую избыточны, в функциях черт ногу сломит, в общем, очень скоро появляется непреодолимое желание слезть с этой библиотеки и перейти на что-нибудь более аккуратное, грамотно спроектированное и написанное «чистым кодом».
После долгих поисков была обнаружена open source библиотека libopencm3, которая отвечала всем требованиям. Отзывы о ней были положительные и работать с ней оказалось максимально приятно.
Одной из последних задач на работе было поднять USB MSD. Для решения задачи использовалась отладочная плата STM32F4-discovery и вот этот пример. Пример не завелся. Проблем было две:
1. Было невозможно зайти на диск и прочитать находящийся там файл.
2. Распознавание устройства как дискового занимало более 2-х минут.
Все это было связано с наличием нескольких багов в файле usb_msc.c. Таким образом, в данной статье я расскажу о том, как исправить эти ошибки и продолжать с удовольствием пользоваться библиотекой libopencm3.
Считывание защищенной прошивки из флеш-памяти STM32F1xx с использованием ChipWhisperer
В предыдущей статье мы разбирались с Vcc-glitch-атаками при помощи ChipWhisperer. Нашей дальнейшей целью стало поэтапное изучение процесса считывания защищенной прошивки микроконтроллеров. С помощью подобных атак злоумышленник может получить доступ ко всем паролям устройства и программным алгоритмам. Яркий пример – взлом аппаратного криптокошелька Ledger Nano S с платой МК STM32F042 при помощи Vcc-glitch-атак.
Интересно? Давайте смотреть под кат.
Отладка многопоточных программ на базе FreeRTOS
Отладка многозадачных программ дело не простое, особенно если ты сталкиваешься с этим впервые. После того, как прошла радость от запуска первой задачи или первой демо программы, от бесконечно волнительного наблюдения за светодиодами, каждый из которых моргает в своей собственной задаче, наступает время, когда ты осознаешь, что довольно мало понимаешь (
Данная статья рассчитана, в первую очередь, на тех, кто только недавно начал осваивать FreeRTOS, однако вполне вероятно, что и хорошо знакомые с этой операционной системой читатели найдут для себя здесь что-то интересное. Кроме того, несмотря на то, что статья ориентирована на разработчиков встраиваемого ПО, прикладным программистам она тоже будет интересна, т.к. много слов будет сказано о FreeRTOS как таковой, безотносительно микроконтроллерной романтики.
В данной статье я расскажу о следующих моментах:
Упрощенный доступ к данным внутренней FAT12 для STM32
Для хранения именованных настроек особого усложнения структур формата данных не потребуется. Примем следующий формат — одна настройка = один файл. К примеру, нам необходимо хранить скорость подключения по UART и допустим, задержку в миллисекундах мигания светодиода. Создадим (в любом текстовом редакторе) в нашей файловой системе файлы UART_SPD.SET и DELAY_BL.SET. Запишем в них значения: соответственно 115200 и 1000.
Чтобы получить эти данные, обратившись к нашей внутренней FAT12 потребуется либо взять стандартную библиотеку HAL FatFs и попытаться ее приспособить под внутреннюю flash. Или пойти более простым и удобным способом — написать свою функцию чтения файловых данных FAT12, что мы и сделаем:
STM32F103C8T6 как накопитель flash с файловой системой FAT12
Рассмотрим вариант хранения в пожалуй самых распространенных микроконтроллерах STM серии F103. Способствовала распространенности также всем известная макетная плата Blue Pill
Имеющаяся в ней flash позволяет не только хранить и модифицировать настройки используя файловую систему FAT12 во внутреннем flash, но и организовать обновление прошивки.
Согласно документации в STM32F103C8T6 имеется 64К flash памяти. Однако практически во всех STM32F103C8T6 установлено 128К. Об этом также упоминается в разных источниках — обычно ставят на 64К больше. Такая «фича» позволяет использовать микроконтроллер как flash накопитель объемом 128К — 20К (системные нужды FAT12) — размер прошивки.
Многие энтузиасты, пытавшиеся использовать данный контроллер как накопитель flash, сталкивались с проблемой его использования в режиме файловой системы FAT12. Использовать для снятия/заливки образа диска получалось. А вот при работе как с файловым накопителем начинались проблемы.
Ужать аналог Space Invaders в 1 килобайт (оригинал 1978 года занимает 8)
Эта игра, в значительной мере вдохновлённая Space Invaders, написана с нуля для ATtiny2313 и отправлена на недавно прошедший конкурс 1-килобайтных программ на Hackaday.
Непросто поместить такую игру в 1024 байта. Но автор решил получить в результате полнофункциональную игру с подсчётом очков, звуком и VGA-видеовыходом с разрешением в 640х480 и частотой в 60 Гц.
Разумеется, весь код полностью написан на ассемблере, причём для генерации звука и видео запрограммировано получение точных временных интервалов.
Прерывание по таймеру соответствует требованиям к строчной синхронизации VGA, а поскольку кадровая частота получается делением строчной на целое число, оба вида синхронизации можно поместить в одну процедуру обработки прерывания. Для этого в процедуре производится точный подсчёт циклов.
Строчная частота в 31,5 кГц берётся в той же процедуре за основу при получении звуков.
Процедура обработки прерывания отнимает 90% машинного времени, поэтому вся логика игры просчитывается во время обратного хода луча. Несколько конечных автоматов управляют перемещением персонажей, определением положения ракет, и т.п.
Превращаем DSLogic Basic в DSLogic Plus
В данной статье расскажу как модифицировать DSLogic Basic до DSLogic Plus.
Возможно для кого-то это не будет новостью.
Во всяком случае — собрал инфу с зарубежного форума, убрал все лишнее и рассказываю вам.
Кому интересно — прошу под кат.
STM32 и USB-HID — это просто
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?
Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.
У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее
На столбе висят три глаза, или сказ о том, что пяти ног ATtiny13 вполне достаточно
КДПВ «Ой, всё».
Мало шансов, что сей лонгрид станет живительным источником мудрости интеллектуалам, искушенным в тайнах гадания на картах Карно и познавшим потаенный смысл Третьей Нормальной Формы. Но если вы зачем-то трогали руками arduino, в кладовке пылится паяльник, понимаете, почему у батарейки один плюс, а у С++ два, то вас не смогут оставить равнодушными поистине волшебные и удивительные чудеса. Итак, имею удовольствие рекомендовать вам номера сегодняшнего представления бродячего цирка «Саман с Самшитом»:
- Добавление RAM и ROM в ATtiny13!
- Искусственный интеллект в микропроцессор — про и контра, или спящая красавица — ну она не дура ли?
- Или все таки dura lex sed lex?
- Как добавить ножек в ATtiny13?
- Пару слов о пятом измерении: как впихнуть невпихуемое?
- Распиливание напополам не-девствениц с перемешиванием содержимых половин (с гарантией восстановления).
- Номер «Кормление страждущих» (см. более ранний случай насыщения пяти тысяч человек пятью ячменными хлебами и двумя рыбами).
Если хотя бы один из фокусов пригодится в будущем каждому двадцатому читателю, буду доволен, статья была написана не зря.
Где покупать радиодетали и компоненты? Часть I: Россия
а) которые заточены под любителей DIY и делают свои собственные крутые продукты: конструкторы, модули, обучающие курсы и т.д.;
б) для профи, с широкой номенклатурой электронных компонентов.
Продолжение: Часть II: зарубежные магазины
Рисуем коммитами на Гитхабе
[Пятничное]
Всегда хотел сделать свой график активности пользовательского профиля на Гитхабе. Например, выкладывать коммиты каждый день так, чтобы через год этот график превратился в какую-нибудь картинку, пусть и с ограничением по размерам в 52×7 квадратиков-пикселей (52 недели в году × 7 дней в неделе).
Проблема была в том, что даже при полной автоматизации процесса всё равно ждать целый год. А тут я почитал документацию Гитхаба и понял, что задача решается проще и более того — за один раз. А значит, надо делать не откладывая. Обычно названия проектам придумывать сложно, но тут оно пришло само. Кай рисовал льдинками, а Герда рисует коммитами!
Дебаггинг в реальном времени через JTAG/SWJ-DP для микроконтроллеров на ядре ARM Cortex-M
С некоторых пор фирма Segger предлагает технологию Real Time Terminal (RTT) для своих JTAG адаптеров J-Link. Суть ее в том, что программа на микроконтроллере может выводить и принимать отладочную информацию из JTAG/SWJ-DP порта, как это обычно делается через UART. И тогда нам больше не нужен реальный отладочный UART. Далее чуть подробнее о возможностях этой технологии.
Цивилизация Пружин, 3/5
Часть 3. Цивилизация пружин
[Image credit: By Lothar Spurzem — Own work, CC BY-SA 2.0 de, commons.wikimedia.org/w/index.php?curid=39574590]
Предыдущая часть. Краткое содержание предыдущей серии.
Итак, какие же ещё есть способы хранения энергии, помимо химического топлива? Пусть даже не для ракет, а вообще?
Начнём с электрической батареи. Вот хотя бы литиево-ионной. Откуда в ней берётся энергия?
Всё просто, там идёт[210] электрохимическая реакция:
LiC6 + CoO2 <-> C6 + LiCoO2
Идёт налево —
Тонкости анализа исходного кода C/C++ с помощью cppcheck
В этой статье будут рассмотрены возможности cppcheck по вылавливанию утечек памяти, полезные параметры для улучшения анализа, а также экспериментальная возможность по созданию собственных правил. Сегодня никаких сравнений анализаторов «кто лучше», статья полностью посвящена работе с cppcheck.
Анализируем исходный код с помощью cppcheck
Совсем недавно cppcheck помог найти уязвимость в проекте Xorg, которая существовала там почти 23 года! Он помог уже тысячам программистов по всему миру, на официальном сайте можно найти информацию о найденных с помощью cppcheck уязвимостях в программах, и этот список постоянно растёт. Итак, если вы хотите знать, почему нужно использовать cppcheck всегда и везде — прошу под кат.
Настройка VSCODE под разработку для ARM на примере отладочной платы stm32f429i-disco
Всем привет!
Сегодня рассмотрим настройку удобной и красивой среды разработки для программиста микроконтроллеров с помощью набора полностью бесплатных инструментов разработки.
Все шаги проверены на виртуальной машине со свежеустановленной Ubuntu 16.04 xenial desktop x64.
Подразумевается, что у Вас уже есть исходники какого-либо проекта.
Все настройки, касающиеся конкретного железа (в моём случае это контроллер STM32F429 и девборда STM32F429DISCO), нужно подменить на свои. То же самое касается и путей.
Если готовы, то
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность