Pull to refresh
45
0
Vladimir @Keroro

embedder

Send message

Дамп разделов TV-бокса на чипе RK3528

Level of difficultyMedium
Reading time10 min
Views16K

Заметил в продаже новенький TV-бокс H96 MAX M1 на чипсете Rockchip RK3528, с 4Гб памяти, новым 13-м Андроидом, и подозрительно дешевый. Зная, что на старых чипах Rockchip уже запускали Линукс, я решил заказать и попробовать.

Можете заметить разъёмы питания/USB/HDMI/AV... Как думаете, в чём подвох? Наверное на другом боку еще пара USB и слот для карты памяти, но нет - других разъёмов для вас нет. Сразу напишу - разработчикам такое покупать не стоит, это создаёт много проблем, но раз уж купил - то работаю с чем есть.

Для запуска Линукс первым делом надо получить оригинальный Device Tree, вытащив .dtb из boot или recovery раздела. Этим я и занялся. Rockchip устройств у меня еще не было и по отзывам у меня складывалось ощущение производителя, что не ставит палки в колёса разработчикам, но оказалось - это уже в прошлом.

Инструкции написаны для пользователей Линукс.

Читать далее
Total votes 60: ↑60 and ↓0+60
Comments31

Запуск сложных C++ приложений на микроконтроллерах

Reading time8 min
Views13K
image Сегодня никого не удивить возможностью разрабатывать на C++ под микроконтроллеры. Проект mbed полностью ориентирован на этот язык. Ряд других RTOS предоставляют возможности разработки на С++. Это удобно, ведь программисту доступны средства объектно-ориентированного программирования. Вместе с тем, многие RTOS накладывают различные ограничения на использование C++. В данной статье мы рассмотрим внутреннюю организацию C++ и выясним причины этих ограничений.
Читать дальше →
Total votes 15: ↑14 and ↓1+20
Comments14

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

Level of difficultyEasy
Reading time11 min
Views364K

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

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

Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.

Читать далее
Total votes 37: ↑37 and ↓0+37
Comments306

3X-UI: Shadowsocks-2022 & XRay (XTLS) сервер с простой настройкой и приятным интерфейсом

Level of difficultyEasy
Reading time13 min
Views280K

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

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

Поэтому сегодня мы поговорим об установке и использовании графической панели 3X-UI для сервера X-Ray с поддержкой всего того, что умеет X-Ray: Shadowsocks-2022, VLESS с XTLS и т.д.

Читать далее
Total votes 33: ↑32 and ↓1+36
Comments198

Настройка Пошаговой Отладки JLink+Eclipse

Level of difficultyMedium
Reading time4 min
Views4.5K

Записали прошивку через интерфейс SWD/JTAG и... ничего не происходит. HeartBeat LED не мигает. Логи в UART(е) не появляются. CLI не отвечает. Очевидно, что прошивка где-то зависла.

Что же делать? Как понять, где ошибка?

Тут выручит пошаговая GDB отладка с подсветкой в eclipse.

Читать далее
Total votes 2: ↑1 and ↓1+1
Comments4

Пошаговая GDB отладка ARM процессора из консоли в Win10

Reading time7 min
Views8.7K

Иногда бывает ситуация когда надо срочно что-то пошагово отладить. При этом нет времени и желания ставить какие-то тяжелые IDE. В таких случаях может помочь пошаговая GDB отладка ARM Cortex M33 из командной строки Windows. В этом тексте я расписал пошаговое руководство того как это сделать.

Читать далее
Total votes 11: ↑9 and ↓2+10
Comments25

Отладка интерфейса I2S

Level of difficultyEasy
Reading time6 min
Views10K

В этом тексте я написал про особенности интерфейса I2S и про то как можно тестировать и отлаживать интерфейс I2S.

Читать далее
Total votes 12: ↑11 and ↓1+13
Comments4

Command line interpreter на микроконтроллере своими руками

Reading time4 min
Views30K
В каждом разрабатываемом устройстве у меня присутствовал отладочный вывод в UART, как в самый распространённый и простой интерфейс.
И каждый раз, рано или поздно, мне хотелось помимо пассивного вывода сделать ввод команд через тот же UART. Обычно это происходило когда мне хотелось для отладки выводить какой-нибудь очень большой объём информации по запросу (например состояние NANDFLASH, при разработке собственной файловой системы). А иногда хотелось программно управлять ножками GPIO, чтобы отрепетировать работу с какой-нибудь переферией на плате.
Так или иначе мне был необходим CLI, который позволяет обрабатывать разные команды. Если кто-то натыкался на уже готовый инструмент для этих целей — буду благодарен за ссылку в комментариях. А пока я написал собствыенный.
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments38

16 Способов Отладки и Диагностики FirmWare

Level of difficultyEasy
Reading time9 min
Views7.6K

В этом тексте перечислены основные способы отлаживать и диагностировать проекты на микроконтроллерах.

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

Читать далее
Total votes 14: ↑11 and ↓3+14
Comments23

Почему Нам Нужен UART-Shell? (или Добавьте в Прошивку Гласность)

Level of difficultyEasy
Reading time12 min
Views11K

Есть такая классическая и одновременно забытая технология отладки FirmWare как интерфейс командной строки поверх UART. В этом тексте я напишу про достоинства и недостатки отладки через UART Shell.

