На это небольшое исследование меня натолкнула опубликованная недавно на Хабре статья, в которой автор предположил, что в знаменитых "Тетрисах" из 90-х мог использоваться 4-битный микроконтроллер Holtek HT1130. Меня сильно удивило (и мотивировало), что, по всей видимости, до сих пор не снят образ ПЗУ и, соответственно, не написан эмулятор для этой линейки игр.
Пользователь
Проект национального IoT-стандарта OpenUNB: критический разбор
Некоторое время тому назад рабочая группа Сколтеха по Интернету вещей опубликовала проект национального стандарта узкополосной связи для IoT под названием «OpenUNB», полный текст которого можно найти здесь. С одной стороны, явление безусловно положительное – если в области стандартов широкополосных существует de facto открытый к применению всеми желающими LoRaWAN, то узкополосные стандарты до сего дня были исключительно проприетарными (Sigfox, XNB компании «Стриж», NB-Fi компании «Вавиот» — хотя последний также опубликован в виде проекта национального стандарта, в нём не открыты существенные для реализации сторонними лицами части).
При этом узкополосные и широкополосные системы имеют каждая свои плюсы и минусы, так что говорить «зачем вам что-то ещё, когда есть LoRaWAN» – не совсем верно. То есть, открытый стандарт на UNB-связь необходим.
Однако, необходимость – это лишь одно из двух условий. Второе – достаточность. Ок, то, что опубликовал Сколтех, необходимо, но достаточно ли оно для практического применения?
Мы ответим на это в формате, похожем на интервью – под катом цитаты из проекта стандарта OpenUNB и комментарии к ним, данные Александром Шептовецким (AS), техническим директором компании GoodWAN, и Олегом Артамоновым (OA), техническим директором компании Unwired Devices.
Итак, поехали. Стилистика, орфография и пунктуация авторов сохранены.
Ортолинейная сплит клавиатура — это что такое? Обзор Iris Keyboard
Я решил узнать, можно ли купить удобную клавиатуру в 2020 году. Краткий ответ: пришлось паять самому.
Внутренний мир Форманты П432
История о том, как я неожиданно купил синтезатор, починил его, разобрался с тем, как он устроен, и написал эмулятор.
Полнодисковое шифрование Windows и Linux установленных систем. Зашифрованная мультизагрузка
Обновленное свое же руководство по полнодисковому шифрованию в Рунете V0.2
Ковбойская стратегия:
[A] блочное системное шифрование Windows 7 установленной системы;
[B] блочное системное шифрование GNU/Linux (Debian) установленной системы (включая /boot);
[C] настройка GRUB2, защита загрузчика цифровой подписью/аутентификацией/хэшированием;
[D] зачистка — уничтожение нешифрованных данных;
[E] универсальное резервное копирование зашифрованных ОС;
[F] атака <на п.[C6]> цель — загрузчик GRUB2;
[G] полезная документация.
╭───Схема #комнаты 40# <BIOS/MBR/1HDD без lvm>:
├──╼ Windows 7 установленная — шифрование полное системное, не скрытое;
├──╼ GNU/Linux установленная (Debian и производные дистрибутивы) — шифрование полное системное не скрытое(/, включая /boot; swap);
├──╼ независимые загрузчики: загрузчик VeraCrypt установлен в MBR, загрузчик GRUB2 установлен в расширенный раздел;
├──╼ установка/переустановка ОС не требуется;
└──╼ используемое криптографическое ПО: VeraCrypt; Cryptsetup; GnuPG; Seahorse; Hashdeep; GRUB2 – свободное/бесплатное.
Доклады с первого в России митапа разработчиков роботов на Robot Operating System
В рамках форума Skolkovo Robotics & AI 16 апреля 2019 года в Москве прошел первый в России митап по Robot Operating System — популярному во всем мире программному фреймворку, реализующему основные алгоритмы для построения сложных роботов. Мероприятие дало такой мощный импульс развитию всех команд. Мы погрузились в то, что мы больше всего любим — разработку! Поэтому только сейчас мы нашли время для консолидации уникальных материалов нашей встречи, переданных спикерами для публикации.
Среди посетителей крупнейшего форума по робототехнике в России нашлось более 150 инженеров, которые либо уже используют ROS или только планируют его использование в своих проектах. Это неплохой результат для первой встречи небольшого сообщества российских разработчиков ROS. Мы стремимся к тому, чтобы стать частью мирового движения — а за рубежом аналогичные мероприятия собирают уже сотни участников. Второй российский ROS Meetup пройдет уже 30 ноября 2019 года.
Устройство NVRAM в UEFI-совместимых прошивках, часть четвертая
Начатый в предыдущих трех частях разговор о форматах хранилищ NVRAM, используемых различными реализациями UEFI, подходит к своему логическому концу. Нерассмотренным остался только один формат — NVAR, который используется в прошивках на основе кодовой базы AMI Aptio. Компания AMI в свое время смогла «оседлать» практически весь рынок прошивок для десктопных и серверных материнских плат, поэтому формат NVAR оказался чуть ли не распространённее, чем оригинальный и «стандартный» VSS.
Если вам интересно, чем хорош и чем плох формат хранилища NVRAM от AMI — добро пожаловать под кат.
Использование верилятора как средства быстрого моделирования RTL проектов. Введение в UVM
Установка ПО для SystemC UVM
1. Верилятор
Одним из языков описания аппаратуры является verilog. На этом языке можно написать модуль.
Например, есть схема счетика:
Его код будет выглядеть так:
reg [3:0]counter;
always @(posedge clk or posedge reset)
if(reset)
counter <= 4'd0;
else
counter <= counter + 1'd1;
После симуляции получим вейвформы:
Видно, что по фронту тактовой частоты в регистры счетчика будет записываться очередное значение, на единицу большее, чем предыдущее.
Написанный модуль может иметь и более сложную структуру, проверить все состояния которого вручную будет сложно. Нам понадобится автоматизированное тестирование. Для этого необходимо разработать тестовое окружение на одном из языков программирования. Тестовое окружение даст нам возможность провести полную функциональную проверку устройства.
Для тестирование кода проекта помимо таких языков как Verilog, SystemVerilog, Python (для написания моделей), можно использовать язык SystemC. SystemC — язык проектирования и верификации моделей системного уровня, реализованный в виде C++ библиотеки с открытым исходным кодом.
Один из способов верификации Verilog модулей с помощью SystemC является трансляция verilog файлов в С++. Поможет нам в этом Verilator.
Verilator — это самый быстрый бесплатный симулятор Verilog HDL, который превосходит большинство коммерческих симуляторов. Verilator компилирует синтезируемый SystemVerilog (обычно это не код тестового стенда), а также некоторые утверждения SystemVerilog и Synthesis в однопоточный или многопоточный код C ++ или SystemC. Verilator был разработан для больших проектов, где быстродействие симуляции имеет первостепенное значение, и особенно хорошо подходит для генерации исполняемых моделей процессоров для групп разработчиков встроенного программного обеспечения. Verilator используется для имитации многих очень больших многомиллионных конструкций шлюзов с тысячами модулей и поддерживается многими поставщиками IP-технологий, включая IP от Arm и всех известных поставщиков RISC-V IP.
Руководство Google по стилю в C++. Часть 1
Часть 2. Заголовочные файлы
Часть 3. Область видимости
Часть 4. Классы
Часть 5. Функции
Часть 6. Специфика Google
Часть 7. Ещё возможности C++
Часть 8. Именование
Часть 9. Комментарии
Часть 10. Форматирование
Часть 11. Исключения из правил
Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на родном, приятнее иметь руководство на последнем.
Эта статья является переводом части руководства Google по стилю в C++ на русский язык.
Исходная статья (fork на github), обновляемый перевод.
Это вступительная часть руководства, в которой рассматриваются общие вопросы «Зачем?»
Также после перевода будет несколько ответов на возможные вопросы.
Systemd, интерактивные скрипты и таймеры
Введение
При разработке под linux возникают задачи создания интерактивных скриптов, выполняемых при включении или завершении работы системы. В system V это делалось легко, но с systemd вносит коррективы. Зато оно умеет свои таймеры.
Sampler. Консольная утилита для визуализации результата любых shell команд
В общем случае с помощью shell команды можно получить любую метрику, без написания кода и интеграций. А значит в консоли должен быть простой и удобный инструмент для визуализации.
Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.
Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.
Часть 4. Модель вычисления логических функций по графу для асинхронных параллельных процессов
Для описания поведения будем использовать STG, но с дополнительными ограничениями. Для каждого плэйса количество входящих в него и выходящих из него дуг равно строго по одной. Соответственно, плэйс с входящей и выходящей дугами можно рассматривать как одну дугу, соединяющую два события (перехода). Соответственно маркировка перемещается по дугам. Так как поведения с кратными сигналами сейчас не рассматриваются, индексы при событиях запрещены, они не нужны. Пустые события запрещены. Также запрещена ситуация, когда две дуги, входящие в одно событие, выходят из событий, которые не параллельны друг другу (частный случай — из одного и того же события). Цель этого — избавиться от дуг, не несущих смысловой нагрузки. В остальном рассматривается корректное (нормальное, живое, безопасное) с точки зрения STG поведение с учетом вышеизложенных ограничений. Поведение не содержит CSC конфликтов.
Пишем никому не нужный эмулятор
Доброго времени суток.
Довольно давно имелось желание написать эмулятор какого-нибудь процессора.
А что может быть лучше, чем изобрести велосипед?
Имя велосипеду — V16, от склеивания слова Virtual и, собственно, разрядности.
Читаем даташиты 2: SPI на STM32; ШИМ, таймеры и прерывания на STM8
В первой части я попробовал рассказать хобби-электронщикам, выросшим из штанишек Ардуино, как и зачем им стоит читать даташиты и прочую документацию к микроконтроллерам. Текст получился большой, поэтому я пообещал практические примеры показать в отдельной статье. Ну что же, назвался груздем...
Сегодня я покажу, как с помощью даташитов решить довольно простые, но необходимые для множества проектов задачи на контроллерах STM32 (Blue Pill) и STM8. Все демо-проекты посвящены моим любимым светодиодам, зажигать мы их будем в больших количествах, для чего придется задействовать всякую интересную периферию.
Telegram. Безлимитный сетевой диск. Бесплатный
Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.
TgCloud:
- Виртуальная файловая система с открытым исходным г****кодом.
- На локальном диске — только метаданные: имена, размер, структура папок и т.д.
- Данные хранятся в Telegram и загружаются только при работе с файлом
- Размер и тип файлов не ограничен, можно использовать с любой ОС
Подробности реализации и ссылка на репозиторий под катом.
492-байтная демка на ATtiny5
Демки обычно отличаются более сложной графикой, чем игры того же объёма. Ведь не приходится тратить ресурсы на взаимодействие с пользователем и дополнительные расчёты. Предлагаемая программа работает на микроконтроллере ATtiny5 с 512 байтами ПЗУ, 32 байтами ОЗУ и 16 регистрами процессора. Rakettitiede — это по-фински «ракетная наука» (в т.ч. в том же значении, что и в английском фразеологизме), а также название компании, разрабатывающей ПО.
10 принципов объектно-ориентированного программирования, о которых должен знать каждый разработчик
Мне довольно часто встречаются разработчики, которые не слышали о принципах SOLID (мы подробно рассказывали о них здесь. — Пер.) или объектно-ориентированного программирования (ООП), или слышали, но не используют их на практике. В этой статье описываются преимущества принципов ООП, которые помогают разработчику в его ежедневном труде. Некоторые из них хорошо известны, другие — не очень, так что статья будет полезна и новичкам, и уже опытным программистам.
RISC-V с нуля
Сначала немного обсудим RISC-V и важность этой архитектуры, настроим цепочку инструментов RISC-V и запустим простую программу C на эмулированном оборудовании RISC-V.
SamsPcbGuide, часть 2: Выбор структуры печатной платы
Тренировочный лагерь по схемотехнике для танков и закладкам в процессоры
И вдруг — Эврика! А если проводить соревнования по графическим играми, сделанных на чистой схемотехнике, без программирования, как делали игры типа Пин-Понг наши предки во времена Брежнева и Картера. И проводить не на древних микросхемах К561, а на современных Xilinx и Altera (то бишь Intel FPGA) и с использованием тех же технологий проектирования на уровне регистровых передач, которые используют проектировщики в Apple, Intel и SpaceX.
Короче, мы этим займемся в 8-26 июля на летней школе в Зеленограде. Часть школы, о плане которой пойдет речь в этом пост, посвящена основам цифровой схемотехники, первым шагам в архитектуру и микроархитектуру процессоров, а также (даже скорее в основном) аппаратной компьютерной графике.
Я попробую привезти в Зеленоград в качестве помощницы свою дочь-студентку Элизабет, если она вовремя получит паспорт и российскую визу. Элизабет, будучи русско-украинско-японкой, владеет только английским. Вот в Зеленограде и выучит основы русского. А заодно научит правильному английскому произношению инструкторов, которые готовы помочь на школе (необязательно из МИЭТ, можно из МФТИ, МГУ, МИФИ):
Information
- Rating
- Does not participate
- Registered
- Activity