1 Introduction
The Data Visualizer Run Time (DVRT) middleware enables real-time variable streaming and monitoring between embedded applications and the Microchip MPLAB Data Visualizer. This CMSIS Pack provides a portable, standardized solution for bidirectional communication over USART, allowing developers to monitor and modify variables without halting the CPU.
By leveraging CMSIS-Driver APIs, the DVRT middleware ensures compatibility across ARM Cortex-M devices and simplifies integration with existing projects. The included ring buffer and interrupt-driven reception provide robust, low-latency communication for real-time debugging and visualization.
1.1 Included in this Release
This release provides comprehensive middleware support for real-time variable streaming. The following components are included:
-
DVRT Core Middleware
- Standardized APIs for variable streaming and monitoring
- Integrated ring buffer for robust RX handling (no user implementation required)
DVRT_USART_RxHandler()callback for interrupt-driven receptionDVRT_USART_StartReceive()API to start continuous reception- Bidirectional communication for variable monitoring and control
-
CMSIS-Driver Integration
- USART communication via CMSIS-Driver (portable across Cortex-M devices)
- Compatible with any CMSIS-Driver USART implementation
-
Template Project
configure_dvrt.ctemplate for quick integration
-
Example Projects
- CNANO MCHP Driver DVRT Example
1.2 Installation Instructions
Dependencies:
| # | Packs | Version |
|---|---|---|
| 1 | ARM::CMSIS | 6.2.0 or later |
| 2 | ARM::CMSIS-Driver | Any compliant USART implementation |
Installation steps:
VS Code: CMSIS Toolbox
-
Step 1: Install the DVRT Pack
Using the CMSIS-Toolbox CLI:
cpackget add Microchip::CMSIS-Driver_DVRT -
Step 2: Add Required Packs and Components
Add the pack to your
*.csolution.yml:packs: - pack: Microchip::CMSIS-Driver_DVRTAdd the component to your
*.cproject.yml:components: - component: Middleware:DVRT:Core -
Step 3: Configure Compiler Settings (GCC)
The Data Visualizer reads debug symbols from
*.elffiles. Add the following settings to your*.csolution.yml:misc: - for-compiler: GCC C-CPP: - -gdwarf-4 - -fms-extensions - -Wno-unknown-attributes ASM: - -gdwarf-4Ensure that debug symbols are enabled:
build-types: - type: Debug debug: on -
Step 4: Add the Code Template
In VS Code, click the + icon next to Source Files and select "Add From Component Code Template", then choose "Middleware:DVRT:Core DVRT Example Template".
-
Verify installation:
cpackget listTip: Browse all available Microchip packs at packs.download.microchip.com
1.3 What is New?
This release introduces the DVRT middleware for ARM Cortex-M devices, focusing on an improved developer experience and seamless integration with MPLAB Data Visualizer:
-
Devices Supported
- Any ARM Cortex-M device with CMSIS-Core support
- Any device with a CMSIS-Driver USART implementation
- Tested on the PIC32CM-PL family (Cortex-M0+)
-
Introduction of DVRT Middleware
- Real-time variable streaming to the Microchip Data Visualizer
- Up to eight monitored variables simultaneously
- Configurable streaming interval (default 20 ms)
- Bidirectional communication for variable monitoring and control
- Integrated ring buffer (512 bytes by default) for robust RX handling
- Interrupt-driven reception
via the
DVRT_USART_RxHandler()callback
-
CMSIS-Driver Integration
- Portable USART communication via CMSIS-Driver APIs
- No vendor-specific dependencies in the middleware core
-
Developer Tools
- Template file (
configure_dvrt.c) for quick integration - Example project demonstrating usage with the PIC32CM-PL CNANO board
- Full API documentation accessible via the Software Components view
- Template file (
1.4 DVRT Limitations
This release offers robust middleware support for real-time variable streaming. However, the following limitations and restrictions currently apply:
-
Supported Development Environments
-
Arm Keil Studio Pack (MDK v6)
The DVRT middleware is fully supported in Visual Studio Code when using the Arm Keil Studio Pack (MDK v6) extensions.
You can use either:
- The ARM CMSIS Solution graphical user interface, or
- The CMSIS-Toolbox command-line interface (CLI).
-
-
Compiler Requirements
- A GCC compiler is required, as it
generates
.elffiles with proper debug symbols compatible with the MPLAB Data Visualizer. - The DWARF-4 debug format is required
(
-gdwarf-4) - Debug symbols must be enabled (
debug: on)
- A GCC compiler is required, as it
generates
-
Hardware Requirements
- An RX pin pull-up is required for reliable DVRT command reception
- The USART interrupt must be enabled for interrupt-driven reception
-
General Restrictions
- A maximum of eight variables can be
monitored simultaneously (configurable via
DYNAMIC_VAR_PTR_COUNT) - Variables must be declared
volatileand/orstaticand global to be visible to the Data Visualizer DVRT_Process()must be called consistently every ~1ms for reliable streaming
- A maximum of eight variables can be
monitored simultaneously (configurable via
1.5 Revision History
| Version | Date | Description |
|---|---|---|
| 1.0.0 | 2026-05-28 | Initial Release |
Version 1.0.0 (2026-04-24)
New Features:
- Initial release of the Data Visualizer Run Time (DVRT) middleware
- Integrated ring buffer for robust RX handling
DVRT_USART_RxHandler()callback for interrupt-driven receptionDVRT_USART_StartReceive()API to start continuous reception- USART communication via CMSIS-Driver
- SysTick-based periodic processing
- Variable streaming to the Microchip Data Visualizer
- Template file for quick integration
Known Issues:
- None
Support
For support questions, contact Microchip Support through https://www.microchip.com/en-us/support.