Читать далее
Total votes 13: ↑11 and ↓2+15
Comments47

NVRAM Поверх off-chip SPI-NOR Flash

Level of difficultyEasy
Reading time8 min
Views4.2K

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

В этом тексте поговорим о том как можно построить эффективную программную реализацию энергонезависимой Key-Value Map(ки) над дешевой SPI NOR Flash для микроконтроллерных проектов. Суть проста. Нужна NVRAM.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments11

Неизвестный UART: микросхемы

Level of difficultyMedium
Reading time23 min
Views18K

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

Запаять SSOP-20
Total votes 58: ↑57 and ↓1+74
Comments57

Умная белая трость. Часть 2

Level of difficultyEasy
Reading time5 min
Views2.1K

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

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

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

В настоящее время подобные решения обеспечивают ошибку навигации примерно 10 метров. Если использовать двухчастотные приемники GPS или методы дополнительной обработки фазы сигналов, то погрешность позиционирования можно уменьшить до величин меньше одного метра. Стоимость высокоточных систем составляет сотни тысяч рублей. Кроме того, такие системы требуют наличие специальной инфраструктуры и специальных спутников в зоне видимости. Однако GPS навигаторы не работают внутри помещений. В итоге, навигация на основе GPS позволяет лишь ориентироваться глобально, но бесполезна для навигации внутри зданий и неспособна определить рельеф поверхности передвижения человека на улице.

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

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

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

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments9

Очередной драйвер SPI флэшек… Но уже с кэшем и «нормальным» api

Level of difficultyMedium
Reading time14 min
Views6.9K

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

Будем пытаться писать быстрый драйвер флешки и при этом попробуем сэкономить её ресурс при перезаписях.

Читать далее
Total votes 19: ↑18 and ↓1+22
Comments32

ESP32 отладка с помощью JLINK

Reading time7 min
Views12K

Здравствуйте друзья, я хочу поделиться с вами своим опытом в отладке ESP32 с помощью отладчиков, реализующих интерфейс JTAG. Данная задача кажется тривиальной (она такая и есть), при мысли об программировании микроконтроллеров. Но при старте работы с микроконтроллерами ESP32 я столкнулся с рядом проблем, о которых я хочу рассказать и от которых хочу уберечь вас.

Почему, зачем, для кого написана эта статья?

Для кого? Данная статья написана для тех, кто хочет поглубже познакомиться с микроконтроллерами семейства ESP32, а для более глубокого знакомства вам определенно не хватит отладки через терминал.

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

Как сделать простой UPS для NAS

Level of difficultyMedium
Reading time11 min
Views22K

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

Рассмотрим вариант дизайна такого UPS, который можно разместить внутри корпуса для тех NAS, которые для работы требуют только одного напряжения питания 12В.

Всё ещё хочешь собрать UPS?
Total votes 66: ↑65 and ↓1+80
Comments89

Пишем драйвер ядра Linux для неизвестного USB-устройства

Reading time15 min
Views16K
image

В этой статье объяснен весь процесс, на выходе которого получается рабочий драйвер ядра Linux для недокументированного USB-устройства. Выполнив обратную разработку коммуникационного протокола USB, я покажу архитектуру драйвера ядра для USB. Кроме драйвера ядра в этой статье будет рассказано о простом инструменте для пользовательского пространства; при помощи этого инструмента можно управлять таким устройством. Конечно, придется углубиться в подробности, касающиеся конкретного прибора, но не сомневайтесь – описанный процесс с тем же успехом применим и к другим USB-устройствам.
Читать дальше →
Total votes 45: ↑44 and ↓1+57
Comments9

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

Reading time8 min
Views84K

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →
Total votes 150: ↑147 and ↓3+186
Comments163

Установка универсальной прошивки OpenIPC на примере IP камеры с процессором HI3516DV100 и сенсором OV4689

Reading time18 min
Views70K

Наш мир кишит камерами видеонаблюдения, и большинство из нас сами добровольно окружают себя этими устройствами. Камерами, которые имеют как случайные дыры в безопасности, так и намеренно внедренные компоненты которые отстукивают своему хозяину. Одни производители стараются по максимуму предвидеть и решить проблемы, другие же делают вид, что и проблем особо нет, если камера показывает изображение. Но если начать приглядываться, то лишь требование ActiveX и Internet Explorer для пользования камерой в XXI веке это нечто из пучин ада.

Решают проблемы производители каждый по своему. Как вариант, через облако, через своё приложение Android с приватными протоколами. Но через несколько лет после продажи облачной камеры, бесплатное облако вполне может стать платным, приложение обрастает рекламой до безобразия. А если проект производителя не зашел, то прописанные в ней сервера отключаются и ваша камера, возможно даже с отличным оборудованием внутри, становится бесполезным кирпичём, потому как способов использования больше нет.

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

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

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments14

Асинхронный ввод-вывод в Linux: select, poll и epoll

Reading time8 min
Views8.3K

На этой неделе я получила по почте новую книгу: Программный интерфейс Linux (The Linux Programming Interface). Она написана мейнтейнером проекта Linux man-pages Майклом Керриском (Michael Kerrisk). В ней рассказывается об программном интерфейсе Linux, начиная с ядра версии 2.6.x.

Читать далее
Total votes 9: ↑6 and ↓3+5
Comments6

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

embedded engineer
Lead