Arm® TrustZone® Technology Getting Started Application on PIC32CM LS60: Step 7
Verify that the temperature sensor (I/O1 Xplained Pro Extension Kit) is connected to Extension Header 1 (EXT1) on the PIC32CM LS60 Curiosity Pro Evaluation Kit.
![temperature sensor connected to Extension Header 1 (EXT1)](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/hw_setup1.png?width=569&height=492&rev=1.1)
Figure 1
PIC32CM LS60 Curiosity Pro Evaluation Kit allows utilizing the Embedded Debugger (EDBG) for debugging.
Connect the Type-A male to Micro-B USB cable to the Micro-B DEBUG USB port to power and debug the PIC32CM LS60 Curiosity Pro Evaluation Kit.
![Type-A male to Micro-B USB cable to the Micro-B DEBUG USB port](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/hw_setup2.png?width=571&height=659&rev=1.1)
Figure 2
Go to File > Project Properties - tz_pic32cm_ls60_cpro and make sure that the (EDBG) is selected as the debugger under the Hardware Tools.
![Project Properties window](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/hw_tool_selection.png?rev=1.1)
Figure 3
Clean and build your non-secure and secure applications by clicking on the Clean and Build button as shown in Figure 4.
![Clean and Build button](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/clean_and_build_icon.png?width=427&height=134&rev=1.1)
Figure 4
Program your application to the device by clicking on the Make and Program button as shown in Figure 5.
![Make and Program button](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/make_and_program.png?width=368&height=149&rev=1.1)
Figure 5
The lab will build and program successfully.
Now, open the Tera Term or Putty terminal application on your PC (from the Windows® Start menu by pressing the Start button). Select the Serial Port as shown in Figure 6.
![Tera Term New Connection window](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/com_port_setup1.png?rev=1.1)
Figure 6
Change the baud rate to 115200.
![COM53 Setup drop-down](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/com_port_setup2.png?rev=1.1)
Figure 7
![Baud Rate Setup in the Tera Term: Serial port setup and connection window](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/baud_rate_setup.png?rev=1.1)
Figure 8
You will see the LED toggling rate (Basic Functionality) by default on the terminal, then (Extended Functionality) temperature values (in °F) displayed on the terminal every 500 milliseconds on switch SW1 press, both scenarios as shown in Figure 9.
![Results 1](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/result1.png?width=649&height=337&rev=1.1)
Figure 9
After the Switch SW1 press, the temperature sampling rate (Extended Functionality) will be displayed (by default at the rate of 500 milliseconds).
![Results after Switch SW1 press](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/result2.png?width=654&height=339&rev=1.1)
Figure 10
Also, notice the LED0 blinking at a 500-millisecond rate.
You may vary the temperature by placing your finger on the temperature sensor (for a few seconds).
![temperature sensor verification](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/temp_sensor_placement.png?width=527&height=609&rev=1.1)
Figure 11
Press any character on the terminal to display the last five values written to the EEPROM and notice the toggle of LED1.
![Results 2](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/result3.png?rev=1.1)
Figure 12
Press the Switch SW0 on the PIC32CM LS60 Curiosity Pro Evaluation Kit to change the default sampling rate to one second.
![Switch SW0 on the PIC32CM LS60 Curiosity Pro Evaluation Kit](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/user_button_placement.png?width=476&height=510&rev=1.1)
Figure 13
![The temperature values are displayed](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/result4.png?rev=1.1)
Figure 14
Press the Switch SW1 on the PIC32CM LS60 Curiosity Pro Evaluation Kit to change the display from Temperature Sampling rate (Extended Functionality) to LED toggling rate (Basic Functionality).
![Results 3 after Switch SW1 press](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/result5.png?rev=1.1)
Figure 15
Every subsequent pressing of the Switch SW0 on the PIC32CM LS60 Curiosity Pro Evaluation Kit changes the default sampling rate to two seconds, four seconds, 500 milliseconds, and back to one second in cyclic order, as shown in Figure 16.
![COM53 - Tera Term VT window](/xwiki/bin/download/software-tools/harmony/pic32cm-trustzone-getting-started-training-module/step7/WebHome/result6.png?rev=1.1)
Figure 16
While the temperature sampling rate changes on every Switch SW0 press, notice the LED0 toggling at the same sampling rate.
Results
You observed that the non-secure application displayed the current room temperature values on the serial terminal every 500 milliseconds. You changed the temperature sampling values dynamically by pressing a user switch on the development kit in Secure mode. You could exercise sampling changes to one second, two seconds, or four seconds, and cycle back to 500 milliseconds every time you pressed the user switch. Also, you observed that a user LED was toggled every time in Secure mode when the current temperature was displayed on the serial terminal in Non-Secure mode. You also observed that the secure application retrieved the last five stored temperature values from EEPROM when the non-secure application reads a character entered on the serial terminal, and the non-secure application printed (on the serial terminal) the last five stored temperature values.
Analysis
You have successfully created your first Arm® TrustZone® technology application using MPLAB® Harmony v3 on a PIC32CM LS60 microcontroller. Your application used all the fundamental elements that go into building a real-time Arm TrustZone technology application. Your secure application successfully read temperature sensor values and your non-secure application displayed them periodically over a serial terminal on a PC. The secure application stored the temperature values in an EEPROM and retrieved the last five values stored in the EEPROM. The non-secure application displayed the last five values stored in EEPROM on the serial terminal when a user requested (by entering a character on the serial terminal). The secure application also took user input by pressing a switch on the development board.
In this application, you used the MPLAB Code Configurator (MCC) to configure the PIC32CM LS60 and also used the MPLAB Harmony v3 Framework. You used the clock configurator to set up the CPU clock and timer (Real-Time Clock (RTC)) clock. You configured SERCOM5 (as I²C), RTC, and External Interrupt Controller (EIC) Peripheral Libraries (PLIBs) in Secure mode and SERCOM3 (as Universal Synchronous Asynchronous Receiver Transmitter (USART)) in Non-Secure mode. You also configured the Direct Memory Access (DMA) in Non-Secure mode using the DMA configurator. You used the pin configurator to set up the pins for LED and switch functions in Secure mode. You successfully configured the memory regions as Secure and Non-secure memories using MCC.
In this application, you created a secure application to read the temperature sensor raw data and calculate the temperature values. Also, the secure application transferred the calculated temperature values to the non-secure application when required. By doing this, you can secure sensitive information, like sensor calibration data and the conversion process from the non-secure application.
Conclusions
This tutorial provided training for configuring and using all the fundamental components needed to build a real-time Arm TrustZone technology application on a PIC32CM LS60 microcontroller with MPLAB Harmony v3 Framework. As a next step, you may customize this application and reconfigure some of the components used in this tutorial. You could also add new components (PLIBs, etc.) to enhance this application to realize your end application.