Articles

A simple calculator with Bison and Flex.

Since writing a compiler is difficult, we need to structure the work. The standard way to do this is to split the compilation into multiple steps with well-defined expectations. Conceptually, these phases operate in series (although in practice they often alternate), each phase (except the first) takes the output of the previous phase as input. Usually, each stage is handled by a separate module ...
Read more

Industrial Network Protocols. OPC UA. Part 2.

The OPC UA standard specifies the methods for exchanging messages between the OPC server and the client, regardless of the hardware and software platform, the type of interacting systems, and networks. ОРС UA provides reliable and secure communication, counteracts hacker attacks, and guarantees the identity of client and server information. The new standard uses the concept of an object, which is understood as a ...
Read more

Industrial Network Protocols. OPC UA. Part 7.

locka99/opcua Description of the locka99/opcua project starts from the description of OPC UA. OPC UA is the industry standard for data monitoring. It's used extensively for embedded devices, industrial control, IoT, etc. - just about anything that has data that something else wants to monitor, control, or visualize. The development team implemented this project in the Rust language. I really like the Rust language ...
Read more

Industrial Network Protocols. OPC UA. Part 1.

Theoretical part Open Platform Communications (OPC) is a series of standards and specifications for industrial telecommunications and industrial networks. An industrial automation task force developed the original standard in 1996 under the name OLE for Process Control (Object Linking and Embedding for process control). OPC specifies the communication of real-time plant data between control devices from different manufacturers.OPC was designed to provide a common ...
Read more

Rust embedded. Stopwatch.

Rust embedded. Stopwatch.Rust embedded. Spi and embedded-graphics (in Russian).Rust embedded. Gpio. (in Russian)Rust embedded. Sequel. (in Russian)Rust embedded. (in Russian)Hello everyone. This is my new article about Rust for embedded systems. I decided to start writing articles in English to attract a large audience (I apologize to the Russian audience). This article is about creating a stopwatch using Rust and the embedded-graphics library. Today ...
Read more

Rust embedded. Spi и embedded-graphics.

Друзья, привет! Продолжаем тему Rust для embedded. Это уже 4 статья по теме rust embedded, для ознакомления с предыдущими статьями, вот список: Rust embedded. Stopwatch. Rust embedded. Spi и embedded-graphics. Rust embedded. Gpio. Rust embedded. Сиквел. Rust embedded. Сегодня у нас в статье GPIO, SPI, графический экран SSD1306 и крейт "embedded-graphics". Задача примера по нажатию на пользовательскую кнопку на отладочной плате вращать изображение на ...
Read more

Rust embedded. Gpio.

Rust embedded. Stopwatch. Rust embedded. Spi и embedded-graphics. Rust embedded. Gpio. Rust embedded. Сиквел. Rust embedded. Сегодня речь про gpio и rust. Gpio основной интерфейс для старта.  Сегодня мы поморгаем светодиодами на отладочной плате stm32f429i-disco и сделаем это двумя способами. Интерфейс ввода/вывода общего назначения (англ. general-purpose input/output, GPIO) — интерфейс для связи между компонентами компьютерной системы, к примеру микропроцессором и различными периферийными устройствами. Контакты ...
Read more

Rust embedded. Сиквел.

Rust embedded. Stopwatch. Rust embedded. Spi и embedded-graphics. Rust embedded. Gpio. Rust embedded. Сиквел. Rust embedded. Изучение на примерах очень важно для разработчика, с помощью примеров разработчик может прицениться к новому инструменту и понять, зачем ему этот инструмент. Какие преимущества даёт этот инструмент, почему нужно его использовать и т.д. Сегодня в статье у нас будет два примера для двух отладочных плат, один пример полностью ...
Read more

Rust embedded.

Rust embedded. Stopwatch. Rust embedded. Spi и embedded-graphics. Rust embedded. Gpio. Rust embedded. Сиквел. Rust embedded. Rust - это язык системного программирования, предназначенный для обеспечения безопасности, скорости и параллелизма. Rust имеет множество функций времени и безопасности во время компиляции, чтобы избежать сбоев данных и общих ошибок, все с минимальными издержками до нуля. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и ...
Read more

GCC для FPGA

После прочтения статьи Уничтожить монополию Америки в EDA. Иннополис делает первый шаг, мне захотелось погрузиться больше в EDA тематику и изучить, что есть в opensource на данный момент для этого. Начнем с SymbiFlow. SymbiFlow - это инструмент для FPGA с открытым исходным кодом для стремительных инноваций. SymbiFlow предназначен для обеспечения новых инноваций, а также для оптимизации и автоматизации рабочих процессов разработки под FPGA, чтобы ...
Read more

Стратегия и этапы разработки LLVM бекэнд компилятора для целевой архитектуры ShuraCore.

В данной статье рассмотрена стратегия и этапы проектирования бэкенд части компилятора с использованием инфраструктуры LLVM для целевой архитектуры ShuraCore. В статье показаны все этапы прохождения LLVM IR кода в SSA представлении к моменту получения исполняемого файла для целевой архитектуры. This article discusses a strategy and design stages of a backend part of a compiler using LLVM infrastructure for the ShuraCore target architecture. The article ...
Read more

HLS часть 2. BRAM.

Сегодня пример будет про BRAM и HLS, про BRAM было рассказано в предыдущих статьях, сегодня будем расширять знания по этой теме. HLS. Часть 0. HLS часть 1 . AXIS. HLS часть 2. BRAM. Vivado HLS (High Level Synthesis) — САПР Xilinx, предназначенная для создания цифровых устройств с применением языков высокого уровня C/C++. Block Memory Generator — используется как элемент оперативного и постоянного хранения информации, ...
Read more