Как стать автором
Обновить
4
0
Dmitry Key @dmitryrf

embedded

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

Фантастический OpenRISC и где он обитает, или недетский разбор детской камеры

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

После запуска Doom на кнопочном телефоне, я искал устройства на которых можно это повторить. К ним есть требования: цветной экран и несколько мегабайт памяти (идеально 4, но можно запустить и на двух). Видел счётчик электричества и USB тестер, то и другое есть с цветными экранами. Но покупать не стал, потому что скорее всего такие устройства имеют лишь десятки килобайт памяти, как и мощный чип им не нужен. Наконец на распродаже на известном китайском маркетплейсе увидел детский фотоаппарат, его и заказал для своего извращённого развлечения реверс-инжинирингом.

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

Да простят меня подписчики хаба фототехники.

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

Стек протоколов BLE 5 -физический уровень

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

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

Рабочая частота BLE составляет 2,4 ГГц. Он использует частотную модуляцию GFSK и использует механизм скачкообразной смены частоты для решения проблемы перегрузки канала.

Существует три схемы реализации для физического уровня BLE 5, а именно некодированный физический уровень со скоростью 1 Мb/s, некодированный физический уровень со скоростью 2 Мb/с и кодированный физический уровень со скоростью 1 Мb/s. Среди них некодированный физический уровень со скоростью 1 Mb/s совместим с физическим уровнем протокола серии BLE v4, в то время как два других физических уровня увеличивают скорость связи и расстояние связи соответственно.

Читать далее
Всего голосов 15: ↑13 и ↓2+16
Комментарии12

USB на регистрах: составные устройства

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


Еще более низкий уровень (avr-vusb)
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: interrupt endpoint на примере HID
USB на регистрах: isochronous endpoint на примере Audio device


Вот мы познакомились со всеми базовыми типами конечных точек, пришло время разработать какое-нибудь полезное устройство. Для примера пусть это будет программатор-отладчик STM-ок, работающий через стандартный UART bootloader.

Читать дальше →
Всего голосов 31: ↑29 и ↓2+39
Комментарии8

Как я потратил 250 миллионов в деревне

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

Я получил экономическое образование, торговал на фондовой бирже, а 1 ноября 2009 года начал брать молоко, мясо в деревне и продавать в Москве. 2 года вставал в 4 утра, чтобы забрать продукты, а до 2-х ночи с женой варили компоты и пекли запеканки. Позже купил 20 Га в Тульской области у своего поставщика баранины. А в ковид окончательно перебрался жить на землю.

В статье рассказал, как построил сельскохозяйственное производство за 250 млн, как 5 раз перестраивал коровник, почему курятник нельзя отапливать коровником, как работают поилки для кур, как разместить поросят, чтобы свиноматка их не раздавила. А еще посчитал экономику коровы, свиньи ? и бройлеров.

Читать далее
Всего голосов 191: ↑173 и ↓18+200
Комментарии177

Детектирование атак на контейнеры с помощью eBPF

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

Привет, Хабр!

Меня зовут Илья Зимин, я аналитик-исследователь угроз в компании R-Vision. Сегодня в статье я расскажу о возможностях обнаружения атак на контейнеризированные приложения с помощью такого инструмента, как eBPF, на примере приемов, связанных с побегом из Docker-контейнеров на Linux-системах.

eBPF (extended Berkeley Packet Filter) — это технология, которая предоставляет программный интерфейс в ядре Linux для обработки его событий в режиме реального времени. Он позволяет загружать и выполнять пользовательские программы в ядре без необходимости модификации самого ядра. Программы выполняются в виртуальной машине, что не позволяет ошибке в пользовательской программе повлиять на всю систему.

Используя возможности eBPF, мы можем отслеживать любое (или почти любое) взаимодействие в системе на уровне ядра, "присоединяясь" к вызовам системных функций, и получать информацию о них: контекст, аргументы, выходные значения и другие. Также на уровне пользователя можно добавить дополнительную логику для обработки этих данных.

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

