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 reception
    • DVRT_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.c template for quick integration
  • Example Projects

    • CNANO MCHP Driver DVRT Example

1.2 Installation Instructions

Dependencies:

#PacksVersion
1ARM::CMSIS6.2.0 or later
2ARM::CMSIS-DriverAny 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_DVRT

    Add the component to your *.cproject.yml:

    components:
                        - component: Middleware:DVRT:Core
  • Step 3: Configure Compiler Settings (GCC)

    The Data Visualizer reads debug symbols from *.elf files. Add the following settings to your *.csolution.yml:

    misc:
                        - for-compiler: GCC
                        C-CPP:
                        - -gdwarf-4
                        - -fms-extensions
                        - -Wno-unknown-attributes
                        ASM:
                        - -gdwarf-4

    Ensure 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 list
    Tip: 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

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 .elf files 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)
  • 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 volatile and/or static and global to be visible to the Data Visualizer
    • DVRT_Process() must be called consistently every ~1ms for reliable streaming

1.5 Revision History

Table 1-1. Revision History
VersionDateDescription
1.0.02026-05-28Initial 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 reception
  • DVRT_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