Как стать автором
Обновить
44
0.4

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

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

Как я делал лучшие арифметические ядра и сделал лучший селектор (демультиплексор)

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

Небольшой рассказ о том, как я делал арифметические ядра и сделал лучший селектор (декодер адресов).

Что, опять?
Всего голосов 23: ↑19 и ↓4+21
Комментарии12

Как я убеждал блондинку Машу перейти с программирования RTOS в проектирование железа (а также Coq, Lisp и Haskell)

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

В викенд я зашел в кафе Red Rock и встретил там программистку встроенных систем Машу Горбунову. Вообще, у этого кафе в Маунин-Вью, Калифорния можно встретить кого угодно - например однажды на меня прямо из-за угла вылетел основатель Гугла Сергей Брин. Так вот Маша рассказала мне что программирует RTOS (семафоры, мейлбоксы, сигналы), чему выучилась в свое время в питерском институте ГУАП (аэрокосмического приборостроения).

Я решил, что такая девушка не должна оставаться в другой отрасли и показал ей плату ПЛИС, внутри которого можно засинтезировать пару ядер ARM микроконтроллерного класса. На что Маша среагировала так (видео):

Читать далее
Всего голосов 40: ↑26 и ↓14+16
Комментарии35

Использование скрытого потенциала: как я активировал Intel AMT на мини-ПК от HP и получил удаленный доступ

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

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

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

Использование произвольных DataFlash 25-й серии вместо дорогих конфигураторов FPGA Altera без дополнительной аппаратуры

Время на прочтение7 мин
Количество просмотров11K
Из любого описания на популярные FPGA известно, что для хранения их конфигураций используются специальные микросхемы – конфигураторы. В комментариях меня поправили, что потихоньку набирают популярность и FPGA, где это не требуется, но пока многие делают разработки именно на классике, где нужен конфигуратор, и с этим надо считаться. Например, для Altera Cyclone используются микросхемы EPCS. Ниже схема от типичной макетной платы с кристаллом семейства Cyclone IV. На ней мы видим конфигуратор EPCS16. Всё бы ничего, но традиционно эти конфигураторы достаточно дороги, поэтому хотелось бы использовать что-нибудь подешевле.

Подробности в длиннющем тексте ниже. Если же очень интересно, но лень читать так много букв, то можно упростить задачу, посмотрев подробное 20-минутное видео.

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

Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов

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


Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытаться его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat). Получилось ли у меня это? Узнаем в статье!
Читать дальше →
Всего голосов 80: ↑79 и ↓1+88
Комментарии84

Разработка BIOS на языках высокого уровня

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров24K
Ничего лишнего: материнская плата, видеокарта и ROM-BIOS

Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc.

Хотя я и имею достаточный опыт BareMetal-разработки, тем не менее, всё это были чужие проекты со своим кодом. А мне хотелось понять, как начать свой проект с чистого листа, когда есть только чистая железка и идея. Толковых статей как подступится к этой задаче достаточно мало, при этом совершенно непонятно, с какого же края к ней подходить.

Здесь я хочу свести основные моменты разработки BIOS в одном месте и разобраться обо всех проблемах, которые я получил во время своих опытах в разработке (первая и вторая части).
Читать дальше →
Всего голосов 103: ↑102 и ↓1+132
Комментарии58

Исследование прошивки Mi Router 4A Giga Version. Получение интерфейса командной оболочки Linux

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

Приветствую вас, дорогие читатели! Сегодня я хотел бы рассказать вам о том, как я получил интерфейс командной оболочки Linux у wi-fi роутера Mi Router 4A Giga Version:

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

Объяснение терминологии Arm: Arm ARM, Armv9, ARM9, ARM64, Aarch64, A64, A78…

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

Если вы новичок в экосистеме Arm, то считайте это кратким введением в терминологию, которую вы могли видеть раньше, но понимаете не до конца.

Архитектура Arm — это семейство архитектур с набором упрощённых команд (Reduced Instruction Set Architecture, RISC) с режимами простой адресации. Обработка данных выполняется над регистровыми операндами, в противном случае используются загрузки и сохранения для перемещения данных в регистры и из них.

Arm Limited — это британская компания, занимающаяся разработкой и поддержкой архитектуры Arm.

ARM — это устаревшая аббревиатура Acorn RISC Machine, а позже — Advanced RISC Machines. Как мы увидим ниже, в случае развития архитектуры предыдущую терминологию иногда переименовывают.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии7

Компактный make для STM32 с USB

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

