Как стать автором
Обновить
54
Карма
0
Рейтинг

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

  • Подписчики 33
  • Подписки
  • Публикации
  • Комментарии

Запуск X-приложения в chroot на примере POSE (или «QEMU не нужен»)

Системное администрирование **nix *

Эта мини-статья родилась как ответ на статью Упрощаем эмуляцию X86 с помощью Live CD, в которой для запуска старых 32-битных приложений на 64-битных дистрибутивах Linux предлагалось использовать QEMU + Live CD — по моему мнению «из пушки по воробьям». Опишу своё решение на chroot + debootstrap.

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 1.9K
Комментарии 6

Проброс видеокарты в ноутбуке. Laptop GPU Passthrough

Настройка Linux *Системное администрирование *Виртуализация *Видеокарты Ноутбуки
Tutorial


… или как из игрового ноутбука средствами виртуализации сохранить игровую систему!
Если Вы рассматриваете ноутбук/ПК не только как игровую станцию, а еще и как хост для виртуальных машин, но при этом иногда нужно поиграть/поработать с 3d, то это возможно!

Добро пожаловать под cut.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 11K
Комментарии 18

Генерация перемещаемого кода для процессоров ARM в компиляторе LLVM

Системное программирование *Компиляторы *Программирование микроконтроллеров *


Процесс обновления «прошивки» для микроконтроллера – опасная вещь. Раньше при обновлении «прошивки» любой аппаратный сбой приводил к тому, что устройство превращалось в кирпич. В наше время часто имеется начальный загрузчик, который позволит произвести процесс обновления заново, но до того, весь функционал устройства будет потерян. Пока не будет завершено обновление, работать оно уже не будет. Самым красивым способом является использование двух областей для размещения «прошивки» — основной и запасной. На рисунке ниже это красная и синяя области. Исходно активная красная, а обновление будет загружаться в синюю. Сбой загрузки не страшен. Если он произойдёт, управление останется у красной области. При успехе операции, активной станет синяя область, а новое обновление будет загружаться в красную. Ну, и так далее. Каждое обновление будет приводить к рокировке.



К сожалению, в системах Cortex M такой путь напрямую невозможен. Программа привязана к абсолютным адресам и не может исполняться в произвольном месте. С чем это связано и как мы сделали её перемещаемой, подправив компилятор LLVM, рассказано в данной статье.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 2.1K
Комментарии 13

Как мы сделали оффлайновый SMS-локатор/трекер

Я пиарюсь

Сейчас начинается самый продуктивный сезон сбора грибов. В этой статье я расскажу о технически успешной попытке сделать "оффлайновый" SMS-локатор, и о том, почему проект "не взлетел". И о том, при чём тут грибы :)

Начну издалека. С пяти лет я начал ходить в лес, чуть позже - на рыбалку, ещё позже, во взрослом возрасте — на охоту, а где-то с 2014-го года более-менее регулярно езжу искать потерявшихся в природной среде людей. Были и успешные поиски, и случаи, когда находили потерявшихся слишком поздно, и когда не находили совсем — причем, во многих случаях, у потерявшихся людей были с собой сотовые телефоны.

В 2017 мне в голову пришли мысли: ну хорошо, я сам пока здоровый, и хожу в лес один, наматывая с ружьем десяток километров за раз, но вот если со мной что-то случится - то как меня найдут? Да и чтобы близкие не беспокоились — можно ли их как-то держать в курсе? Есть ли надежные способы давать весточку о своем местонахождении?

Читать далее: идея, разработка, и Гугл
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 3.9K
Комментарии 30

Всемогущий FFmpeg: скриншаринг в WebRTC

Блог компании Flashphoner Разработка веб-сайтов *Работа с видео *Программирование *Видеоконференцсвязь

Когда мы пишем статьи о своем сервере в комментариях очень часто находится читатель, который говорит:

"И зачем такой огород городить? Все это одной FFmpeg командой делается!"

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 5.7K
Комментарии 8

ДЕЛАЕМ МОЩНУЮ ПЛАВИЛЬНЮ — DIY

Научно-популярное Физика DIY или Сделай сам Лайфхаки для гиков Электроника для начинающих
Tutorial

Хомяки приветствуют вас друзья!

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

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 3.1K
Комментарии 0

Перехват инфракрасных пультов с помощью Flipper Zero

Блог компании Flipper Devices Inc. Гаджеты


Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем.
Предыдущие посты
Как выглядит тестирование электроники Flipper Zero




