Starting from 1.07.0 version STK now supports ARM TrustZone, here is full description: https://github.com/SuperTinyKernel-RTOS ... ne-support
The demo of TrustZone is based on RP2350 MCU.
Secure only:
https://github.com/SuperTinyKernel-RTOS ... ky-rp2350w
Secure + Non-Secure (when STK is running in Secure binary and executing Secure and Non-Secure tasks):
Binary 1 (Secure): https://github.com/SuperTinyKernel-RTOS ... sc-rp2350w
Binary 2 (Non-Secure): https://github.com/SuperTinyKernel-RTOS ... ns-rp2350w
You probably will be interested to know how to configure Pico SDK for Non-Secure part, because only Secure binary is allowed to talk to hardware. For that I advise to install Eclipse IDE for Embedded C/C++ Developers and open/import projects with it. Non-Secure binary must disable quite a lot of initialization code done by Pico SDK. Also, some Pico SDK functions have to be overridden (runtime_init_clocks, pico_get_unique_board_id): https://github.com/SuperTinyKernel-RTOS ... xample.cpp
Non-Secure binary can still talk to hardware but only via NSC veneers via Secure binary implemented by you.
Secure implementation shows how to partition FLASH and RAM via SAU: https://github.com/SuperTinyKernel-RTOS ... xample.cpp
Linker scripts for both binaries are here (TrustZone-related files have _tz in the filename): https://github.com/SuperTinyKernel-RTOS ... ds/pico2_w
Also, you might find this TrustZone-related LinkedIn article useful which is covering STK's support of TrustZone in detail: Building Hardware-Isolated Firmware with SuperTinyKernel RTOS and ARM TrustZone
If you have questions regarding TrustZone and RP2350 - will be happy to clarify more details.
The demo of TrustZone is based on RP2350 MCU.
Secure only:
https://github.com/SuperTinyKernel-RTOS ... ky-rp2350w
Secure + Non-Secure (when STK is running in Secure binary and executing Secure and Non-Secure tasks):
Binary 1 (Secure): https://github.com/SuperTinyKernel-RTOS ... sc-rp2350w
Binary 2 (Non-Secure): https://github.com/SuperTinyKernel-RTOS ... ns-rp2350w
You probably will be interested to know how to configure Pico SDK for Non-Secure part, because only Secure binary is allowed to talk to hardware. For that I advise to install Eclipse IDE for Embedded C/C++ Developers and open/import projects with it. Non-Secure binary must disable quite a lot of initialization code done by Pico SDK. Also, some Pico SDK functions have to be overridden (runtime_init_clocks, pico_get_unique_board_id): https://github.com/SuperTinyKernel-RTOS ... xample.cpp
Non-Secure binary can still talk to hardware but only via NSC veneers via Secure binary implemented by you.
Secure implementation shows how to partition FLASH and RAM via SAU: https://github.com/SuperTinyKernel-RTOS ... xample.cpp
Linker scripts for both binaries are here (TrustZone-related files have _tz in the filename): https://github.com/SuperTinyKernel-RTOS ... ds/pico2_w
Also, you might find this TrustZone-related LinkedIn article useful which is covering STK's support of TrustZone in detail: Building Hardware-Isolated Firmware with SuperTinyKernel RTOS and ARM TrustZone
If you have questions regarding TrustZone and RP2350 - will be happy to clarify more details.
Statistics: Posted by neutroncode — Tue Jul 07, 2026 8:15 am