Дата появления микроконтроллеров STM32, судя по datasheet, 2007 год, и с тех пор они признаны очень успешным и популярным чипом. Поэтому для них уже написано множество готовых примеров с поддержкой почти всех технологий как самим вендором так и комьюнити. Это и всевозможные USB устройства включая флешку и звуковую карту, и целочисленные варианты кодеков (WMA, Speex), и даже готовые сборки под ethernet с lwip стеком так же в наличии. В то время комьюнити пытается догнать вендора и написало библиотеку libopencm3, уже в отличии от оригинала, основанную на make, а не привязанную к среде. И в ней есть так же примеры с USB. И вот, на фоне всего этого я представил что STM32 ничем не сложнее меги, вооружившись таблицей разметки памяти с адресами регистров начинаю писать еще один вариант стандартной библиотеки для STM32. Гораздо более наивный, но зато компактный. Смыл был однозначно, я вообще считаю что если не понравился любой стандартный продукт, то это повод переписать его полностью, хотя вы можете со мной не согласиться.

Читать далее
Всего голосов 17: ↑16 и ↓1+24
Комментарии14

Реверс инжиниринг для самых маленьких на практике

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

Скомпилированное приложение является «чёрным ящиком». Чтобы туда заглянуть, восстановить алгоритм работы применяется реверс‑инжиниринг. Это непростой навык с высоким порогом входа. В статье мы попробуем взять дизассемблер, несложную задачку и пойдём в бой. Материал будет полезен тем, кому хочется с чего-то начать и погрузиться в тему реверса.

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

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

Извлекаем прошивку GameBoy по фотографии чипа

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

Привет всем!

Вам предлагается маленький быстрый туториал по восстановлению прошивки GameBoy. Начнём с фотографий, изображающих прошивку металлическими соединениями (mask ROM) от Nintendo GameBoy, и на выходе получим файл ROM, который можно будет дизассемблировать или эмулировать.

Гаджет GameBoy для этого хорошо подходит, поскольку в нём используется так  называемая «постоянная память, программируемая перемычками» (Via ROM). Это означает, что отдельные биты кодируются металлическими перемычками между слоями, и эти биты можно считывать с поверхности чипа. Кроме того, сама прошивка достаточно невелика, и поэтому я смог включить её в репозиторий на Github, тем самым сэкономив вам недели времени, которые вы могли бы потратить на исправление мелких побитовых ошибок.

Привет из Ноксвилла,

— Трэвис Гудспид

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

Как создать аппаратный эмулятор CD-ROM без паяльника

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

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

Существует множество решений, как можно установить операционную систему с ISO-образа без записи его на оптический носитель. Я уже затрагивал тему ISO-образов в моих статьях: «Раскрываем секреты загрузочных ISO-образов» и «Что вам нужно знать о внешних загрузочных дисках».

В этой статье я хочу рассказать о ещё одном способе, который, как оказывается, вшит в ядро Linux. Если ваш одноплатный компьютер имеет USB OTG-разъём, и на него возможна установка Linux, то вы c большой долей вероятности можете сделать из одноплатника аппаратный эмулятор привода оптических дисков.

Меня этот способ заинтересовал. Я проверил его сам и, получив положительный результат у себя, решил поделиться с вами.

Я сам узнал много интересного, систематизировал свои знания, поэтому надеюсь, что чтение будет познавательно и интересно для вас.
Читать дальше →
Всего голосов 94: ↑94 и ↓0+94
Комментарии17

Embedded Linux в двух словах. Второе

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

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

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

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

Читать далее
Всего голосов 25: ↑24 и ↓1+31
Комментарии19

Счетчик импульсов на Linux (получаем информацию о расходе газа со счетчика ВК-G4)

Время на прочтение5 мин
Количество просмотров18K
В процессе автоматизации домашнего хозяйства было обнаружено, что имеющийся в наличии счетчик расхода газа ВК-G4 обладает интересной особенностью: его в младший разряд встроен магнит, который может замыкать геркон, устанавливаемый снаружи самого устройства (т.е. для его подключения не требуется разрешения от газовой компании). Это даже указано в паспорте на сам счетчик. Правда там рекомендуется использовать «НЧ генератор импульсов IN-Z 61», но на самом деле это просто геркон с креплением на счетчик за невменяемую цену. Поэтому вместо IN-Z 61 было решено использовать самый дешевый датчик Холла с цифровым выходом (т.е. со встроенным триггером Шмитта).
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии11