Как мы делаем корпус Flipper Zero безупречным




Нахлобучиваем домофонные ключи iButton с помощью Flipper Zero




Как выглядит производство корпусов Flipper Zero изнутри




Altium 365 — как GitHub, но для разработки железа. Как мы делаем Flipper Zero




Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы




Делаем отладочную плату для Flipper Zero в Altium




Flipper Zero — план по производству и доставке




[Конкурс завершён] Помогите написать лор для Flipper Zero




Flipper Zero — предфинальные детали для пресс-форм, готовимся к запуску производства




Flipper Zero — в шаге от финальной версии железа




Псс, парень, не хочешь сделать модуль для Flipper Zero?




Flipper Zero — прогресс за сентябрь




Flipper Zero — давайте пилить вместе. Приглашаем разработчиков




Flipper Zero — как выйти на Кикстартер сидя на карантине на даче




Flipper Zero/One — теперь два устройства. Подготовка к Кикстартеру




[Flipper Zero] отказываемся от Raspberry Pi, делаем собственную плату с нуля. Поиск правильного WiFi чипа




Flipper Zero — пацанский мультитул-тамагочи для пентестера
Первый пост




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

В статье я покажу:

  • Как устроены инфракрасные приемники и передатчики
  • Какие бывают цифровые сигналы ИК-пультов
  • Перехват и анализ ИК-сигналов
  • Как с помощью Flipper Zero стать инфракрасным властелином

Всего голосов 84: ↑81 и ↓3 +78
Просмотры 22K
Комментарии 147

Как работает усилитель звуковой частоты

Электроника для начинающих

Введение


Добрый день уважаемый хабраюзер, я хочу рассказать тебе о основах построения усилителей звуковой частоты. Я думаю эта статья будет интересна тебе если ты никогда не занимался радиоэлектроникой, и конечно же она будет смешна тем кто не расстаётся с паяльником. И поэтому я попытаюсь расказать о данной теме как можно проще и к сожалению опуская некоторые нюансы.

Усилитель звуковой частоты или усилитель низкой частоты, что бы разобраться как он всё таки работает и зачем там так много всяких транзисторов, резисторов и конденсаторов, нужно понять как работает каждый элемент и попробовать узнать как эти элементы устроены. Для того что бы собрать примитивный усилитель нам понадобятся три вида электронных элементов: резисторы, конденсаторы и конечно транзисторы.
Читать дальше →
Всего голосов 100: ↑94 и ↓6 +88
Просмотры 113K
Комментарии 41

Электродвигатели: какие они бывают

Блог компании НПФ ВЕКТОР Компьютерное железо Робототехника Научно-популярное Транспорт


В прошлых статьях был рассмотрен принцип работы синхронного и асинхронного электродвигателей, а также рассказано, как ими управлять. Но видов электродвигателей существует гораздо больше! И у каждого из них свои свойства, область применения и особенности.

В этой статье будет небольшой обзор по разным типам электродвигателей с фотографиями и примерами применений. Почему в пылесос ставятся одни двигатели, а в вентилятор вытяжки другие? Какие двигатели стоят в сегвее? А какие двигают поезд метро?

Каждый электродвигатель обладает некоторыми отличительными свойствами, которые обуславливают его область применения, в которой он наиболее выгоден. Синхронные, асинхронные, постоянного тока, коллекторные, бесколлекторные, вентильно-индукторные, шаговые… Почему бы, как в случае с двигателями внутреннего сгорания, не изобрести пару типов, довести их до совершенства и ставить их и только их во все применения? Давайте пройдемся по всем типам электродвигателей, а в конце обсудим, зачем же их столько и какой двигатель «самый лучший».
Читать дальше →
Всего голосов 101: ↑101 и ↓0 +101
Просмотры 276K
Комментарии 178

Создание исполняемого файла ELF вручную

Ненормальное программирование *Assembler *Отладка *Реверс-инжиниринг *
Из песочницы
Перевод
Tutorial

Привет, класс, и добро пожаловать в x86 Masochism 101. Здесь вы узнаете, как использовать коды операций непосредственно для создания исполняемого файла, даже не касаясь компилятора, ассемблера или компоновщика. Мы будем использовать только редактор, способный изменять двоичные файлы (т.е. шестнадцатеричный редактор), и «chmod», чтобы сделать файл исполняемым.

Восход солнца вручную!
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 7.1K
Комментарии 6

Конвертируем ODT в XML