Что ты такое, dhclient?

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

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. И это дало жизнь классу софта с режимом работы kernel bypass: например при DPDK (Intel Data Plane Development Kit). Потом был BPF. А за ним — eBPF. 

Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов. Есть NAPI (New API), которая призвана уменьшить число прерываний. Есть 100500 вариантов разных tables.

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

Начать погружение
Всего голосов 177: ↑176 и ↓1+221
Комментарии61

Программируем и отлаживаем STM32 через USB Type-C порт, не нарушая спецификации USB

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

USB Type-C - действительно универсальный порт.

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

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

Как перезагрузиться, пройдя пешком 250 км, или каким был для меня Путь Сантьяго

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

Всем привет! Меня зовут Катя Черных, я бизнес аналитик в Х5 Tech, работаю на продукте Ценообразование. Живу в Москве, со времён ковида работаю удалённо и большую часть дня провожу дома. Поэтому к планированию отпуска отношусь серьёзно, стараюсь уезжать подальше из своего домашнего офиса, чтобы максимально перезагрузиться. Люблю природу, хайкинги, трекинги и всякие трейлы. 

В мае 2023 года я прошла паломнический Путь Сантьяго (Эль Камино-де-Сантьяго).  Мой маршрут начинался в северной Португалии в Порту и за 11 дней я прошла 250 километров до испанского города Сантьяго-де-Компостела. 

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

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

Hello World на Tang Primer 20K под Linux

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.5K
После обзора на Tang Primer 20K — стало очевидно, что она вызывает немалый интерес и было решено немедля сделать разбор о том, каким образом можно настроить свой ПК и IDE для того чтобы начать взаимодействовать с отладочной платой, которую я рассмотрел в прошлой статье. Изначально, до момента пока я не познакомился сам лично с ПЛИС от Gowin и не запустил демо-проект — юзабельность, скорость и простота работы с их IDE вызывала сомнение. Но как только попробовал — все опасения были развеяны и я остался доволен.

Опытом настройки я с вами хотел бы поделиться в этой статье. Всех интересующихся — я по традиции приглашаю под кат!

image
Читать дальше →
Всего голосов 58: ↑58 и ↓0+58
Комментарии14

Ломаем Android. Русификация китайских авто

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

Как я ломаю и кастомизирую Android и как я до этого дошел.

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

Читать с удовольствием
Всего голосов 33: ↑29 и ↓4+34
Комментарии76

Xray на Keenetic / Xkeen

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

Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.

Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.

Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.

Ознакомиться с Xkeen
Всего голосов 23: ↑22 и ↓1+30
Комментарии33

Проектируем самодельный 16-битный CPU в 2023 году

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

Для создания самодельного CPU требуется большое количество чипов логики. И в самом деле разумно, что для реализации регистров, счётчика команд, АЛУ и других компонентов CPU на логике TTL или CMOS действительно необходимо существенное число чипов. Но сколько конкретно?

Я попытался оптимизировать свой самодельный CPU, минимизировав количество чипов логики, чтобы ответить на вопрос: какое минимальное число интегральных схем требуется для полного по Тьюрингу CPU без CPU?

Мой ответ: для создания 16-битного последовательного CPU нужно всего 8 интегральных схем, включая память и тактовый генератор. Он имеет 128 КБ SRAM, 768 КБ FLASH и его можно разгонять до 10 МГц. Он содержит только 1-битное АЛУ, однако большинство из его 52 команд работает с 16-битными значениями (последовательно). На своей максимальной скорости он исполняет примерно 12 тысяч команд в секунду (0,012 MIPS) и, среди прочего, способен выполнять потоковую передачу видео на ЖК-дисплей на основе PCD8544 (Nokia 5110) с частотой примерно 10 FPS.
Читать дальше →
Всего голосов 91: ↑90 и ↓1+120
Комментарии51

Веб-консоль для загрузчика U-Boot

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

В данной статье я расскажу, как совместил U-Boot и TCP/IP стек LWIP, и c использованием LWIP написал веб-консоль на WebSocket, очень простой DHCP-сервер и HTTP-сервер. Код лежит на репозиториях U-Boot и LWIP.

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

