Как стать автором
Обновить
47
0
Дмитрий @rus084

Программист микроконтроллеров

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

Мой первый принтер к ZX Spectrum

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

После дембеля в ноябре 1986 году я, вместо того чтобы посвятить всё свое свободное время алкоголю и женщинам, по инициативе отца и не без его помощи собрал ZX Spectrum. Вариант, "Львов", так я сам оттуда, а отец даже принимал косвенное участие в его проектировании. Как раз в те годы, когда я сапогами стучал в Советской Армии. Если более точно, то ремонтировал и обслуживал телеграфные аппараты на командном пункте ПВО страны. Это присказка.

Прошел год. На дворе январь 1988 года после успешно сданной сессии. Общежитие в Зеленограде. Народ играет на моем ZX Spectrum. А кто не играет, обсуждает, что неплохо бы его применять не только для игрушек, но и еще для чего-то полезного. Например, для курсовых и дипломных проектов. Так как про TR-DOS мы в эти годы даже не слышали, а подключение дисковода к ZX Spectrum казалось фантастикой, то обсуждались способы, как бы перенести файлы с кассеты на хотя бы на ДВК-2, чтобы оттуда их распечатать. Купить принтер тогда тоже казалось фантастикой.

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

-- Ну хотя бы рулонный телеграфный аппарат где-то надыбать! Хотя бы древний и убогий T-63, который я наизусть знаю и точно смогу починить.

И вдруг я слышу ответ от соседа по комнате:

-- Так у меня на практике, на городской АТС, целая груда списанных рулонных телеграфных аппаратов валяется.

Ура! Есть цель, есть средства, нужен план. Хотя зачем студентам план? "Чего тут думать! Трясти надо!" (с) - если кто не знает этот анекдот, могу потом найти его.

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

Tracert vs Traceroute

Время на прочтение5 мин
Количество просмотров259K
В чем отличие маршрута пакета от его пути?
Стандартный механизм маршрутизации пакетов в интернете — per hop behavior — то есть каждый узел в сети принимает решение куда ему отправить пакет на основе информации, полученной от протоколов динамической маршрутизации и статически указанных администраторами маршрутов.

Маршрут — это интерфейс, в который нам надо послать пакет для достижения какого то узла назначения и адрес следующего маршрутизатора (next-hop):
R1#sh ip rou | i 40.  
	 40.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
O        40.0.0.0/31 [110/3] via 20.0.0.0, 00:01:54, FastEthernet0/0
O        40.1.1.1/32 [110/4] via 20.0.0.0, 00:00:05, FastEthernet0/0

Что такое путь? Путь — это список узлов, через которые прошел (пройдет) пакет:
 1  10.0.0.1  16.616 ms  16.270 ms  15.929 ms
 2  20.0.0.0  15.678 ms  15.157 ms  15.071 ms
 3  30.0.0.1  26.423 ms  26.081 ms  26.744 ms
 4  40.0.0.0  48.979 ms  48.674 ms  48.384 ms
 5  100.0.0.2  58.707 ms  58.773 ms  58.536 ms

Путь пакета можно посмотреть с помощью утилит tracert в OC Windows и traceroute в GNU/Linux и Unix-подобных системах. (другие команды, типа tracepath мы не рассматриваем).
Многие считают что этих утилит один и тот же принцип работы, но это не так. Давайте разберемся.
Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии63

Пакуем весь трафик в Ping message, чтобы не платить за интернет | ICMP NAT traversal

Уровень сложностиСложный
Время на прочтение29 мин
Количество просмотров84K

Бывало ли у вас такое, что вы подключились к общественной сети или мобильному интернету, но он себя странно ведёт. Надпись «Подключено, без доступа к интернету» отсутствует, устройство думает, что всё нормально. Вы открываете браузер и видите «Пройдите проверку личности в сети нашего кафе» или в случае с мобильным интернетом «Пополнить баланс можно тут, тут и тут».