Блог компании Auriga Open source *.NET *XML *C# *
Tutorial

Не прошло и полугода со дня публикации моей предыдущей статьи про формирование чистого XML из офисного документа. В этот раз расскажу про формат Open Document Format (ODF) и как можно получить «причесанный» XML из текстовых документов с расширением .odt. В следующей статье покажу, как обработать .ods, и завершу данный цикл статей.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.6K
Комментарии 5

Тариф «100к+», или как вельми зело огорчить спамера

Спам и антиспам Законодательство в IT

Уже не впервые сталкиваюсь, что читатели Хабра не все поголовно умеют правильно бороться со спамом. И я не про SpamAssasin, «Ктозвонил» и прочие приложения для фильтрации информационного мусора, а про несложную, но весьма доставляющую всем сторонам процесса подачу жалобы в ФАС.

Давайте расскажу, как буквально за 15 минут не отрываясь от любимого компьютера подключить спамеру задораздирающий тариф линейки «Административный»: «Административный 100к», «Административный 150к» и вплоть до «Административный 500к» – как повезет.
Читать дальше →
Всего голосов 272: ↑268 и ↓4 +264
Просмотры 58K
Комментарии 256

Использование алгоритма Прима для генерации соединённых друг с другом пещер

Разработка игр *Алгоритмы *
Перевод


Я решил объяснить один из алгоритмов генерации карты, используемых в моей игре In the House of Silence. Главное преимущество этого способа заключается в том, что в отличие от других алгоритмов, он никаким образом не может сгенерировать карту с разделёнными частями.

Генерация идеального лабиринта



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

Для понятности я привёл псевдокод, описывающий алгоритм Прима. Будет довольно просто приспособить его под любой язык программирования.
Читать дальше →
Всего голосов 50: ↑50 и ↓0 +50
Просмотры 9.5K
Комментарии 5

Пишем драйвер фреймбуфера для Raspberry Pi с LCD

Настройка Linux *Разработка на Raspberry Pi *
Tutorial

Прочитав монументальную серию статей о подключении LCD экрана к роутеру мне захотелось сделать то же самое. Однако многообразие используемого стека (openwrt, stm32, usb) в сочетании с отсутствием полных исходников кода но может плохо искал несколько затруднило задачу. Я решил начать с малого — написать свою реализацию framebuffer для raspberry и вывести графическую среду raspberry на LCD. Что из этого получилось, описываю далее.

Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 8.1K
Комментарии 5

CDC+MSC USB Composite Device на STM32 HAL

Системное программирование *Программирование микроконтроллеров *
Tutorial
image

Мне хотелось бы верить, что хотя бы половина читателей может расшифровать хотя бы половину названия статьи :) Кто не в курсе — поясню. Мое устройство должно реализовывать сразу две USB функции:

  • Mass Storage Device (он же Mass Storage Class — MSC). Я хочу, чтобы мой девайс прикидывался обычной флешкой и отдавал файлики с данными, которые лежат на SD карте.
  • Другая функция это виртуальный COM порт (он же в терминологии USB называется Communication Device Class — CDC). Через этот канал у меня идет всякий дебажный вывод, который удобно смотреть обычным терминалом.

В большинстве примеров по работе с USB реализуется только один тип устройства — флешка, мышка, кастомное HID устройство или виртуальный COM порт. А вот найти вменяемое объяснение как реализовать хотя бы две функции одновременно оказалось не так просто. В своей статье я хотел бы восполнить этот пробел.

Я буду описывать создание композитного USB устройства на базе микроконтроллера STM32, но сам подход будет также применим и для других микроконтроллеров. В статье я детально разберу каждый из классов по отдельности, так и принцип построения композитных устройств. Но обо все по порядку.

Итак, поехали!
Читать дальше →
Всего голосов 60: ↑59 и ↓1 +58
Просмотры 83K
Комментарии 54

Реализация маневрирования юнитов в играх (избегание столкновений)

Разработка игр *Алгоритмы *
Задача движения юнитов в играх является одной из ключевых задач, стоящих перед разработчиками игр. От того, как двигаются игровые юниты, во многом зависит восприятие всего геймплея в целом.

Традиционно считается, что достаточно реализовать алгоритм поиска пути и дальше всё будет работать само собой.

На практике же мы имеем совсем другую ситуацию.

Алгоритмы поиска пути разобраны досконально.

Нужен поиск пути с весами? A*. Нужен поиск для большого количества юнитов? Flow Field или кластеризация.