Этот планшет лежит в комодах у половины населения России: Находим применение китайскому трансформеру за 500 рублей

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров17K
Планшеты-трансформеры прочно заняли свою нишу в нашей повседневной жизни, потихоньку вытеснив нетбуки. Ведь это очень удобно: захотел физическую клавиатуру и дополнительную АКБ — «прицепился» к док-станции, захотел полежать на диване и полистать Хабр — «отцепил» и пальцем пользуешься устройством. 10 лет назад китайские инженеры подумали: «а почему бы не взять дешевое планшетное железо, сделать гибкий чехол и продавать это в качестве трансформера за 3 копейки?». И таки сделали, а девайс, благодаря цене в 2-3-4 тысячи рублей за новое устройство, стал очень успешным и производился несколько лет! Сегодня у нас будет легендарная подделка, которая лежит в шкафах многих моих читателей: Samsung Galaxy Tab N8000. Мы с вами: вспомним историю появления этих гаджетов, узнаем что у них «под капотом», заменим аккумулятор, получим root и пропатчим систему и узнаем, где можно применить такой смартбук в 2023! И да, максимальный интерес вызовет всего одна фраза: Сюда можно накатить Linux!

image

Читать дальше →
Всего голосов 31: ↑21 и ↓10+18
Комментарии57

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

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

Уважаемые жители Habr‑а, В данной статье, речь пойдет о доступе к GPIO, и другим регистрам, используя C++.

Несколько лет назад, я подготовил статью, о том, как можно используя constexpr‑клаcсы, серьезно оптимизировать доступ к GPIO‑порту, таким образом, чтобы команда «PA0.set()» — превращалась в одну‑три ассемблерных инструкции, в зависимости от обстоятельств. Этот класс лишь выглядел обычным, который оптимизировался компилятором. Фактически, это была высокоуровневая оптимизация низкоуровневого кода. Теоретически возможно было перегрузить оператор равенства и писать просто PA0=1 или PA0=0, фактически это вызывало inline инструкцию, позволяющую добавить еще и барьерную инструкцию.

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

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

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

Превращаем DSLogic U2Basic (PANGO) в DSLogic Plus

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

В данной статье расскажу как модифицировать DSLogic U2Basic (PANGO) в DSLogic Plus.

Данная статья является обновлением статей - Превращаем DSLogic Basic в DSLogic Plus и Превращаем DSLogic U2Basic в DSLogic Plus

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

На грани отвала eMMC: Устанавливаем Android на SD-карту на любом смартфоне/планшете! Вторая жизнь для дешевых кит. устр

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров23K
К сожалению, китайские производители бюджетных девайсов всё туже и туже затягивают пояса для уменьшения конечной цены девайсов. Попытки сэкономить сказываются не только на качестве дисплеев, пластиковых тачскринах, слабых процессорах, но и на памяти. Причём последнее время в устройства до 5-6 тысяч рублей ставят откровенно неликвидную и отбракованную память брендов Foresee и Barum, которая может прослужить как пару месяцев, так и 5 лет. Сегодня мы с вами: узнаем небольшую историю «затягивания» поясов китайцами, во всех подробностях перенесём Android на MicroSD-флэшку (гайд применим для любых производителей и чипсетов), посмотрим, как будет работать Android с такого накопителя и подведем итоги. Интересно? Тогда добро пожаловать!

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

ASUS TransformerPad — планшет-трансформер, который заменил когда-то EEE PC. Что может в 2023?

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров6K
Нетбуки и планшеты уже давно заняли место среди наших повседневных гаджетов для работы и развлечений. Из ноутбучной тематики, мы уже успели посмотреть на EEE PC 1011px на базе Intel Atom, iRu Stillo 1514 на базе TM5800 и RoverBook Partner W500, который работал на VIA C7-M. Однако в начале десятых годов, с появлением массовых Android планшетов на рынке и падением популярности нетбуков, компания ASUS решила выпустить целую линейку достаточно необычных и интересных девайсов, имя которым — Asus TransformerPad. Это были не просто планшеты, ведь они комплектовались док-станциями с полноценным тачпадом и клавиатурой, USB и HDMI выходами, который превращал их в миниатюрные портативные десктопы. И это за год до выхода Microsoft Surface! Сегодня мы с вами немного окунемся в историю появления планшетных ПК и узнаем, можно ли им пользоваться в 2023! Интересно? Тогда добро пожаловать под кат!

image
Читать дальше →
Всего голосов 21: ↑17 и ↓4+17
Комментарии32

Избавляемся от хлама: как превратить бесполезную тв-приставку в компьютер под Linux

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

Дано: ненужная ТВ-приставка + острая потребность в компьютере с низким энергопотреблением под Linux. Почему бы не превратить одно в другое?

Читать далее
Всего голосов 66: ↑64 и ↓2+73
Комментарии30

Информация

В рейтинге
1 797-й
Откуда
Москва и Московская обл., Россия
Зарегистрирован
Активность