Pull to refresh
47
0
Андрей @andreili

Инженер-программист

Send message

GPU (desktop/laptop) Passthrough (Проброс видеокарты в ВМ) в ProxMox. Нюансы настроек. переезжаем в Linux

Reading time8 min
Views29K
image

Предыдущие статьи «Как из домашнего ПК средствами виртуализации сохранить игровую систему» и Проброс видеокарты в ноутбуке. Laptop GPU Passthrough породили множество откликов и значительный интерес к теме виртуализации. Благодаря Вашим вопросам и сообщениям на Хабрахабре и Тостере возникло понимание, что тему необходимо расширить и дополнить, а потому приглашаю всех Вас под кат, что бы обсудить нюансы этой темы, и разобрать типовые ошибки, проблемы и пути их решения для всех тех, кому это интересно с практической точки зрения ;)
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments25

Начинаем опыты с интерфейсом USB 3.0 через контроллер семейства FX3 фирмы Cypress

Reading time14 min
Views11K
В целом, основной цикл статей про работу с комплексом Redd можно считать завершённым. Мы познакомились с методиками доступа к основным компонентам комплекса, научились писать и отлаживать на нём программы для центрального процессора, при этом локально используя хоть Linux, хоть Windows. Мы научились разрабатывать «прошивки» для ПЛИС, а также начерно освоили типовой цикл их разработки (написание кода моделирование, запуск в железе). Вроде, всё.

Но тут мне пришлось освоить работу с шиной USB 3.0 через контроллер семейства FX3 фирмы Cypress. Пока свежи воспоминания, я решил задокументировать детали процесса, так как сделав всё по фирменным описаниям, можно либо не получить ничего, либо получить не совсем оптимальную систему. И снова вышел целый блок статей. В первой из них, мы рассмотрим, где взять «прошивку» для самого контроллера, как её собрать и залить в него. Также сделаем базовую «прошивку» для ПЛИС.


Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments4

Переключение контекста и простой вытесняющий планировщик для CortexM

Reading time19 min
Views18K

image

С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидать в Cube или собрать на Ардуино, но задача курсового не в этом. Основная задача — самостоятельно, с нуля разобраться с модулями микроконтроллера, продумать архитектуру ПО и, собственно, закодировать все на С++, начиная от регистров и заканчивая задачами РТОС. Кому интересно, здесь пример отчета по такому курсовому


Так вот, появилась небольшая проблема, а именно, бесплатный IAR позволяет делать ПО размером не более 30 кБайт. А это уже впритык к размеру курсового в неоптимизированном виде. Анализ кода студентов выявил, что примерно 1/4 часть их приложения занимает FreeRtos — около 6 кБайт, хотя для того, чтобы сделать вытесняющую переключалку и управлялку задачами хватило бы, наверное… да байт 500 причем вместе с 3 задачами (светодиодными моргунчиками).


Эта статья будет посвящена тому, как можно реализовать Очень Простой Планировщик(он же SST), описанный в статье аж 2006 года и сейчас поддерживаемый Quantum Leaps в продукте Qp framework.


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


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


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

Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments31

10 советов схемотехнику

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


Читать дальше →
Total votes 212: ↑210 and ↓2+208
Comments244

Проблематика и особенности реализации UEFI на различных платформах

Reading time10 min
Views7.9K
С момента выпуска первой спецификации EFI в двухтысячном году прошло около девятнадцати лет. Десять лет понадобилось интерфейсу, чтобы выйти на пользовательский рынок и закрепиться на нем. На текущий момент редко где можно увидеть современный компьютер без UEFI в прошивке материнской платы. Стандарт интерфейса нарастил «мясо» и несколько тысяч страниц в официальной документации. Для обычного пользователя ничего не поменялось, кроме эпизодических столкновений с включённым Secure Boot. Но если плоскость работы смещается в разработку, всё становится интереснее.


Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments15

Безопасный доступ к полям регистров на С++ без ущерба эффективности (на примере CortexM)

Reading time24 min
Views16K
image
Рис. взят с сайта www.extremetech.com/wp-content/uploads/2016/07/MegaProcessor-Feature.jpg

