ESP32 Performance Optimization Strategies: Memory Management Optimization

ESP32 Performance Optimization Strategies: Memory Management Optimization

In ESP32 development, optimizing memory management is a key aspect of enhancing system performance and stability. Below are some memory management optimization strategies based on ESP32 features and common issues, covering heap memory configuration, peripheral optimization, static allocation, task stack management, and more: 1. Heap Memory Management Optimization 1.1 Initialize Heap Memory Manager ESP-IDF provides … Read more

The Battle of Interrupt Priorities in STM32: How NVIC Preemption and DMA Saved Our Production Line from Losing Millions

The Battle of Interrupt Priorities in STM32: How NVIC Preemption and DMA Saved Our Production Line from Losing Millions

If you ask me what the most persistent issue in embedded development is, I would say just two words: interrupts. Especially in STM32, if the interrupt priorities are not configured correctly, the system may appear normal on the surface, but underneath it is a complete mess. The loss we experienced was a vivid example. It … Read more

Linux 6.17: The NOVA Open Source NVIDIA Driver Becomes More Powerful with Rust Enhancements

Linux 6.17: The NOVA Open Source NVIDIA Driver Becomes More Powerful with Rust Enhancements

This article is from Phoronix In Linux 6.17, in addition to Intel enabling SR-IOV for Battlemage graphics cards and several other major Intel Xe GPU features, there are also more updates to AMD graphics driver functionalities. The NOVA driver, as a modern open-source NVIDIA driver, is further developed within this kernel version. The initial NOVA … Read more

Generating Sine Wave Signals Using DAC and DMA

Generating Sine Wave Signals Using DAC and DMA

Software Development Tool: MPLAB X IDE v6.25MCC Configuration Tool: v5.5.2Chip Model: dsPIC33CK32MP502Principle Analysis: The DAC generates small segments of DC voltage. Since the duration of these small DC voltage segments is very short, they can be considered as a “point“, and many such segments can be stitched together to form a complete sine wave. As … Read more

Windows PCI Device Driver Development Guide: How to Use DMA in User Mode

Windows PCI Device Driver Development Guide: How to Use DMA in User Mode

In this article (Implementing a PCIe Device in Qemu: Adding DMA Functionality), we added a vector addition feature to the PCIe device simulated with Qemu. This PCIe device uses DMA read operations to transfer the contents of two operand vectors provided by the driver into an internal buffer of the PCIe device, computes the sum … Read more

STM32CUBEMX Tutorial 5 — DMA Configuration & Combining DMA with UART for Data Transfer

STM32CUBEMX Tutorial 5 — DMA Configuration & Combining DMA with UART for Data Transfer

Follow and star the public account “Embedded Development Notes”,so you won’t miss any exciting content! Previous articles recommended:STM32CUBEMX Tutorial 4 — UART (USART) Configuration and Redirecting printf OutputSTM32CUBEMX Tutorial 3 — Using External Interrupts (EXTI)STM32CUBEMX Tutorial 2 — Using GPIO, Input/OutputSTM32CUBEMX Tutorial 1 — Environment Setup and New Project CreationDetailed Installation Guide for STM32CUBEMX1. Introduction … Read more

Windows PCI Device Driver Development Guide: Installing Drivers on QEMU Simulated PCIe Devices

Windows PCI Device Driver Development Guide: Installing Drivers on QEMU Simulated PCIe Devices

To add more functionality to the PCI device driver we wrote, we simulated a test PCIe device on QEMU, allowing us to implement features we wanted, such as DMA and interrupts. For the specific implementation of this PCIe test device, please refer to How to Implement a PCIe Device in QEMU. The Vendor ID and … Read more

Detailed Explanation of CPU I/O Capabilities and Peripheral Control Techniques in Assembly Language

Detailed Explanation of CPU I/O Capabilities and Peripheral Control Techniques in Assembly Language

1. Overview of CPU I/O Capabilities The CPU not only has computational capabilities but also needs to exchange data with external devices, a capability known as I/O (Input/Output) capability. Typical I/O operations in a computer system include: Keyboard input Display output Disk read/write Network communication, etc. 2. Two Core Issues in Peripheral Interaction 1. Peripheral … Read more

UART and DMA Data Transmission

UART and DMA Data Transmission

Concept of DMA DMA (Direct Memory Access) allows data transfer without direct control from the CPU. It creates a direct pathway for data transfer between RAM and I/O devices, significantly improving CPU efficiency. There are several methods for UART data reception: the interrupt mode of UART isthe most commonly used data transmission method in microcontrollers, … Read more

STM32 SPI Interface Tutorial: Achieving Efficient and Stable Data Transmission

STM32 SPI Interface Tutorial: Achieving Efficient and Stable Data Transmission

The SPI (Serial Peripheral Interface) is one of the most widely used synchronous serial communication protocols in embedded systems, playing a crucial role in STM32 development. Compared to I2C and UART, SPI is particularly suitable for high-speed data acquisition, memory expansion, and display driving due to its full-duplex communication, high transmission rates, and hardware slave … Read more