По большому счету по поиску пути не осталось не разобранных вопросов.

И вот, поиск пути реализован и довольный игродел запускает свою игру… И видит, что болванчики полностью оправдывают своё название. Они конечно находят путь и едут туда, куда им сказали. Но при этом спотыкаются о препятствия… Толкаются друг с другом или проезжают насквозь… Упираются друг в друга при встречном движении…

Эти проблемы и будем сегодня решать.



Disclaimer
Данная статья не претендует на исчерпывающее решение обозначенной проблемы.
Я лишь рассказываю о том, как конкретно мне видится решение, над которым я работал. Это решение в оттюнингованном виде попало в один из зарелизенных в этом году РТС проектов, но осталось ли там на данный момент я не знаю. Комментарии и дополнения приветствуются.
Всего голосов 49: ↑49 и ↓0 +49
Просмотры 13K
Комментарии 53

Запускаем дисплей на STM32 через LTDC… на регистрах

Программирование микроконтроллеров *Схемотехника *Производство и разработка электроники *Электроника для начинающих
Приветствую! Недавно для проекта потребовалось запустить дисплей, который имел интерфейс LVDS. Для реализации задачи был выбран контроллер STM32F746, т.к. я с ним уже достаточно много работал и у него есть модуль LTDC, который позволяет работать напрямую с дисплеем без контроллера. В данном случае контроллер реализован уже внутри микроконтроллера. Так же не последним доводом было то, что на данном камне есть отладка STM32F746-Disco, которая у меня была под рукой, а значит я мог начинать работу над проектом не дожидаясь пока ко мне приедет плата, компоненты и прочее.

Сегодня я расскажу как запустить модуль LTDC, работая с регистрами (CMSIS). HAL и прочие библиотеки не люблю и не использую по религиозным убеждениям, но в этом и интерес. Вы увидите, что поднимать сложную периферию на регистрах так же просто, как и обычный SPI. Интересно? Тогда поехали!


Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 37K
Комментарии 53

Переключение контекста и простой вытесняющий планировщик для CortexM

C++ *Системное программирование *Программирование микроконтроллеров *
🔥 Технотекст 2020

image

С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидать в Cube или собрать на Ардуино, но задача курсового не в этом. Основная задача — самостоятельно, с нуля разобраться с модулями микроконтроллера, продумать архитектуру ПО и, собственно, закодировать все на С++, начиная от регистров и заканчивая задачами РТОС. Кому интересно, здесь пример отчета по такому курсовому


Так вот, появилась небольшая проблема, а именно, бесплатный IAR позволяет делать ПО размером не более 30 кБайт. А это уже впритык к размеру курсового в неоптимизированном виде. Анализ кода студентов выявил, что примерно 1/4 часть их приложения занимает FreeRtos — около 6 кБайт, хотя для того, чтобы сделать вытесняющую переключалку и управлялку задачами хватило бы, наверное… да байт 500 причем вместе с 3 задачами (светодиодными моргунчиками).


Эта статья будет посвящена тому, как можно реализовать Очень Простой Планировщик(он же SST), описанный в статье аж 2006 года и сейчас поддерживаемый Quantum Leaps в продукте Qp framework.


С помощью этого ядра очень просто реализовать конечный автомат, и оно очень хорошо может использоваться в небольших проектах студентами (и не только), которые могут получить дополнительно 5 кБайт в свое распоряжение.


Я попробую показать как можно реализовать такой планировщик самому. Чтобы не сильно перегружать статью, рассмотрю переключение контекста на CortexM0 у которого нет аппаратного модуля с плавающей точкой.


Все кто заинтересовался и хочет понять как можно переключать контекст, добро пожаловать под кат.

Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 11K
Комментарии 31

Программирование stm32 с самых основ

Программирование микроконтроллеров *
Recovery mode
Из песочницы
В статье я хотел бы описать шаги на пути к написанию прошивки для микроконтроллеров stm32 без использования специальных сред разработки типа keil, eclipse и тому подобных. Я опишу подготовку прошивки с самых основ, начиная с написания загрузчика на ассемблере, скрипта для линкера и заканчивая основной программы на C. В коде на C буду использовать заголовочные файлы из CMSIS. Редактор кода может быть любым на ваш вкус, vim, emacs, блокнот, все что угодно. Для сборки проекта буду использовать утилиту make. Итак, начнем!
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры 75K
Комментарии 47
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность