wolfBoot adds ARM Compiler for Embedded support on STM32U5

wolfBoot can now be built for the STM32U5 with the ARM Compiler for Embedded (AC6). Teams using the ARM toolchain in Keil MDK can build a TrustZone-enabled wolfBoot image and its non-secure test application from the existing Makefiles by setting USE_ARMCLANG=1.

What the integration includes

  • The build selects armclang, armlink, armar and fromelf for target compilation, linking, archiving and image conversion. The existing GCC build remains the default.
  • New armlink scatter files lay out the secure bootloader, the non-secure test application, and the Non-Secure Callable (NSC) veneer region. The secure link also produces src/wolfboot_tz_nsc.o, the CMSE import library used by the non-secure application.
  • The startup code’s linker symbols are mapped to armlink region symbols, so the existing reset and memory initialization code can be used. A small fromelf adapter supplies the binary conversion commands used by the Makefiles.
  • For the secure wolfCrypt and PKCS#11 configuration, ARM-specific support routines provide a heap without relying on C runtime startup and resolve references that armlink checks before removing unused code.
  • The example STM32U5 configurations use ECC P-256 signatures, SHA-256 hashes, SP math, and the existing Cortex-M assembly path. An optional DEBUG_UART=1 build adds USART1 output on PA9/PA10.

Build it

Install the ARM Compiler for Embedded tools and put them in PATH, or set ARMCLANG_PATH to their directory with a trailing slash. From a clean wolfBoot checkout:

cp config/examples/stm32u5.config .config
make USE_ARMCLANG=1

For the STM32U5 example with wolfCrypt and PKCS#11 services in the secure world, use config/examples/stm32u5-wolfcrypt-tz.config instead. The Makefile flow produces the wolfBoot ELF and binary, link maps, a signed non-secure test image, and factory.bin.

This initial support is scoped to STM32U5 with TrustZone enabled (TZEN=1), but it does pave the way for other targets, which can be integrated by adding their own scatter files.

If you are integrating wolfBoot into a product and you are constrained to using the ARM Compiler for Embedded, contact us at facts@wolfssl.com or call +1 425 245 8247.

Download wolfSSL Now