144 lines
4.1 KiB
Plaintext
144 lines
4.1 KiB
Plaintext
|
B-U585I-IOT02A README
|
||
|
======================
|
||
|
|
||
|
This README file discusses the port of NuttX to the STMicroelectronics
|
||
|
B-U585I-IOT02A board. That board features the STM32U585AII6QU MCU with 2MiB
|
||
|
of Flash and 768KiB of SRAM.
|
||
|
|
||
|
This port is a proof-of-concept to demonstrate running NuttX in the Non-
|
||
|
Secure TrustZone domain as a companion to TrustedFirmware-M (TFM). Running
|
||
|
NuttX on the B-U585I-IOT02A without TFM is currently not supported.
|
||
|
|
||
|
Contents
|
||
|
========
|
||
|
|
||
|
- Status
|
||
|
- Serial Console
|
||
|
- Configurations
|
||
|
|
||
|
Status
|
||
|
======
|
||
|
2022-02-13: With TrustedFirmware-M from STM32CubeU5 and signing the Apache
|
||
|
NuttX binary image to get a tfm_ns_init.bin, the board now boots and the
|
||
|
basic NSH configuration works with Apache NuttX as the OS running in the
|
||
|
non-secure world.
|
||
|
|
||
|
Clock Source
|
||
|
============
|
||
|
|
||
|
Only the low speed external (LSE) 32.768kHz crystal (X2) is installed in
|
||
|
default configurations.
|
||
|
|
||
|
FUNC GPIO
|
||
|
--------- ----
|
||
|
OSC32_IN PC14
|
||
|
OSC32_OUT PC15
|
||
|
--------- ----
|
||
|
|
||
|
Arduino Connector
|
||
|
=================
|
||
|
|
||
|
CN13 / SPI1 / D10 - D13
|
||
|
|
||
|
FUNC GPIO
|
||
|
--------- ----
|
||
|
SPI1_NSS PE12
|
||
|
SPI1_SCK PE13
|
||
|
SPI1_MISO PE14
|
||
|
SPI1_MOSI PE15
|
||
|
--------- ----
|
||
|
|
||
|
Serial Consoles
|
||
|
===============
|
||
|
|
||
|
Virtual COM Port on USART1
|
||
|
--------------------------
|
||
|
|
||
|
Default board is configured to use USART1 as console. USART1 is connected
|
||
|
to the ST-LINKV3E Virtual COM port as well as made available on connector
|
||
|
CN9.
|
||
|
|
||
|
Pins and Connectors:
|
||
|
|
||
|
FUNC GPIO Connector
|
||
|
Pin NAME
|
||
|
---- ---- ------ --------
|
||
|
TXD: PA9 CN9 14 T.VCP_TX
|
||
|
RXD: PA10 CN9 13 T.VCP_RX
|
||
|
---- ---- ------ --------
|
||
|
|
||
|
Configurations
|
||
|
==============
|
||
|
|
||
|
Information Common to All Configurations
|
||
|
----------------------------------------
|
||
|
Each configuration is maintained in a sub-directory and can be
|
||
|
selected as follow:
|
||
|
|
||
|
tools/configure.sh b-u585i-iot02a:<subdir>
|
||
|
|
||
|
Before building, make sure the PATH environment variable includes the
|
||
|
correct path to the directory than holds your toolchain binaries.
|
||
|
|
||
|
And then build NuttX by simply typing the following. At the conclusion of
|
||
|
the make, the nuttx binary will reside in an ELF file called, simply, nuttx.
|
||
|
|
||
|
make oldconfig
|
||
|
make
|
||
|
|
||
|
The <subdir> that is provided above as an argument to the tools/configure.sh
|
||
|
must be is one of the following.
|
||
|
|
||
|
NOTES:
|
||
|
|
||
|
1. These configurations use the mconf-based configuration tool. To
|
||
|
change any of these configurations using that tool, you should:
|
||
|
|
||
|
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
||
|
see additional README.txt files in the NuttX tools repository.
|
||
|
|
||
|
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
||
|
reconfiguration process.
|
||
|
|
||
|
2. Unless stated otherwise, all configurations generate console
|
||
|
output on USART3, as described above under "Serial Console". The
|
||
|
elevant configuration settings are listed below:
|
||
|
|
||
|
CONFIG_STM32L5_USART3=y
|
||
|
CONFIG_STM32L5_USART3_SERIALDRIVER=y
|
||
|
CONFIG_STM32L5_USART=y
|
||
|
|
||
|
CONFIG_USART3_SERIALDRIVER=y
|
||
|
CONFIG_USART3_SERIAL_CONSOLE=y
|
||
|
|
||
|
CONFIG_USART3_RXBUFSIZE=256
|
||
|
CONFIG_USART3_TXBUFSIZE=256
|
||
|
CONFIG_USART3_BAUD=115200
|
||
|
CONFIG_USART3_BITS=8
|
||
|
CONFIG_USART3_PARITY=0
|
||
|
CONFIG_USART3_2STOP=0
|
||
|
|
||
|
3. All of these configurations are set up to build under Linux using the
|
||
|
"GNU Tools for ARM Embedded Processors" that is maintained by ARM
|
||
|
(unless stated otherwise in the description of the configuration).
|
||
|
|
||
|
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm
|
||
|
|
||
|
That toolchain selection can easily be reconfigured using
|
||
|
'make menuconfig'. Here are the relevant current settings:
|
||
|
|
||
|
Build Setup:
|
||
|
CONFIG_HOST_LINUX=y : Linux environment
|
||
|
|
||
|
System Type -> Toolchain:
|
||
|
CONFIG_ARMV8M_TOOLCHAIN_GNU_EABIL=y : GNU ARM EABI toolchain
|
||
|
|
||
|
Configuration sub-directories
|
||
|
-----------------------------
|
||
|
|
||
|
nsh:
|
||
|
|
||
|
Configures the NuttShell (nsh) located at examples/nsh. This
|
||
|
configuration is focused on low level, command-line driver testing.
|
||
|
|