Всем доброго здравия!

В прошлой статье я рассмотрел вопрос о проблеме доступа к регистрам микроконтроллера с ядром CortexM на языке С++ и показал простые варианты решения части проблем.

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

Всех кого заинтересовал, добро пожаловать под кат. Кода будет много.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments40

С++, метапрограммирование и регистры микроконтроллера

Reading time7 min
Views7.2K

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


Вот уже несколько лет все свои проекты для линейки микроконтроллеров stm32 я делаю на C++.


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


Во избежание лишних вопросов: я использую связку QtCreator+gcc+gdb+openocd. Как с ней работать, описано многократно, поэтому не буду на этом останавливаться, а вот о своих подходах к работе с микроконтроллерами расскажу подробнее.


На нижнем уровне проекта, как правило, находятся драйвера периферии. С них и начнём.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments65

Магия SSH

Reading time11 min
Views488K
С SSH многие знакомы давно, но, как и я, не все подозревают о том, какие возможности таятся за этими магическими тремя буквами. Хотел бы поделиться своим небольшим опытом использования SSH для решения различных административных задач.

Оглавление:

1) Local TCP forwarding
2) Remote TCP forwarding
3) TCP forwarding chain через несколько узлов
4) TCP forwarding ssh-соединения
5) SSH VPN Tunnel
6) Коротко о беспарольном доступе
7) Спасибо (ссылки)
Читать дальше →
Total votes 115: ↑106 and ↓9+97
Comments75

Мой первый компилятор на LLVM

Reading time4 min
Views25K
Это руководство посвящено написанию простейшего компилятора на LLVM. Никакой предварительной подготовки не требуется.



Входным языком нашего компилятора будет BF. Это классический «игрушечный» язык для компиляторов, и даже есть компилятор BF в примерах к LLVM! В этом посте я приведу процесс написания компилятора с пояснениями.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments11

Опыт создания сборок Linux под одноплатники с поддержкой обновлений

Reading time9 min
Views28K
image

Введение


На данный момент, на рынке представлен большой ассортимент одноплатников на любой вкус по приемлемой цене.

Как правило, различные сборки от производителей, предназначены для оценки платформы и являются отправной точкой нового проекта, поэтому не всегда подходят под конкретные задачи. В задачах где требуется высокая надежность, перед разработчиком встает вопрос, как доработать дистрибутив и потом не поплатиться за это полной переработкой образа и системы обновления.
Читать дальше →
Total votes 82: ↑82 and ↓0+82
Comments65

Вредонос Sustes обновился и теперь распространяется через уязвимость в Exim (CVE-2019-10149)

Reading time2 min
Views4.4K


Вредонос Sustes обновился и теперь распространяется через уязвимость в Exim (CVE-2019-10149).

Новая волна криптомайнера Sustes теперь использует для заражений июньскую уязвимость в почтовом сервере Exim. Начиная с 11 августа наши сетевые сенсоры PT Network Attack Discovery обнаруживают во входящем сетевом трафике попытки эксплуатации почтовых серверов.

Сканирование происходит с адреса 154.16.67[.]133, и команда в поле RCPT TO ведет к загрузке вредоносного bash-скрипта по адресу hxxp://154.16.67[.]136/main1. Цепочка скриптов приводит к установке на хост XMR-майнера и добавлению его в crontab. Скрипт добавляет свой публичный SSH-ключ в список authorized_keys текущего пользователя, что позволит злоумышленникам в дальнейшем получить беспарольный SSH-доступ к машине.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments0

Независимый обзор PVS-Studio (Linux, C++)

Reading time5 min
Views16K

Увидел публикацию о том, что PVS таки научился анализировать под Линуксами, и решил попробовать на своих проектах. И вот что из этого получилось.

Читать дальше →
Total votes 85: ↑75 and ↓10+65
Comments70

WSL 2 теперь доступен для Windows Insiders

