MPLAB® Harmony Graphics Suite > Examples and Demonstrations > Blank Applications > blank_quickstart
MPLAB® Harmony Graphics Suite
blank_quickstart

This application demonstrates a simple way to create and run a custom graphics application that directly uses the MPLAB Harmony Hardware Abstraction Layer (HAL) to show images on the screen. The same model can also be used to integrate third-party graphics libraries into MPLAB Harmony. The Aria graphics library is disabled and not used in this application.

Architecture

The diagrams below show the various software and hardware blocks used in this application: 

pic32mz_da_sk_extddr_meb2 

In this configuration, the application calls HAL APIs to initialize the HAL data structures and set up the HAL graphics layers. These API calls translate into Graphics LCD (GLCD) driver set up and initialization calls that configure the GLCD. After the initialization phase, the application transitions into the paint phase where it draws an image to the frame buffer in external DDR. The application uses a HAL API to get the start address of the frame buffer in the DDR and writes the pixel data directly to the frame buffer memory address. 

The GLCD hardware peripheral continuously refreshes the display panel with data from the frame buffer and the images are shown on the display.

pic32mz_da_sk_extddr_meb2_freertos 

In this configuration, the application is executed within an OS task context that is scheduled by the FreeRTOS scheduler. When the application task is executed, it calls the HAL APIs to initialize the HAL data structures and setup the HAL graphics layers. These API calls translate into GLCD driver setup and initialization calls that configure the GLCD. After the initialization phase, the application transitions into the paint phase where it draws an image to the frame buffer in external DDR. The application uses a HAL API to get the start address of the frame buffer in the DDR and writes the pixel data directly to the frame buffer memory address. 

The GLCD hardware peripheral continuously refreshes the display panel with data from the frame buffer and the images are shown on the display.

pic32mz_da_sk_intddr_meb2 

In this configuration, the application calls HAL APIs to initialize the HAL data structures and set up the HAL graphics layers. These API calls translate into Graphics LCD (GLCD) driver set up and initialization calls that configure the GLCD. After the initialization phase, the application transitions into the paint phase, where it draws an image to the frame buffer. The application uses a HAL API to get the start address of the frame buffer in internal DDR and writes pixel data directly to the frame buffer memory address. 

The GLCD hardware peripheral continuously refreshes the display panel with data from the frame buffer and the images are shown on the display.

 

pic32mz_da_sk_intddr_meb2_freertos 

In this configuration, the application is executed within an operating system task context that is scheduled by the FreeRTOS scheduler. When the application task is executed, it calls the HAL APIs to initialize the HAL data structures and setup the HAL graphics layers. These API calls translate into GLCD driver setup and initialization calls that configure the GLCD. After the initialization phase, the application transitions into the paint phase, where it draws an image to the frame buffer. The application uses a HAL API to get the start address of the frame buffer in internal DDR and writes pixel data directly to the frame buffer memory address. 

The GLCD hardware peripheral continuously refreshes the display panel with data from the frame buffer and the images are shown on the display.

Demonstration Features
Tools Setup Differences
  • Enable Use Graphics Stack in MPLAB Harmony Configurator (MHC)
  • In MHC, under the Graphics Stack options
    • Set Graphics Processor > Select Processor Type to None
    • Uncheck Use Harmony Graphics Composer Suite to disable the Aria User Interface Library
    • Uncheck Graphics Options > Enable Draw Pipeline
  • For the FreeRTOS configuration (e.g., pic32mz_da_sk_intddr_meb2_freertos), set the following in MHC:
    • Third Party Libraries > RTOS, enable Use RTOS. Set Select RTOS to FreeRTOS and set RTOS Configuration > Tick Rate (Hz) to “100”
    • In Application Configuration > Application 0 Configuration > RTOS Configuration, set Task Priority to “2”, check Use Task Delay and set Task Delay to “10”.
    • In Harmony Framework Configuration > RTOS Configuration, set System Task Priority to “2”, check Use System Task Delay and set Task Delay to “10”.
    • In Harmony Framework Configuration > Graphics Stack > Use Graphics Stack > Graphics RTOS Configuration, set Run Library Tasks As to Combine with System Tasks.
Topics
Name 
Description 
This application runs on the Curiosity PIC32MZ EF 2.0 Development Board using LCC software-based display controller to drive the High-Performance 4.3" WQVGA Display Module with maXTouch® Technology
This application runs on the SAM E70 Xplained Ultra Evaluation Kit using LCC software display controller to drive the High-Performance 4.3" WQVGA Display Module with maXTouch® Technology
This application runs on the SAM E54 Curiosity Ultra Development Board with a 24-bit pass-through GFX interface card and a maXTouch® Curiosity Pro Board
MPLAB® Harmony Graphics Suite