The LPC55S69 is of special interest because it is one of the new ARM Cortex-M33 which implements new ARM Trustzone security features: with this feature it is possible to run ‘trusted’ and ‘untrusted’ code on the same microcontroller.
With the SDK installed, I can quickly create a new project or import example projects:
The SDK V2.5.1 comes with a FreeRTOS V10.0.1 port which runs out of the box, using the M4 port.
Debugging FreeRTOS on LPC55S69
In the McuOnEclipse FreeRTOS port I’m already using FreeRTOS 10.2.0, so this is something I have to soon too.
The IDE comes with the NXP MCUXpresso Configuration Tools integrated.
With the graphical configuration tools I can create pin muxing and clock configurations:
Secure and Non-Secure
The SDK comes with demos using secure + non-secure application parts. To make it easy, the projects have TrustZone settings for the compiler and linker:
TrustZone Project Settings
I have started playing with TrustZone, but this is subject of a follow-up article.
Dealing with a ARM Cortex-M33 multicore device for sure is a bit more complex than just using an old-fashioned single Core M0+. Because of the secure and non-secure features, it might be necessary to get things back into a clean state. So this is what worked best for me:
Have a non-secure and simple project present in the workspace. I’m using the ‘led_blinky’ from the SDK examples.
Power the Board with IP5 USB connector (P5: cable with the yellow dot) and debug it with the onboard LPC-Link2 connector (P6).
LPC55S69 Power and Debug
With that project selected, erase the flash using the action in the Quickstart Panel.
Erase Flash Using Linkserver
Select core 0 for the erase operation:
Select core for Flash Erase
This should work without problems.PressOK the dialog:
At this point I recommend to disconnect and re-connect the P6 (Debug) cable.
Now I can program the normal application again:
With this I have a working and known state for my experiments.
The Easter break is coming to an end and has been interesting at least to say. The NXP LPC55S69-EVK is very appealing: the board is reasonably priced and with all the connectors it is a good way to evaluate the microcontroller. The most interesting thing is that it has a dual-core ARM-Cortex M33 with the ARM TrustZone implementation. To be able to run ‘trusted’ and ‘untrusted’ (e.g. user code) on the same device could be one of the standard models of microcontroller going forward, especially in the ‘internet of things’ area. So I think I have to explore this device and board and its capabilities in at least one follow-up article?