Reading time3 min
Views32K
Мы рады рассказать, что теперь вы можете попробовать Windows Subsystem for Linux 2 установив Windows build 18917 в Insider Fast ring! В этой статье мы расскажем о том, как начать работу, о новых wsl.exe командах, а также поделимся важными заметками. Полная документация о WSL 2 доступна на странице в нашей документации.

Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments18

Использование C++ и шаблонов с переменным количеством аргументов при программировании микроконтроллеров

Reading time7 min
Views23K

ARM с ядром Cortex Mx (на примере STM32F10x)


КДПВ Микроконтроллер ARM Cortex M3 STM32F103c8t6 широко распространен как 32-х битный микроконтроллер для любительских проектов. Как для практически любого микроконтроллера, для него существует SDK, включающая, в том числе и заголовочные файлы C++ определения периферии контроллера.

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

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

Эта структура и её экземпляр описаны вот так:
Читать дальше
Total votes 27: ↑26 and ↓1+25
Comments91

Делаем ST-Link V2.1 из китайского ST-Link V2

Reading time3 min
Views153K
Привет, Хабр!

В данной статье расскажу как модифицировать ST-Link V2 до ST-Link V2.1.

Возможно для кого-то это не будет новостью, но особой инфы по данной теме в инете не нашел.

Кому интересно — прошу под кат.
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments103

Радиомодули для arduino JDY-40

Reading time1 min
Views49K
image

Приветствую всех. На просторах aliexpress наткнулся на очередное китайское творение, из раздела "Беспроводные модули для arduino". Ранее подобные модули с аналогичными возможностями за столь малые деньги мне не попадались. Вот я и решил сделать обзор данного модуля. Возможно, кого-то он заинтересует. Речь пойдет о маломощном трансивере JDY-40, работающем на частоте 2,4 Гигагерца. Работать с модулем очень просто, для настройки модуля используются ат команды, которые передаются по USART.

Total votes 54: ↑47 and ↓7+40
Comments22

MakiseGUI — бесплатная библиотека графического интерфейса для микроконтроллеров

Reading time6 min
Views33K

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


Назвал я её MakiseGui.


Total votes 66: ↑65 and ↓1+64
Comments57

MIPSfpga и внутрисхемная отладка

Reading time14 min
Views9.7K

Поставляемые в составе пакета MIPSfpga документация, ПО и конфигурационные файлы предполагают применение Bus Bluster в качестве аппаратного отладчика. Статья содержит инструкции по использованию для этой цели практически любого USB-UART адаптера, построенного на микросхеме FTDI с поддержкой MPSSE (FT232H, FT2232H, FT4232H, FT2232D). Кратко описывается интеграция среды разработки Visual Studio Code и отладчика GNU GDB.


Все конфигурационные файлы, описываемые в статье, а также часть документации доступны на github.


Элементы системы


image

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments2

Как начать работать с MIPSfpga

Reading time3 min
Views25K
MIPSfpga — это пакет, который содержит процессорное ядро в исходниках на Verilog, которое можно менять, добавлять новые инструкции, строить многопроцессорные системы, менять одновременно софтвер и хардвер, симулировать на симуляторе верилога, синтезировать для ПЛИС/FPGA и т.д. Его можно в целях эксперимента например запускать с частотой 1 такт в секунду и выводить наружу информацию о состоянии кэша, конвейера, и любых структур внутри процессора. При этом ядро MIPS microAptiv UP внутри MIPSfpga — это то же ядро которое например используется в платформе IoT Samsung Artik 1 и Microchip PIC32MZ, т.е. студенты получают возможность работать с тем же кодом, с которым работают инженеры в Samsung и Microchip.

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



Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments11

Lightshot клиент для Ubuntu Linux (и не только)

Reading time2 min
Views54K
Давольно-таки давно пользуюсь сервисом для создания скриншотов Lightshot.

Что раздражало, так это то, что у них небыло клиента под Linux (а на работе я сижу под Ubuntu Linux, да и на части компов дома у меня тоже стоит Ubuntu Linux). А ставить wine меня не разу не улыбало.

Всех страждущих — прошу под кат.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments26

Information

Rating
Does not participate
Location
Светлогорск, Гомельская обл., Беларусь
Date of birth
Registered
Activity