Как стать автором
Обновить
131
0
Sergei Frolov @sfrolov

Пользователь

Отправить сообщение

Создание своего UEFI приложения

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров39K

Привет, Хабр! Мне 16 лет, я студент, учусь на первом курсе колледжа на программиста. Начал увлекаться низкоуровневым программированием на Ассемблере и C/C++

Я заметил что на Хабре есть множество статей о написании своих простых "загрузчиков" для BIOS-MBR, которые выводят на экран "Hello World!". И при этом практически нет ни одной статьи о создании того же самого, но только для UEFI, хотя будущее именно за ним, ведь BIOS уже давно устарел! Это я и хочу исправить в этой статье.

Читать далее
Всего голосов 86: ↑85 и ↓1+84
Комментарии80

Протокол WS2812B на STM32 без пустых циклов и прерываний. И как сделать правильную радугу

Время на прочтение6 мин
Количество просмотров100K


На Хабре уже есть пара статей о работе с RGB светодиодами WS2112B, но почему-то они все используют довольно архаичный способ формирования битовой последовательности. Способ заключается в формировании точных интервалов времени с помощью пустых программных циклов. Возможно, это издержки использования Arduino, но мы, конечно, уже давно перешли на ARM Cortex-M4 в лице STM32 и можем себе позволить сделать красивее.
Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии14

Видеокарта VGA для микроконтроллера. Часть 2. От идеи до мелкой серии

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров14K
image

В первой части была описана идея видеокарты VGA для простого микроконтроллера (или ардуины), с помощью которой можно выводить информацию на стандартный монитор с интерфейсом VGA даже с самых слабых и медленных ядер. Карта, сердцем которой является высокоскоростная ПЛИС, берет на себя все скоростные и критичные к таймингам операции.

Идея была обкатана на макете и показала свою жизнеспособность. Однако для ее реализации «в железе», а тем более в серии, необходимо пересмотреть несколько моментов.
Читать дальше →
Всего голосов 82: ↑81 и ↓1+80
Комментарии37

Оживляем «Прыгающую лягушку». Восстановление венгерского терминала Videoton VDT 52100

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6K
image

В данной статье мы увидим — этапы восстановления аппаратной части венгерского терминала Videoton VDT 52100, анализ составляющих терминал плат, включение и результат.

Предлагаю узнать, почему в профессиональных кругах терминал назвали «прыгающей лягушкой». Фото, подтверждающее схожесть, по ходу повествования. Для кого-то магия, для кого-то просто железка. Много фоток, снял видео включения терминала. Кто со мной, приглашаю прогуляться под cut.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии48

Советский UNIX. Как в СССР ковали собственную операционную систему

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров40K

На рубеже 70-х и 80-х годов ХХ столетия UNIX набирал популярность не только в академических кругах, но также активно внедрялся в различные бизнес-процессы коммерческих предприятий. Портируемость, простота архитектуры и широкие возможности ОС привели к появлению у этой платформы целой армии верных поклонников. Однако «юних» — это у них. А что у нас? В Советском Союзе имелись свои талантливые инженеры и программисты, которые пытались создавать собственные версии операционных систем, во многом вдохновлённые идеями и архитектурой UNIX. И некоторые из этих проектов оказались вполне успешными. А самым успешным среди них стала ОС ДЕМОС.
Читать дальше →
Всего голосов 164: ↑158 и ↓6+152
Комментарии152

И снова про VGA

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров23K

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

Читать далее
Всего голосов 134: ↑133 и ↓1+132
Комментарии39

ЕС ЭВМ. Введение

Уровень сложностиСредний
Время на прочтение34 мин
Количество просмотров9.4K

Цикл статей, начинаемый этой публикацией, посвящён внутреннему устройству процессоров нескольких отечественных моделей ЕС ЭВМ, начиная с самой младшей из них — ЕС-1020.

В данной статье будет сказано несколько слов о причинах появления ЕС ЭВМ (исторические вопросы довольно подробно описаны в других источниках, поэтому я не буду здесь повторять других авторов, а желающих подробнее ознакомиться с этой темой адресую, например, в «Виртуальный компьютерный музей»), но в первую очередь будет дан краткий обзор основных особенностей архитектуры IBM System/360, реализованной в ЕС ЭВМ: без знакомства с архитектурой затруднительно понять причины и назначение довольно многих технических решений, принятых при её реализации. Собственно схемотехника начнётся со следующей статьи.

