Step 2: Configure SERCOM3, SysTick and DMA
Configure SERCOM3 as Universal Synchronous Asynchronous Receiver Transmitter (USART) Peripheral
After launching MPLAB Code Configurator (MCC), navigate to the Device Resource tab. In the Device Resource panel, expand Libraries > Harmony > Peripherals > SERCOM3. To add the SERCOM3 Peripheral Library (PLIB) to the project graph, either double-click on SERCOM3 or drag and drop it into the project graph area.
Right-click the Yellow UART diamond icon in SERCOM3 and select STDIO from the Available Consumers. This setup enables functions such as printf() to transmit data to the terminal.

Select the SERCOM3 peripheral library in the Project Graph. The configuration options will be displayed on the right side of the interface. By default, the SERCOM operation mode is set to USART communication. Configure SERCOM PAD [1] as the Receive Pinout.

Pin Configuration for SERCOM 3
Open the Pin Configuration tabs by clicking Project Graph > Plugins > Pin Configuration.

Select the Pin Settings tab in MCC and sort the entries by Ports, as shown in the accompanying image.

Scroll down to pin number 7 (Pin ID: PB08) and pin number 8 (Pin ID: PB09). Configure PB08 as SERCOM3_PAD0 and PB09 as SERCOM3_PAD1. Set the Security Mode to NON-SECURE.

Configure SysTick Timer
After launching MCC, select System in the Project Graph. The configuration options will appear on the right side of the interface. Expand Cortex-M23 Configuration > SysTick, then select Enable SysTick. Navigate to SysTick Configuration and select Enable Interrupt.

Arm® TrustZone® for Armv8-M
Go to Project Graph > Plugins and select the Arm TrustZone for Armv8-M option from the drop-down.

In the Peripheral Configuration > Peripherals section of the Arm TrustZone for Armv8-M window, configure the required peripherals to operate in Non-Secure mode. Set SERCOM3 to the non-secure configuration.

Configure DMA
Open the DMA Configuration tab by clicking Plugins > DMA Configuration.
In the DMA Configuration window, select DMAC Channel 0 from the Active Channels List and set the trigger source to Software Trigger. Ensure that the DMA Channel 0 Settings match those shown in the accompanying image.

In the Arm TrustZone for Armv8-M window, set the DMAC to non-secure.
