Запускаем новый модуль flexible data rate can на STM32H743 на регистрах без cubemx.
User
PCIExpress 1.0 2.5GT/s analyzer на базе ПЛИС своими руками
На работе я занимаюсь созданием PCIExpress устройств на ПЛИС. Некоторые из ПЛИС имеют встроенное PCIExpress ядро, позволяющее работать с этим интерфейсом на уровне пользовательского приложения. ПЛИС серии ECP5UM фирмы Lattice использует Soft-IP Core для реализации протокола, написанный на языке HDL, а в микросхему лишь встроен блок, отвечающий за работу физического уровня. Мне пришла в голову идея попробовать сделать PCIExpress анализатор на базе этой микросхемы.
Цены на профессиональные анализаторы не доступны простому разработчику, да и зачастую неподъёмны даже для небольших фирм. Хотя для целей диагностики и обучения возможно создание бюджетного прибора, который хоть и будет уступать профессиональному устройству, но при этом будет выполнять основные функции анализатора, удовлетворяющие большинству потребностией в вопросах отладки протокола.
В данной статье я предлагаю описание первого устройства, созданного для проверки концепции. В ней содержится краткое описание архитектуры PCIExpress, общая идея проекта, результаты реализации и тестирования первого прототипа.
Полосковые СВЧ делители/направленные ответвители
В этой статье я расскажу о разных типах мостов-делителей-направленников на примере своих разработок. В статье приведу также несколько других схем и топологий, которые мне пока не приходилось использовать.
В статье вас ждут фотографии, схемы и немного формул.
Безопасно рисуем иконки в ПЗУ и ловим UB в C++ коде на IAR компиляторе
Доброго времени суток хабровчане. Давненько я не писал, был довольно сильно занят семьей, начались тренировки и нужно каждый день возить детей. Но вот наконец-то есть время чтобы немного вспомнить про разработку ПО.
Сегодня будем выводить иконку на черной белый графический LCD — но это слишком простая задача. Потому что перед тем как её вывести, необходимо её нарисовать. Рисовать можно в Paint, потом использовать генератор, который переведет растровое изображение в код и использовать его для вывода на экран.
Но мы не ищем простых путей, поэтому иконку будем рисовать сами на С++ для CortexM4 микроконтроллера и сразу в ПЗУ, чтобы не зависеть от всех этих внешних программ, заодно и посмотрим как можно отловить ошибки в уже существующем коде (студентов), которые никто не заметил (даже PVS-Studio).
А еще некоторые компиляторы запрещают делать UB для кода исполняющегося во времени компиляции, поэтому можно отлавливать и UB. Например, мой IAR прекрасно ловит переполнения int. Но обо всем поподробнее.
Чтобы было просто — рисовать будем круг.
С++ обертка для «всех» Операционных Систем Реального Времени для CortexM4
Я уже рассказывал о том как можно использовать FreeRtos для проектов, написанных на С++ в статье STM32, C++ и FreeRTOS. Разработка с нуля. Часть 1. С тех пор прошло целых 3 года, я серьезно постарел, потерял кучу нейронных связей, поэтому решил встряхнуть стариной для того, чтобы эти связи восстановить и замахнуться на обертку для «любой» популярной ОСРВ. Это конечно шутка, я намеренно взял «всех» в кавычки, но в каждой шутке есть доля правды.
Оптимизированный доступ к GPIO. Или GPIO как constexpr класс. С++
Добрый день, жители Хабра. Данный пост будет посвящен программированию на C++, и использованию constexpr объектов с целью повышения уровня удобства и одновременно оптимизации кода с точки зрения размера и производительности.
В процессе работы над одним из проектов, задумался: "нельзя ли сделать удобный доступ к GPIO портам на STM32, и при этом сделать его оптимальным по размеру кода и производительности". Что я хотел получить...
Аналоговое и цифровое питание. Мифы и реальность
Иногда разводишь ты такой плату микроконтроллера или изучаешь документацию к чипу и натыкаешься на такую картину: два питания — аналоговое и цифровое. Две земли тоже не редкость. Я встречал людей, которые даже после пары лет работы в индустрии не всегда знали точно, зачем и когда нужно разделять питание и землю и как это корректно делать. Мы попробуем сегодня пробраться вниз по кроличьей норе. В том числе станут понятны практики подключения аудио оборудования проводами, которые покупаются за золотые слитки.
Загрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE
В жизни каждого плисовода наступает момент, когда требуется написать собственный загрузчик файла конфигурации в ПЛИС. Пришлось мне участвовать в разработке учебного стенда для кафедры одного технического вуза. Стенд предназначен для изучения цифровой обработки сигналов, хотя в рамках этой статьи это не имеет особого значения. А значение имеет то, что в основе стенда стоит ПЛИС (Altera Cyclone IV), на которой по задумке автора стенда студенты собирают всякие схемы ЦОС. Стенд подключается к компьютеру через USB. Требуется выполнить загрузку ПЛИС с компьютера через USB.
Принято решение для подключения к ПК использовать FTDI в ее двухканальной ипостаси — FT2232H. Один канал будет использован для конфигурации ПЛИС, другой может быть использован для высокоскоростного обмена в режиме FIFO.
Релиз первой беты кросс-платформенного XAML UI-тулкита Avalonia
Состоялся релиз первой бета-версии Авалонии.
Avalonia — кроссплатформенный .NET UI-тулкит, вдохновлённый технологиями WPF и распространяемый под лицензией MIT. Он полностью поддерживает .NET Core 2.0, XAML, дата-биндинги, lookless-контролы и многое другое. Avalonia позволяет писать на C# приложения под Windows, Linux и Mac OS X. Возможность запуска на iOS и Android находится в экспериментальном состоянии.
Данная версия стабильна и имеет полное право называться бетой: тулкит не разваливается в руках и имеет приличный базовый набор контролов (см. видео). На нём создано два достаточно больших приложения с открытым исходным кодом: AvalonStudio — кроссплатформенная IDE для разработки на C# и C++ и Core2D — редактор 2D-схем и диаграмм.
Деловая переписка на английском языке: фразы и советы
Электронные сообщения дают возможность быстро обмениваться информацией на больших расстояниях. По скорости передачи идеи это приравнивает их к телефонному разговору. Однако электронные письма сохраняются на почтовых серверах и используются как печатное свидетельство наших слов. Поэтому электронная переписка требует ответственного отношения.
Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
Возвращаем драйверам AMD поддержку DirectX12 старыми процессорами
Программируем «Мегапроцессор»
Система команд Megaprocessor описана на сайте разработчика.
Большинство команд состоят из одного байта, за которым может следовать непосредственный операнд (один или два байта). Регистров общего назначения всего четыре (R0-R3), при этом они не равноправны: например, для команд доступа к памяти адрес должен быть либо в R2, либо в R3; а операнд — в одном из двух оставшихся регистров.
Программистам, привыкшим к системе команд x86 или ARM, набор команд Megaprocessor покажется крайне бедным: нет ни косвенной адресации «база+смещение», ни непосредственных операндов у арифметических команд (за исключением
addq ±1
, addq ±2
). Зато есть пара неожиданных возможностей: отдельная команда sqrt
, и режим .wt
для команд сдвига, который заменяет результат суммой выдвинутых битов. Таким образом можно, например, парой команд ld.b r1, #15; lsr.wt r0, r1
вычислить количество единичных битов в r0
(вопрос, столь любимый собеседователями на работу!). Мнемоника ld
для команды, загружающей в регистр непосредственное значение (вместо привычной по x86 или ARM мнемоники mov
) указывает на способ её выполнения: фактически, с точки зрения процессора, выполняется ld.b r1, (pc++)
.Итак, приступим.
Быстрее быстрого или глубокая оптимизация Медианной фильтрации для GPU Nvidia
Введение
В предыдущем посте я постарался описать, как легко можно воспользоваться преимуществом GPU для обработки изображений. Судьба сложилась так, что мне подвернулась возможность попробовать улучшить медианную фильтрацию для GPU. В данном посте я постараюсь рассказать каким образом можно получить еще больше производительности от GPU в обработке изображений, в частности, на примере медианной фильтрации. Сравнивать будем GPU GTX 780 ti с оптимизированным кодом, запущенном на современном процессоре Intel Core i7 Skylake 4.0 GHz с набором векторных регистров AVX2. Достигнутая скорость фильтрации квадратом 3х3 в 51 GPixels/sec для GPU GTX 780Ti и удельная скорость фильтрации квадратом 3х3 в 10.2 GPixels/sec на 1 TFlops для одинарной точности на данное время являются самыми высокими из всех известных в мире.
Перехват функций .NET/CLR
Метод сплайсинга для перехвата API-функций в Windows широко описан в Интернете и в различных литературных источниках. Простота указанного перехвата определяется следующими факторами:
- целевая функция является статической – она сразу присутствует в памяти загруженного модуля;
- адрес целевой функции легко определить (через таблицу экспорта модуля или функцию GetProcAddress).
Реализация замещающих функций на C/C++ при перехвате API-функций является оптимальным вариантом, поскольку Windows API реализовано, как известно, на языке C, и замещающие функции могут оперировать теми же понятиями, что и заменяемые.
История одного мошенника. Должен ли бизнес противостоять воровству, и что ему за это бывает
Совсем недавно у нас приключилась интересная история, которой мы хотим поделиться на Geektimes, раз уж у нас тут есть официальный блог. Это может быть показательным кейсом для руководителей небольших компаний, которые работают в интернете и, соответственно, сталкиваются с традиционными для онлайн-бизнеса проблемами. Стоит ли идти на поводу у мошенников, даже если они угрожают, что “испортят вашу репутацию” и что у вас “больше не будет клиентов”? Нужно ли вам вообще задумываться о том, какие товары пересылают клиенты с вашей помощью (если вы мейлфорвардер) и как вам платят ваши клиенты?
Сегодня речь пойдет о мошенническом использовании чужих кредитных карт и о том, что бывает, когда компания выводит мошенника на чистую воду.
Сразу стоит оговориться, что мы считаем безопасность платежей очень важным аспектом нашей работы. Предотвращение деятельности мошенников на сайте мы рассматриваем как зону нашей ответственности. Отдел, который занимается в Бандерольке этими вопросами, работает уже несколько лет и даже ведет отдельный проект Anticarder.com (которым пользуются многие крупные российские мейлфорвардеры). Но разговор сейчас не о нем.
Итак, несколько недель назад Бандеролька обнаружила подозрительную активность в одном из аккаунтов. Первичная проверка выявила, что действия клиента и в самом деле выглядят нетипично. Поэтому мы продолжили расследование. В ходе него выяснилось, что клиент промышляет кражей чужих кредитных карт. Причем делает он это давно, на постоянной основе.
Видимо, предполагая, что правоохранительным органам нет до него дела, он не особенно скрывался, что и позволило нам собрать существенную доказательную базу, на основе которой мы пришли к выводу, что имеем дело с мошенником и что за никами на форумах скрывается именно он. Обращаем внимание, что все сторонние данные, опубликованные в нашем мини-расследовании, взяты из открытых источников.
История одного диплома или как сделать шаробота
История этого проекта начинается в 2014 году, когда я учился на 4-м курсе в ведущем техническом вузе России на кафедре «Робототехнические системы». В это время я уже начал задумываться над темой диплома и искал проект, который был бы интересен мне, и при этом в нем присутствовала некоторая новизна. И вот однажды, увидев видео шаробота Rezero, я с друзьями захотел попробовать повторить успех. Кому интересно, что из этого получилось — прошу под кат.
Интервью с владельцем бионических протезов BeBionic и MyoFacil: их достоинства и недостатки в повседневной жизни
Лучше всего прочитать о достоинствах и недостатках бионических протезов от человека, который знаком с ними не понаслышке. Константин Дебликов пользуется протезами с декабря 2014 года. Специально для Geektimes он рассказал, как протезы помогают, какие хваты не нужны в принципе и какие сложности связаны с использованием бионических кистей. Это интервью можно считать обзором, честным и с массой критики в отношении устройств и их позиционирования.
С Константином мы познакомились после того, как он написал комментарий к моей статье на тему бионических протезов. Он зарегистрирован на Гиктаймс – Deblikov – и готов отвечать на ваши вопросы в комментариях.
Microsoft опубликовала информацию о реализации VFS в подсистеме Linux на Windows 10
В этом посте речь пойдет о реализации виртуальной файловой системы VFS в WSL, которая используется как уровень абстракции в Linux при доступе как к дисковым файлам, так и другим объектам ОС, включая, устройства, порты, процессы, микропроцессор и т. д. Так как ядро Windows 10 имеет структуру подсистем и изначально рассчитано на реализацию различных типов окружения, включая POSIX, отвечающий за семантику VFS драйвер LXCore.sys обращается к этим подсистемам ядра, реализуя соответствующую семантику и директории типа /dev, /proc, /sys.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте
Вообще я достаточно редко играю в компьютерные игры. Бывало, не играл по несколько лет подряд. Но иногда во мне просыпается маленький реверс-инженер, который мотивирует меня забраться в машинный код какой-нибудь любимой игрушки из прошлого. В последний год я занимался доработкой Need For Speed III: Hot Pursuit (1998 года). Это моя любимая игра в жанре, но теперь я, к своему сожалению, знаю о том, насколько отвратительно она написана. Большое количество маленьких багов в самых неожиданных местах — прямое следствие низкого качества кода.
Исследование защищенности карты Тройка
Карта Тройка представляет из себя универсальный пополняемый электронный кошелек, широко используемый в системах оплаты общественного транспорта Москвы с 2013 года.
Цель данного исследования — выяснить защищенность системы электронного кошелька от подделки баланса, оценить безопасность инфраструктуры, работающей с картой. Вся работа была выполнена без использования специальных технических средств. Использовался дешевый смартфон на платформе Android и персональный компьютер. Общее время, затраченное на исследование, составило 15 дней.
В ходе работы был успешно проведен реверс-инжиниринг мобильного приложения «Мой проездной», что позволило получить доступ к памяти карты и изучить структуру хранения данных. Были найдены уязвимости, позволяющие выполнить подделку баланса, записанного на электронном кошельке карты Тройка. В результате чего стало возможным использование систем, поддерживающих карту, без оплаты.
Итогом исследования стала разработка приложения TroikaDumper, позволяющего эксплуатировать уязвимости системы электронного кошелька.
Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.
Information
- Rating
- Does not participate
- Location
- Минск, Минская обл., Беларусь
- Registered
- Activity