Так вот, переходя ближе к теме. Вы можете воспроизвести подобное поведение очень просто прямо сейчас при помощи вашего мобильного телефона и ноутбука. Я в своём конкретном кейсе буду пользоваться услугами оператора красного цвета, однако проблема актуальна для всех текущих 4 монополистов рынка сотовой связи. Как вам, скорее всего, уже известно, они около года меняют свою политику, внедряя одно интересное нововведение — с вас требуют дополнительной платы за раздачу интернета поверх основного пакета. То есть вы не можете взять и использовать свои 7 гигов на месяц как ресурс для раздачи при помощи точки доступа. Для точки доступа вам предлагают отдельный, зачастую совсем невыгодный тариф. Конечно, можно сменить основной тариф на специальный «тариф для раздачи» и платить втридорога, но, как вы понимаете, сегодня мы в потребителя будем играть совсем недолго. Сейчас по пунктам нужно доказать нечестность подобной политики и с чувством завершённого введения перейдём к непосредственно технотексту.

Подобные условия пользования, само собой, порождают внутреннее недовольство пользователей:

За интернет они платят? — Да.

Раздача как-либо использует ресурсы провайдера сверх нормы? — Нет.
Читать дальше →
Всего голосов 298: ↑296 и ↓2+294
Комментарии91

Автономный программатор SWD

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

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

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

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

Архитектура и программирование Sony Playstation 1

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

По сравнению с другими, ранее описанными мной архитектурами, архитектура Sony Playstation 1 (PSX) - сравнительно современная. И дело даже не в годе выпуска (1994) - скорее это общее ощущение сочетания новых возможностей и исчезновения привычных старых, которые были типичными для компьютеров и приставок предыдущей эпохи.

PSX (это сокращение пошло от первоначального названия проекта - Playstation X) имеет в качестве центрального процессора MIPS R3000, работающий на частоте 33МГц. Причём, Sony отказалось от сопроцессора для вычислений с плавающей точкой и вместо него сопроцессором в PSX является так называемый GTE (Geometry Transformation Engine), выполняющий различные операции с фиксированной точкой над векторами и матрицами.

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

Как Я: стажировался бекенд-разработчиком (C++) в Яндексе по программе Deep Dive (в формате буткемпа)

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

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

Вперед к рассказу
Всего голосов 15: ↑11 и ↓4+7
Комментарии6

Абсолютно бесплатный VPN с бесплатного VPS

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

Думаю про VPN слышали все, и многим приходилось им пользоваться. При этом использование готового VPN, которым руководит какой - то неизвестный человек, не является хорошей идей. Тем более в России на данный момент пытаются блокировать, как сами VPN провайдеры (Windscribe, Proton и другие известные сервисы), так и сами протоколы.

Читать далее
Всего голосов 96: ↑92 и ↓4+88
Комментарии112

Сам себе сотовый оператор

Время на прочтение14 мин
Количество просмотров88K
… Кроме типовых для журнала статей, там была статья за авторством некоего «DI HALT» про то, как из двух телефонов и микроконтроллера извлечь кучу лулзов. «Прикольный ник» — подумал мальчик Андрей и перелистнул страницу, ибо ниасилил. А за ней была статья того же автора про то, как скрестить флешку с мышкой. «А вот это нам под силу» — подумал мальчик и убил уже знакомую вам флешку банальной переполюсовкой. Но зато он понял, что электроника — это весело и почти безопасно. — с просторов



Приветствую всех!

Многие из вас наверняка слышали про OsmocomBB. Однако каких-то исчерпывающих мануалов по запуску почему-то крайне мало. Итак, в ходе данной статьи постараемся максимально простым образом запустить собственную базовую станцию из доступных комплектующих. Постараемся разобраться, как сделать так, чтобы оно точно заработало.
Читать дальше →
Всего голосов 342: ↑342 и ↓0+342
Комментарии135

История одного перехода с gcc на clang

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


На прошлой неделе, после нескольких месяцев разработки, вышла очередная версия языка программирования NewLang. Одной из технических особенностей данного релиза является переход на использования компилятора clang вместо gcc.

Данная статья описывает причины смены компилятора, некоторые особенности этого процесса, проблемы, которые приходилось решать и итоговые выводы.

Автор надеется, что эта информация может оказаться полезной и позволит сэкономить кучу времени, если заранее знать некоторые подводные камни, а так же положительные стороны от перехода на clang.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии5

Релиз языка программирования NewLang 0.2

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

image


NewLang — это язык программирования высокого уровня в котором можно сочетать стандартные алгоритмические конструкции с декларативным программированием и тензорными вычислениями для задач машинного обучения.


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


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

Читать дальше →
Всего голосов 12: ↑7 и ↓5+2
Комментарии22