Читать далее
Всего голосов 42: ↑41 и ↓1+40
Комментарии42

Полезен ли сегодня быстрый обратный квадратный корень из Quake III?

Время на прочтение23 мин
Количество просмотров71K

В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом:

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // зловещий хакинг чисел с плавающей запятой на уровне битов
    i  = 0x5f3759df - ( i >> 1 );               // какого чёрта?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // первая итерация
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // вторая итерация, можно удалить

    return y;
}

Об этом алгоритме написано множество статей, и ему посвящена хорошая страница Википедии, где он назван fast inverse square root (быстрым обратным квадратным корнем). На самом деле, этот алгоритм упоминался на различных форумах ещё до публикации исходного кода Q3. Ryszard из Beyond3D провёл в 2004-2005 годах исследование и в конечном итоге выяснил, что первоначальным автором алгоритма был Грег Уолш из Ardent Computer, который создал его десятью годами ранее.
Читать дальше →
Всего голосов 196: ↑194 и ↓2+192
Комментарии52

Поддельные калькуляторы Casio научились проходить тест на подлинность

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров29K

Несколько лет назад фирма Casio модифицировала популярную модель Casio fx-991ES Plus второй редакцией, которая получила довесок в имени "2nd edition". Кроме небольших, скорее косметических улучшений, во второй версии добавили генерацию QR-кода, считав который телефоном и пройдя по сслыке можно было бы проверить калькулятор на подлинность.

Однако, для меня стало сюрпризом, когда я решил проверить QR-код, генерируемый калькулятором, а сайт сказал, что калькулятор-то оригинальный, несмотря на то, что он подделка.

Мастерство поддельщиков достигло больших высот. Раньше, взяв какой-нибудь клон Sharp EL-506P и положив рядом с оригиналом, можно бы довольно быстро понять, что есть что.

Читать далее
Всего голосов 71: ↑71 и ↓0+71
Комментарии66

WS2812B/WS2811 + STM32

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.1K

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

код и видео с эффектами
Всего голосов 13: ↑12 и ↓1+11
Комментарии23

Создание e-ink дисплея с прогнозом погоды

Время на прочтение10 мин
Количество просмотров21K

Кому-то нравится украшать дом электронными фоторамками, а кому-то — цифровым прогнозом погоды. Если вы из их числа, то читайте, как собрать своё собственное метео-табло.

Читать далее
Всего голосов 87: ↑85 и ↓2+83
Комментарии49

Как в Android запрещали фоновую работу и улучшали расход батареи

Время на прочтение15 мин
Количество просмотров19K

Когда-то работа в фоне была простой. Теперь в Android есть множество ограничений: работа в фоне, доступ к файловой системе, разрешения на которые надо получить одобрение модераторов Google Play и другие. Со всеми ними разработчикам приходится работать. Недавно я выступил с докладом на эту тему на конференции DUMP, а теперь написал текст на его основе для Хабра. Давайте вспомним, с чего все начиналось и как менялись требования с каждой новой версией Android.

Читать далее
Всего голосов 40: ↑40 и ↓0+40
Комментарии25

99+ бесплатных инструментов для анализа зловредов

Время на прочтение10 мин
Количество просмотров38K

Знай своего врага ― одна из максим, которой руководствуются специалисты по информационной безопасности. Она касается и зловредов. Существуют сотни инструментов, которые помогают исследовать вредоносное ПО. К счастью, многие из них бесплатны и имеют открытый исходный код. 

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

Читать далее
Всего голосов 45: ↑44 и ↓1+43
Комментарии1

STM32. Про синус

Время на прочтение7 мин
Количество просмотров16K

В статье алгоритмическая оптимизация функции sin() для бюджетных микроконтроллеров stm32, повышающая производительность в 10 и более раз.

Тригонометрические функции, характеризующиеся высоким потреблением процессорного времени, могут негативно влиять на выбор бюджетных микроконтроллеров ( без модуля FPU ) для задач, где важна скорость счёта, например, контроль пространственного положения.

Читать далее
Всего голосов 61: ↑60 и ↓1+59
Комментарии100

AccessUSB: «флешка всевластия» для телевизоров LG

Время на прочтение7 мин
Количество просмотров49K

