Search
Write a publication
Pull to refresh
Герман Янгалин @German2727read⁠-⁠only

Архитектор в области аэрокосмической техники и ОПК

Send message

Программисты, давайте изучать исходники классических программ

Reading time2 min
Views54K
Современные программисты — счастливчики: мы живём в мире, в котором исторические и оказавшие существенное влияние программы имеют открытый код, доступный для изучения. Однако, многие программисты только учатся, и изучают те программы, над которыми работают сами. У нас редко находится время для изучения исторических работ, и курсы программирования редко тратят время на такие вещи.

Мы полагаем, что разработчикам следует изучать исходники программ, оказавших большое влияние, подобно тому, как архитекторы изучают здания, оказавшие влияние на архитектуру (и критикуют их). Чем повторять те же ошибки снова и снова, мы должны изучить большую работу, проделанную до нас, и вынести из неё уроки.
Читать дальше →

Обратная разработка XC2064 — первой микросхемы FPGA

Reading time17 min
Views13K
Программируемая Логическая Интегральная Схема (ПЛИС) может реализовать произвольную логику, что угодно, от микропроцессора до генератора видеосигнала или майнера криптовалюты. ПЛИС состоит из множества логических блоков, каждый из которых обычно состоит из триггера и логической функции, а также из сети проводников, соединяющей логические блоки. Что делает ПЛИС особенной, это то, что она является программируемым аппаратным обеспечением, вы можете сконфигурировать каждый логический блок и соединения между ними. В результате вы можете построить сложную цифровую схему без физического соединения каждого логического элемента и триггера, что обошлось бы вам в стоимость разработки заказной интегральной схемы.


Фотография показывает один из 64 блоков микросхемы XC2064. Слои металлизации убраны, мы видим кремний и поликремниевые транзисторы, лежащие под металлизацией. По ссылке вы можете увидеть фото в большем масштабе: siliconpr0n.
Читать дальше →

Реальная история разработки Commodore C128

Reading time6 min
Views4.8K

Самый популярным компьютером, который когда-либо продавался, был Commodore C64, проданный в количестве 27 миллионов штук в 1980-е. Мало что осталось от тех времён, 8-битной ретро-эпохе, когда молодой длинноволосый инженер-самоучка, мог, имея решимость и удачу, сесть и разработать компьютер, используя механический карандаш, кучу справочников и много бумаги.

Читать далее

Как LLVM оптимизирует суммы степеней

Reading time5 min
Views5.3K
LLVM оптимизирует суммы степеней, например:

int sum(int count)
{
  int result = 0;

  for (int j = 0; j < count; ++j)
    result += j*j;

  return result;
}

генерируя код, вычисляющий результат без цикла (godbolt):

sum(int):
        test    edi, edi
        jle     .LBB0_1
        lea     eax, [rdi - 1]
        lea     ecx, [rdi - 2]
        imul    rcx, rax
        lea     eax, [rdi - 3]
        imul    rax, rcx
        shr     rax
        imul    eax, eax, 1431655766
        add     eax, edi
        shr     rcx
        lea     ecx, [rcx + 2*rcx]
        lea     eax, [rax + rcx]
        add     eax, -1
        ret
.LBB0_1:
        xor     eax, eax
        ret

Также обрабатываются более сложные случаи (godbolt) – то есть оптимизация здесь не просто сравнивает паттерны. В этом посте мы рассмотрим, как выполняется эта оптимизация.
Читать дальше →

Правда о мозге Бендера

Reading time4 min
Views35K

14 ноября 1999 года эпизод "Футурамы", анимационного научно-фантастического сериала от создателя "Симпосонов" Мэтта Гроунинга, ошарашил гиков зрелищем технологического характера, абсолютно беспрецедентным в отрасли развлечений в прошлом. В этом эпизоде, "Фрай и фабрика Слёрма", профессор Фарнсворт направляет Ф-луч на голову безумного робота Бендера, и мы видим маленький прямоугольник, очевидно являющийся микросхемой, с надписью "6502".

Читать далее

Ассемблер RISC-V для начинающих

Reading time12 min
Views51K

Если вы не знаете ни одного ассемблера, или, возможно, не имеете большого опыта кодинга как такового, то ассемблер RISC-V может быть одним из лучших вариантов для того, чтобы погрузиться в эту тему. Конечно, материалов по ассемблеру x86 гораздо больше. Больше людей, которые могут в этом помочь. Но x86 - это чудовище, имеющее более 1500 различных инструкций.

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

Если вам необходим хороший старт, и вы не знаете ничего о микропроцессорах, вы можете прочесть мою статью "Как работает современный микропроцессор?" (How Does a Modern Microprocessor Work?).

Если вы хотите чего-нибудь простого и весёлого, можете начать с различных игр, в основе которых лежит программирование на ассемблере: Learn Assembly Programming the Fun Way.

