Рубрика «bootloader»

«Родила царица в ночь
Не то сына, не то дочь;
Не мышонка, не лягушку,
А неведому зверюшку»
A.С. Пушкин

Автомобильные блоки управления полны компонентов, промаркированных нестандартно. Например, встречались микросхемы, на которых выбито "Toyota", хотя ежу понятно, что Toyota никаких процессоров не производит. Но в мире электроники при больших партиях производители чипов имеют возможность выбить на чипе ваш логотип или маркировку, и разработчики ЭБУ этим активно пользуются, хотя цели их не совсем ясны.

Читать полностью »

Введение

Всем добра и здравия.

Понадобилось мне безопасно обновлять прошивки на коммерческих устройствах, используя CAN шину. Нужно спроектировать сам адаптер, который будет связывать ПК с устройством используя CAN, так же нужно добавить в устройство логику, которая сможет переписать прошивку или конфигурацию в самом себе.

Загрузчики до этого не писал, статьи на хабре не нашел, а хотелось. Вернее нашел, но только вводный ликбез, без практики)

Поэтому было решено разбить задачу на мелкие и начать с минимального примера. Подопытным будет BluePill на stm32f103c8t6.

Читать полностью »

Знакомство с программным USB на CH32V003 - 1

❯ Вступление

Давно хотел сделать устройство с USB, но больше всего мне казалось интересным это использовать программное USB. И для микроконтроллера CH32V003 давно существует библиотека rv003usbЧитать полностью »

"Если дом начинается с двери, то прошивка начинается с загрузчика."

Пролог

В этом тексте написано про то, как я написал загрузчик для российского микроконтроллера MIK32 (K1948BK018).

Определения

Чтобы понять текст надо вспомнить вот эти определения.

1--Прошивка (firmware) - содержимое энергонезависимой памяти электронного
устройства с микроконтроллером. В прошивке всегда есть код, а иногда ещё образ
файловой системы NVRAM, конфиги процессора.
Монолитная прошивка может содержать ещё и загрузчик.

2--Загрузчик Читать полностью »

Атрибуты Хорошего Loader-a - 1

В программировании микроконтроллеров помимо написания прошивок ещё периодически приходится писать клиентские программы для загрузки *.hex файлов в микроконтроллер через загрузчик.

Как водится, самое сложное в этом процессе - это сесть и написать ТЗ. Только после ТЗ появляется ответ на извечный вопрос: "что делать?".

Читать полностью »

Путешествие сквозь секреты прошивок: от BIOS-UEFI до OS - 1

Вы когда-нибудь задумывались, что происходит, когда вы нажимаете кнопку питания на компьютере? За той краткой паузой, прежде чем экран загорится, скрывается сложный процесс. В этой статье мы погрузимся в увлекательный мир прошивок (firmware) и исследуем, как разные компоненты взаимодействуют во время загрузки системыЧитать полностью »

Часто слышал мнение, что в embedded программировании в принципе не может быть никакого DevOps(а).  Якобы вот есть GUI(ня) в IAR и там надо много мышкой водить. "Ты же не будешь ставить шаговые двигатели для сдвигания мышки" и т. п.

В этом тексте я намерен пофантазировать каким мог бы быть абстрактный процесс разработки firmware с точки зрения DevOps. И перечислить атрибуты такого процесса.

1. Репозиторий с кодом (репа)

Читать полностью »

После двух твитов, оставленных на прошлой неделе, про мои игры с UEFI и Rust, несколько человек попросили опубликовать заметку, объясняющую как создать UEFI-приложение, полностью написанное на Расте и продемонстрировать тестовое окружение.

Так что сегодняшняя цель — это создание UEFI-приложения на Расте, которое распечатывает карту памяти, отфильтрованную по доступности для использования (такая память называется традиционной памятью в описании UEFI-спецификаций):

Слегка ржавое EFI-приложение - 1

Читать полностью »

Короткий мануал — как реализовать поддержку загрузочного NVMe SSD на старых материнских платах с Legacy BIOS и с использованием Clover (для любых ОС). По следам вот этого поста, где на мой взгляд, решение не так изящно и не для всех BIOS & OS.
Использование новых NVMe SSD в качестве загрузочного диска на старых системах с Legacy BIOS (для любой ОС) - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js