Как IT-компаниям растить специалистов в условиях их дефицита на рынке

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

Всем привет!

Меня зовут Роман Гейнрихс, я — старший QA-специалист компании IT Test.Сегодня я хотел бы поделиться своим опытом и рассказать о том, почему обучить сотрудников
«с нуля» может быть эффективнее, чем искать на рынке кандидатов уровня middle и выше с опытом работы.

В начале 2021 года компания начала расширять штат тестировщиков и возник закономерный вопрос: где взять адекватные кадры?

Было выделено 3 возможных варианта:

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

Вы в Самом Деле Хотите Стать Программистом Микроконтроллеров?

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

В этом тексте я напишу о буднях программиста МК в РФ.

Что вообще пишут программисты МК и на чем?

Основной язык программирования это С. Языку С уже более 50лет. Кроме микроконтроллеров С уже практические никому не нужен. Навыки программирования на С очень слабо конвертируются. В свое время, видимо на С написали компилятор для С++ и нужда в С для desktop как таковая отпала. A сам С остался для сборки артефактов для микроконтроллеров с экстремально малыми ресурсами. Хотя и сейчас большинство компаний в ЕС уже микроконтроллерные сборки собирают на С++ 17. 

Иногда программистам MК приходится обсчитывать аналоговые цепи и вычислять какие-то сложные 8-этажные формулы и строить графики. Для этого практикуют бесплатный интерпретатор Python.

Главным образом программисты МК составляют Board Support Package, пишут драйверы для новых умных периферийных чипов, пишут загрузчики, портируют RTOS(ы) на разные процессорные ядра, пишут код-генераторы, скрипты сборки, составляют модульные тесты, изредка производят рефакторинг, часто чинят ошибки в Legacy коде, изредка что-то изменяют в коде Assembler(а), который запускается до вызова функции main().

Иногда программист МК даже ничего не пишет сам вообще. Важно уже не сколько уметь программировать сколько уметь тестировать и собирать, улучшать из готового кода из интернета. Какие-то исходники можно взять из github или ядра Linux. Там есть код на многие темы. Драйверы для множества чипов.  Важно уметь верифицировать найденные сорцы и аккуратно подключить их к нужной сборке.

Читать далее
Всего голосов 172: ↑147 и ↓25+122
Комментарии395

Железный отладчик для ZX Spectrum

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

До текущего момента, отладка С кода для ZX Spectrum была возможна только в некоторых эмуляторах. В предыдущей статье описан процесс написания отладчика, который использовал цепочку gdb-клиент (z88dk) <-> gdb-протокол <-> gdbserver (эмулятор Fuse).

В этой статье описан процесс написания "железного" отладчика для ZX Spectrum, то есть такого, в котором и непосредственно целевой код и код отладчика выполняет один и тот же z80. Как и в случае с эмулятором, используется сетевой протокол gdb, для этого требуется сетевой адаптер Spectranet, который постепенно собирает вокруг себя значительное (англоязычное) сообщество.

Также в статье описана реализация "точек останова" — механизма, без которого не может обойтись ни один отладчик.

LOAD "" CODE 32768
Всего голосов 53: ↑53 и ↓0+53
Комментарии12

Про рынок ИТ в России по-честному

Время на прочтение16 мин
Количество просмотров158K
В последние несколько лет мои переживания по поводу российского рынка ИТ только усиливались. Все началось с кризиса рубля 2014 года (а может, и раньше), и с тех пор меня не покидает ощущение, что многие российские компании, особенно провинциальные, завязали себе глаза, заткнули ватой уши и все еще пытаются сделать вид, что ничего не происходит. Я много общался с разными компаниями, с HR, с разработчиками, и составил список неутешительных тезисов о том, что представляет собой как программистский рынок, так и культура разработки в целом, ведь это вещи взаимосвязанные. По моим субъективным оценкам, эти тезисы справедливы для ~60% российских компаний, хотя, казалось бы, те другие 40% компаний, которые мы знаем и любим, должны были заставить задуматься. Но я очень подозреваю, что это эти 60% просто надеются на русский “авось”, и подвергаются так называемой willful blindness, а иногда и намеренно мутят воду. Итак, по-честному, что же происходит?