Другим может понравиться ретропроцессор, такой, как 6502, использовавшийся в Commodore 64. Но проблема в том, что он окончательно устарел. При его разработке не учитывались реалии сегодняшнего дня.

Большой плюс RISC-V состоит в том, что он обладает современным и простым набором команд, спроектированным с учётом современных требований, таких как медленный доступ к памяти, использование предсказателя переходов, суперскалярного out-of-order выполнения команд и т.д.

Если вам интересно всё это, прочтите: Why Is Apple’s M1 Chip So Fast?

Перед тем, как мы начнём, можете распечатать это: James Zhu RISC-V Reference.

Читать далее

Обзор плат на SoC ARM+FPGA. Часть первая. Мир Xilinx

Reading time14 min
Views70K
Часть 1. Мир Xilinx
Часть 2. Мир Intel (Altera)

В опубликованном ранее переводе обзора 98 «хакерских» плат немалый интерес аудитории вызвали платы на базе SoC, сочетающих в себе ядра ARM и FPGA, такие, как Parallella. И это неудивительно, ведь такая комбинация даёт воистину потрясающие возможности по сравнению с «просто» процессором или «просто» FPGA. На таких SoC можно строить системы, сочетающие в себе алгоритмичски сложные задачи, поддержку сетевых стеков, GUI и прочих вещей, проще поддающихся реализации на процессоре, и задачи, требующие жесткого реального времени, обработки сигналов, обработки изображений и другие задачи, для реализации которых удобны FPGA. Разумеется, для многих задач можно использовать простые FPGA (возможно, включив в них IP-ядро процессора типа NIOS II или MicroBlaze), многие задачи можно решить на процессоре достаточной мощности, используя операционные системы реального времени (типа RTEMS), но всё же, SoC являются в настоящее время очень привлекательным вариантом для решения множества задач, как в профессиональных областях, так и для хобби.


Осторожно, много картинок!

Начинаем работу с Zynq 7000. Пособие для начинающих

Reading time7 min
Views43K

Совсем недавно мне в руки попался один из вариантов отладочной платы с SoC Zynq XC7Z020. Поискав в Интернете материалы, а-ля how-to, и попробовав накидать свой минимальный проект обнаружил, что есть целый ряд подводных камней. Именно об этом я и хотел бы рассказать в статье. Кому интересно - добро пожаловать под кат.

Читать далее

«Я устал, я мухожук», или почему VK скатился

Reading time9 min
Views90K

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

Читать далее

Перспективы IT — разный взгляд на будущие тренды

Reading time3 min
Views8K


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

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

Некоторые прогнозы кажутся логичными, но есть и спорные.
Читать дальше →

Обзор 98 одноплатных компьютеров. Часть 1

Reading time14 min
Views138K
Часть 1
Часть 2
Часть 3
Часть 4

От переводчика: Предлагаю вашему вниманию перевод отчёта по одноплатным компьютерам, который был опубликован на сайте LinuxGizmos.com. В отчёт включены краткие описания 98 плат стоимостью до 200 долларов. В отчёте такие платы называют «хакерскими», чтобы подчеркнуть их пригодность для различного творчества.
Так как объем информации весьма велик, я разбил перевод на несколько частей.

Также хочу предупредить, что под катом очень много картинок!

Итак, часть 1.



КДПВ

В течение последнего года, LinuxGizmos сообщал о дюжинах новых одноплатных компьютерах с открытыми спецификациями, дружественных к разработчикам и «хакерам», на которых можно запустить Linux и Android. Мы добавили их в наш каталог вместе со старыми платами. Платы, попавшие в наш обзор, стоят меньше 200 долларов без учёта пересылки, доступны для доставки в июле этого года, и удовлетворяют нашим (весьма гибким) критериям открытости.
Читать дальше →

Начинаем изучать STM32: битовые операции

Reading time6 min
Views77K

Небольшое отступление...


В прошлом уроке мы рассмотрели с чего начать, если вы решили изучать микроконтроллеры STM32: как настроить IDE, как создать простой проект, как откомпилировать программу и как запустить программу на выполнение. После полюбовались на перемигивание светодиодов на Discovery-плате )


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

Читать дальше →

Начинаем изучать STM32: Что такое регистры? Как с ними работать?

Reading time9 min
Views116K

Продолжаем рассмотрение базовых вопросов


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


Читать дальше →

Начинаем изучать STM32 или Управляем светом по-умному

Reading time8 min
Views251K

Небольшое вступление


Однажды, заехав в очередную съемную квартиру, я столкнулся с определенным неудобством, которое достаточно сильно напрягало: выключатель света в основной комнате оказался за шкафом-стенкой, который был прикручен к стене, и его перестановка была невозможна т.к. на это требовалось значительно много времени и сил. Решить данную проблему хотелось очень сильно и в голову пришла одна мысль: сделать дистанционный пульт для управления освещением!

