Pull to refresh
131
0
Sergei Frolov @sfrolov

User

Send message

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

Level of difficulty Medium
Reading time 5 min
Views 38K

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

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

Читать далее
Total votes 86: ↑85 and ↓1 +84
Comments 80

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

Reading time 6 min
Views 100K


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

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

Level of difficulty Easy
Reading time 9 min
Views 14K
image

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

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

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

Level of difficulty Easy
Reading time 8 min
Views 5.9K
image

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

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

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

Level of difficulty Easy
Reading time 9 min
Views 40K

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

И снова про VGA

Level of difficulty Medium
Reading time 9 min
Views 23K

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

Читать далее
Total votes 134: ↑133 and ↓1 +132
Comments 39

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

Level of difficulty Medium
Reading time 34 min
Views 9.4K

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

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

Читать далее
Total votes 42: ↑41 and ↓1 +40
Comments 42

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

Reading time 23 min
Views 70K

В 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, который создал его десятью годами ранее.
Читать дальше →
Total votes 196: ↑194 and ↓2 +192
Comments 52

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

Level of difficulty Easy
Reading time 5 min
Views 29K

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

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

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

Читать далее
Total votes 71: ↑71 and ↓0 +71
Comments 66

WS2812B/WS2811 + STM32

Level of difficulty Easy
Reading time 4 min
Views 7K

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

код и видео с эффектами
Total votes 13: ↑12 and ↓1 +11
Comments 23

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

Reading time 10 min
Views 21K

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

Читать далее
Total votes 87: ↑85 and ↓2 +83
Comments 49

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

Reading time 15 min
Views 18K

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

Читать далее
Total votes 40: ↑40 and ↓0 +40
Comments 25

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

Reading time 10 min
Views 37K

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

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

Читать далее
Total votes 45: ↑44 and ↓1 +43
Comments 1

STM32. Про синус

Reading time 7 min
Views 16K

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

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

Читать далее
Total votes 61: ↑60 and ↓1 +59
Comments 100

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

Reading time 7 min
Views 49K

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

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

Читать далее
Total votes 186: ↑186 and ↓0 +186
Comments 46

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

Reading time 8 min
Views 9K

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

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

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

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

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

Reading time 1 min
Views 112K

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

Читать далее
Total votes 103: ↑88 and ↓15 +73
Comments 91

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

Reading time 3 min
Views 21K

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

Читать далее
Total votes 61: ↑61 and ↓0 +61
Comments 29

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

Reading time 6 min
Views 20K

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

Что внутри?
Total votes 48: ↑48 and ↓0 +48
Comments 29

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

Reading time 12 min
Views 41K
История о закрытии гештальта.


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

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

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Registered
Activity