BLE под микроскопом (ATTы GATTы...)

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

BLE под микроскопом (ATTы GATTы...)

Часть 1, обзорная

Уже прошло довольно большое время, с тех пор, когда вышла первая спецификация на Bluetooth 4.0. И, хотя тема BLE очень интересна, она до сих пор отталкивает многих разработчиков, из-за своей сложности. В своих предыдущих статьях я рассматривал в основном самый нижний уровень Link Layer и Physical Layer. Это позволяло не обращаться к таким сложным и запутанным понятиям как протокол атрибутов(ATT) и общий профиль атрибутов (GATT). Однако деваться некуда, не понимая их, невозможно разрабатывать совместимые устройства. Сегодня я хотел бы поделиться с вами этими знаниями. В своей статье я буду опираться на учебник для начинающих с сайта Nordic-а. Итак, давайте приступим.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии20

BLE под микроскопом (24-52 link)

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

BLE под микроскопом (24-52 link)


Компания NORDIC уже несколько лет выпускает новые кристаллы серии nRF52. Однако до сих пор многие используют более старое семейство nRF24. Сегодня я покажу как организовать между ними двухстороннюю связь на advertising каналах. Кроме того, используя способность кристалла nRF52 измерять уровень RSSI, мы будем выводить его на график.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+9
Комментарии8

BLE под микроскопом. Модемы

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

BLE под микроскопом (модемы)


Так получилось, что мне пришлось заниматься темой BLE, используя модемы MC60E от Quectel и SIM868E от SIMCom. Изначально они не могли работать с протоколом BlueTooth 4.0, но их доработали и вот. В модемы добавили модули BLE, а в конце названия букву 'E'. Сегодня мне хотелось бы поговорить об этих устройствах в свете протокола BLE, поэтому я буду рассматривать только те команды, которые к нему относятся. Скачать фирменное описание на команды MC60E можно здесь, а на команды SIM868E здесь.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии7

BLE под микроскопом. TeLink

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

Санкции. Вот они докатились и до нас. Чипы европейских производителей стали недоступны или очень дороги. Но, как говориться, не NORDIC-ом единым... На рынке присутствуют и другие производители BLE кристаллов. Сегодня мы рассмотрим чипы одного из китайских заводов, а именно фирмы TeLink. Узнаем как с ними работать, а так же восхитимся их плюсами и воскликнем "О, ужас" их минусам :-)

Читать далее
Всего голосов 7: ↑6 и ↓1+8
Комментарии5

Книга «Прикладные структуры данных и алгоритмы. Прокачиваем навыки»

Время на прочтение12 мин
Количество просмотров12K
image Привет, Хаброжители!

Структуры данных и алгоритмы — это не абстрактные концепции, а турбина, способная превратить ваш софт в болид формулы 1. Научитесь использовать нотацию «О большое», выбирайте наиболее подходящие структуры данных, такие как хеш-таблицы, деревья и графы, чтобы повысить эффективность и быстродействие кода, что критически важно для современных мобильных и веб-приложений.

Книга полна реальных прикладных примеров на популярных языках программирования (Python, JavaScript и Ruby), которые помогут освоить структуры данных и алгоритмы и начать применять их в повседневной работе. Вы даже найдете слово, которое может существенно ускорить ваш код. Практикуйте новые навыки, выполняя упражнения и изучая подробные решения, которые приводятся в книге.

Начните использовать эти методы уже сейчас, чтобы сделать свой код более производительным и масштабируемым.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

Лучшая фантастика последних трех лет по версии Goodreads

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

GoodrGoodreads — пожалуй, главный книжный сайт англоязычного интернета. Недавно он составил список самых популярных фантастических книг за 2020-2023 годы, опираясь на мнение пользователей. К сожалению, на русский язык переведено далеко не все, однако даже те книги, которые уже можно прочитать в переводе, составляют внушительный список. Вот он.

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

Записки ездового кота, разное

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

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

Коты на выезде
Всего голосов 37: ↑34 и ↓3+37
Комментарии14

Информация

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