Многие современные телевизоры имеют скрытые сервисные меню, через которые можно посмотреть и изменить различные параметры, недоступные в обычном пользовательском меню. В телевизорах LG есть 2 основных сервисных меню - InStart и EzAdjust, которые можно вызвать посылкой "секретных" ИК кодов, отсутствующих на обычном пульте. Подробности о том, как открыть эти меню, легко найти в интернете, не буду на этом останавливаться, один из вариантов - в этой статье. К сожалению, многие интересные опции в сервисных меню были недоступны для изменения.

В меню InStart меня заинтересовала строка Access USB Status. Гугление не давало никакой информации о том, что это за Access USB, но интуиция подсказывала, что это что-то интересное.

Читать далее
Всего голосов 186: ↑186 и ↓0+186
Комментарии46

Ловля жуков в чемодане

Время на прочтение8 мин
Количество просмотров9K

Эпопею с чемоданом хотелось завершить красивой демкой, с бегущей строкой и всякими графическими эффектами на дисплее. Всё это вшить в ПЗУ, и наслаждаться этим в любой удобный момент.

На этапе пока я не научился шить ПЗУ, заготовки демки были реализованы ещё в оперативной памяти. И казалось бы, смени адреса, залей в ПЗУ и будет счастье. Но при попытке прошить это в постоянную память, ничего не работало. Попробовал проверить свою программу в эмуляторе и она без проблем выполнила всё именно так, как я от неё ожидал. Код даже работал при записи его частями в УМК, но целиком, со всеми прелестями, вылетал с ошибкой.

И всё никак в толк не мог взять: это лыжи не едут, либо у меня проблемы с ассемблером.

Пробегался по каждой инструкции, стал сам линкером, уже как процессор начал всё исполнять, но ошибку в коде никак не мог найти. И вот тут начинается квест жёсткого аппаратного дебага и трёх недель бессонных ночей.
Читать дальше →
Всего голосов 70: ↑69 и ↓1+68
Комментарии52

Telegram позволяет узнавать координаты людей с точностью до метра

Время на прочтение1 мин
Количество просмотров114K

В телеге давно есть опциональная фича live location sharing, который показывает точное расстояние до людей поблизости. Если использовать GPS спуфинг и трилатерацию (не путать с триангуляцией), то можно узнавать координаты людей в любой точке планеты с точностью до метра. Телега проигнорировала сообщение об этой "фиче", поэтому автор выложил всё на github.

Читать далее
Всего голосов 103: ↑88 и ↓15+73
Комментарии91

«Кастомные» клавиши для механической клавиатуры

Время на прочтение3 мин
Количество просмотров22K

Здравствуйте, товарищи!
В новогодние каникулы дошли руки доделать кастомный набор клавиш для моей механической клавиатуры. Нанесение легенд на клавиши делалось по технологии сублимационной печати (анг. Dye-sublimation, dye-sub) и цель этой заметки - поделиться полученным опытом.

Читать далее
Всего голосов 61: ↑61 и ↓0+61
Комментарии29

Примеры ассемблерного кода для ZX Spectrum

Время на прочтение6 мин
Количество просмотров21K

Я не буду делать длинное вступление. Один знакомый хакер однажды сказал, что 10 строк кода могут быть понятнее и интереснее, чем 1000 слов объяснений. Все эти примеры написаны на ассемблере для архитектуры Z80 и запускаются на ретро-компьютере ZX Spectrum 48k.

Что внутри?
Всего голосов 48: ↑48 и ↓0+48
Комментарии29

Волшебный чемодан

Время на прочтение12 мин
Количество просмотров41K
История о закрытии гештальта.


В старшие школьные годы, в библиотеке мне попалась книга «Простейшая микро-ЭВМ», где для школьников подробно объяснялось, как спаять свою вычислительную машину на микропроцессоре КР580ИК80А. Помню, что книгу зачитал просто до дыр, и в целом она определила мою судьбу в области электроники и программирования. Но тогда я понимал, что у меня не хватит пороха и возможностей сделать эту вычислительную машину, так как не было ни средств, ни опыта, ни подходящего наставника. Книгу я вернул обратно в библиотеку, отксерив некоторые листы.

В конце этого года spiritus_sancti обмолвился, что у него есть лишний УМК — Учебный Микропроцессорный Комплект. И тут я понял, вот она — мечта моего детства, она есть в железе и она реальна! И тут же начал просить мне его прислать. И с этого момента начинаются увлекательные предновогодние приключения.
Читать дальше →
Всего голосов 123: ↑122 и ↓1+121
Комментарии127
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Зарегистрирован
Активность