Дисклеймер 1. Ни ссылок, ни имен, ни пруфов не будет. Как известно, в Интернете можно найти подтверждение или опровержение любому тезису, поэтому не вижу большого в том смысла, покуда это не диссертация, а мнение. Моя цель — предоставить другую точку зрения, основанную на личностном опыте веры на личном опыте.

Дисклеймер 2. В статье приводится собирательный образ. Вряд ли стоит ожидать, что есть стопроцентное совпадение хотя бы с одной компанией. Те или иные черты могут встречаться там или здесь; важно не то, что есть какие-то конкретные компании с этими проблемами. Важно то, что сами по себе проблемы существуют, и о них надо говорить.
Читать дальше →
Всего голосов 281: ↑250 и ↓31+219
Комментарии1833

Вычитываем прошивку STM32

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

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

Flash Readout Protection (RDP) ключевой компонент в защите, включенный во все линейки микроконтроллеров. Он защищает системную прошивку, сохраненную во внутренней флэш памяти от вычитывания. В зависимости от линейки, могут быть включены дополнительные механизмы, такие как Memory Protection Unit (MPU) и привилегированные / непривилегированные режимы исполнения. Вместе, эти системы призваны повысить защищенность.

Авторы статьи пришли к выводу, что серия мк STM32F0 содержит ряд уязвимостей позволяющих в лаборатории с базовым оборудованием создать установку для вычитывания прошивки. Методы могут комбинироваться для достижения наилучшего результата или позволить работать в RDP level 2.

Узнать подробнее
Всего голосов 52: ↑52 и ↓0+52
Комментарии27

Мой компьютер на логических микросхемах

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

Привет, Хабр. Два года назад, как раз перед началом пандемии, я затеял большой проект: построить компьютер, используя только простые логические микросхемы 74 серии и микросхемы памяти. В этой статье я бы хотел кратко рассказать о том, что получилось, и более подробно об основной части – процессоре.

Читать далее
Всего голосов 306: ↑305 и ↓1+304
Комментарии73

Flipper Zero — приехали экраны, стартуем массовое производство | Новые функции

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


Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21]

Good news everyone! Нам наконец доставили LCD-экраны. Это значит, что у нас есть все необходимые компоненты для начала массового производства Флипперов. Сейчас у нас есть 60k экранов, и этого хватит, чтобы произвести Флипперы, заказанные бэкерами на Кикстартере, а также часть предзаказов, сделанных на нашем сайте. Внутри истории о том, что мы делали все это время, а также план по производству и доставке.

Читать дальше →
Всего голосов 211: ↑208 и ↓3+205
Комментарии79

Как технология USB over IP позволила людям забыть о расстоянии

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

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

В этой статье речь пойдет о технологии, не относящейся ни к одной, ни к другой группе — USB over IP. Без нее компьютерные сети существовали бы без особых проблем, но она способна значительно упростить работу и снизить затраты на эксплуатацию у крупных предприятий, небольших организаций и даже обычных пользователей. К примеру, с помощью нее можно пробросить аппаратный USB-ключ защиты ПО внутрь облачной платформы или облака на базе VMware и использовать его так, словно он установлен на локальной машине. Но обо всем по порядку.
Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии87

Как посчитать синус быстрее всех на хабре

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

Несмотря на свою кажущуюся банальность, темы о вычислении синуса достаточно регулярно появляются на хабре. И каждый раз их авторы или делают сомнительные утверждения, или получают сомнительные результаты. Не в силах более терпеть, я тоже решил поучаствовать и внести свой, не менее сомнительный вклад в этот вопрос.
Читать дальше →
Всего голосов 93: ↑92 и ↓1+91
Комментарии41

Выгорание, поставленное на поток. Как в Китае работает система «Третий глаз», и почему программисты из-за нее умирают

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


В крупнейших китайских IT-компаниях действует система наблюдения под названием Ди Сан Цзи Янь, «Третий глаз». Она получает данные из камер в офисах и из ноутбуков каждого человека, чтобы определить, кто стоит повышения, а кого нужно уволить. «Третий глаз» позволяет отслеживать экраны программистов в режиме реального времени, записывать их чаты, их активность в браузере и каждое редактирование документа. Часть компаний устанавливают систему даже в туалетах.


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


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

Читать дальше →
Всего голосов 156: ↑147 и ↓9+138
Комментарии542

Информация

В рейтинге
Не участвует
Откуда
Ставрополь, Ставропольский край, Россия
Дата рождения
Зарегистрирован
Активность