Именно с идеи создания собственного пультика для управления светом в комнате и началось моё увлечение электроникой, микроконтроллерами и различными радиоустройствами.
Читать дальше →

Опыт использования FPGA платы DE10-Standard и DMA PL330

Reading time13 min
Views19K


Получил в свое распоряжение плату Terasic DE10-Standard. На ней много всего интересного: встроенный JTAG программатор, светодиоды, переключатели, кнопки, разъемы Audio / VGA / USB / Ethernet. Думаю, что нет особой необходимости перечислять все ее возможности, ведь каждый желающий может прочитать спецификацию платы на сайте производителя.

Для меня важно, что на плате стоит FPGA чип Cyclone V SX – 5CSXFC6D6F31C6N. Эта микросхема содержит два процессора ARM Cortex-A9 и 110K логических элементов FPGA. Это уже настоящая SoC HPS: System-On-Chip, Hard Processor System. С такими ресурсами можно пробовать делать довольно сложные проекты. Далее расскажу о своем опыте использования платы.
Читать дальше →

Осваиваем компьютерное зрение — 8 основных шагов

Reading time3 min
Views111K
Привет, читатель.

Для тебя уже не является новостью тот факт, что все на себе попробовали маски старения через приложение Face App. В свою очередь для компьютерного зрения есть задачи и поинтереснее этой. Ниже представлю 8 шагов, которые помогут освоить принципы компьютерного зрения.

image

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

Народная платформа для роботов на ROS

Reading time8 min
Views6.8K
Статья написана для только входящих в сам ROS и имеющих необходимость в постройке реального робота для обучения или выполнения реальных задач.



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

Изучаем сопромат с CalculiX

Reading time12 min
Views21K
Сдал сопромат — можно жениться!

Введение


Метод конечных элементов (МКЭ или FEM, у них за рубежом) прочно вошел в практику инженерных расчетов при проектировании сложных систем. В значительной степени это касается прочностных расчетов механики. Применения этого метода, реализуемого соответствующим программным обеспечением существенно сокращает цикл разработки конечного устройства, позволяя исключить массу экспериментальных проверок, необходимых при использования классических расчетов на основе методов сопромата и строительной механики. На текущий момент разработана масса прикладного ПО, реализующего МКЭ. Во главе угла стоит мощный ANSYS, по бокам от него и в почетном удалении — CAD-системы со встроенным FEM-модулем (SolidWorks, Siemens NX, Creo Parametric, Компас 3D).

CalculiX силен, но труден и непонятен. Исправим это?



Естественно, МКЭ проник и в сферу образования — чтобы использовать его в реальных задачах, нужна подготовка соответствующих специалистов. В столицах, в крупных технических вузах обстановка в этой области более-менее нормальная, да и у нас в регионе тот же ANSYS применяется, например, на кафедре теории упругости ЮФУ. Но по периферии, в узко специализированных и не богатых университетах ситуация плачевна. И всё просто — ANSYS стоит порядка 2 млн. рублей за одно рабочее место, а место требуется не одно. К сожалению не все вузы могут позволить себе выложить 30-40 миллионов на организацию компьютерного класса для обучения применению МКЭ.

Одной из альтернатив может служить применение в учебном процессе свободного ПО. К счастью таковое ПО имеется. Однако, русскоязычных материалов по его использованию практически не существует. Исправляя эту ситуацию, данную статью я собираюсь посвятить в введению в CalculiX — открытый, свободный программный пакет, предназначенный для решения линейных и нелинейных трёхмерных задач механики твёрдого деформируемого тела и механики жидкости и газа с помощью метода конечных элементов.
Читать дальше →

Применение RPA в научных и инженерных расчетах

Reading time8 min
Views3.2K

Вступление


В школе для закрепления знания нам задавали решить множество однотипных примеров. Мы все время досадовали: что тут ценного? Подставить в формулу два-три значения и получить ответ. Где тут полет мысли? Реальность оказалась суровей, чем школа.

Сейчас я работаю аналитиком в ИТ. До прихода в ИТ-сферу я поработал инженером-теплотехником, программистом ЧПУ, поучаствовал в исследовательских проектах.

На своем опыте я убедился, что 95% рабочего времени инженеры и ученые тратят на такие «однотипные» действия. Расчеты уравнений, проверки, регистрация результатов, копирование спецификаций. Проект за проектом, эксперимент за экспериментом, день за днем.
Читать дальше →

Information

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

Specialization

Embedded Software Engineer, Hardware Engineer
Lead
From 300,000 ₽
Linux
C
Programming microcontrollers
System Programming
Assembler
Object-oriented design
Applied math
Algorithms and data structures
Code Optimization
Visual Studio