boards: Add support for b_u585i_iot02a
Add basic support for b_u585i_iot02a. Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
This commit is contained in:
parent
e7d60807b5
commit
e3fda6372f
11 changed files with 534 additions and 0 deletions
8
boards/arm/b_u585i_iot02a/Kconfig.board
Normal file
8
boards/arm/b_u585i_iot02a/Kconfig.board
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# B_U585I_IOT02A discovery kit configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2021 STMicroelectronics
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config BOARD_B_U585I_IOT02A
|
||||||
|
bool "STM32U585I IOT Discovery kit"
|
||||||
|
depends on SOC_STM32U585XX
|
11
boards/arm/b_u585i_iot02a/Kconfig.defconfig
Normal file
11
boards/arm/b_u585i_iot02a/Kconfig.defconfig
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# B_U585I_IOT02A discovery kit board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2021 STMicroelectronics
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
if BOARD_B_U585I_IOT02A
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "b_u585i_iot02a"
|
||||||
|
|
||||||
|
endif # BOARD_B_U585I_IOT02A
|
36
boards/arm/b_u585i_iot02a/arduino_r3_connector.dtsi
Normal file
36
boards/arm/b_u585i_iot02a/arduino_r3_connector.dtsi
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2021 STMicroelectronics
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
arduino_header: connector {
|
||||||
|
compatible = "arduino-header-r3";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map = <0 0 &gpioc 0 0>, /* A0 */
|
||||||
|
<1 0 &gpioc 2 0>, /* A1 */
|
||||||
|
<2 0 &gpioc 4 0>, /* A2 */
|
||||||
|
<3 0 &gpioc 5 0>, /* A3 */
|
||||||
|
<4 0 &gpioa 7 0>, /* A4 */
|
||||||
|
<5 0 &gpiob 0 0>, /* A5 */
|
||||||
|
<6 0 &gpioc 11 0>, /* D0 */
|
||||||
|
<7 0 &gpioc 10 0>, /* D1 */
|
||||||
|
<8 0 &gpiod 15 0>, /* D2 */
|
||||||
|
<9 0 &gpiob 2 0>, /* D3 */
|
||||||
|
<10 0 &gpioe 7 0>, /* D4 */
|
||||||
|
<11 0 &gpioe 0 0>, /* D5 */
|
||||||
|
<12 0 &gpiob 6 0>, /* D6 */
|
||||||
|
<13 0 &gpiof 13 0>, /* D7 */
|
||||||
|
<14 0 &gpioc 1 0>, /* D8 */
|
||||||
|
<15 0 &gpioa 8 0>, /* D9 */
|
||||||
|
<16 0 &gpioe 12 0>, /* D10 */
|
||||||
|
<17 0 &gpioe 15 0>, /* D11 */
|
||||||
|
<18 0 &gpioe 14 0>, /* D12 */
|
||||||
|
<19 0 &gpioe 13 0>, /* D13 */
|
||||||
|
<20 0 &gpiob 9 0>, /* D14 */
|
||||||
|
<21 0 &gpiob 8 0>; /* D15 */
|
||||||
|
};
|
||||||
|
};
|
59
boards/arm/b_u585i_iot02a/b_u585i_iot02a-common.dtsi
Normal file
59
boards/arm/b_u585i_iot02a/b_u585i_iot02a-common.dtsi
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2021 Linaro Limited
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <st/u5/stm32u585Xi.dtsi>
|
||||||
|
#include <st/u5/stm32u585aiixq-pinctrl.dtsi>
|
||||||
|
#include "arduino_r3_connector.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
green_led_1: led_1 {
|
||||||
|
gpios = <&gpioh 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "User LD7";
|
||||||
|
};
|
||||||
|
red_led_1: led_3 {
|
||||||
|
gpios = <&gpioh 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "User LD6";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
user_button: button {
|
||||||
|
label = "User";
|
||||||
|
gpios = <&gpioc 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&clk_lse {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&clk_msis {
|
||||||
|
status = "okay";
|
||||||
|
msi-range = <4>;
|
||||||
|
msi-pll-mode;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pll1 {
|
||||||
|
div-m = <1>;
|
||||||
|
mul-n = <80>;
|
||||||
|
div-q = <2>;
|
||||||
|
div-r = <2>;
|
||||||
|
clocks = <&clk_msis>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rcc {
|
||||||
|
clocks = <&pll1>;
|
||||||
|
clock-frequency = <DT_FREQ_M(160)>;
|
||||||
|
ahb-prescaler = <1>;
|
||||||
|
apb1-prescaler = <1>;
|
||||||
|
apb2-prescaler = <1>;
|
||||||
|
apb3-prescaler = <1>;
|
||||||
|
};
|
32
boards/arm/b_u585i_iot02a/b_u585i_iot02a.dts
Normal file
32
boards/arm/b_u585i_iot02a/b_u585i_iot02a.dts
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2021 STMicroelectronics
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "b_u585i_iot02a-common.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "STMicroelectronics B-U585I-IOT02A discovery kit";
|
||||||
|
compatible = "st,b-u585i-iot02a";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,console = &usart1;
|
||||||
|
zephyr,shell-uart = &usart1;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
led0 = &green_led_1;
|
||||||
|
led1 = &red_led_1;
|
||||||
|
sw0 = &user_button;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&usart1 {
|
||||||
|
pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
|
||||||
|
current-speed = <115200>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
10
boards/arm/b_u585i_iot02a/b_u585i_iot02a.yaml
Normal file
10
boards/arm/b_u585i_iot02a/b_u585i_iot02a.yaml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
identifier: b_u585i_iot02a
|
||||||
|
name: ST B_U585I_IOT02A Discovery kit
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
ram: 786
|
||||||
|
flash: 2048
|
20
boards/arm/b_u585i_iot02a/b_u585i_iot02a_defconfig
Normal file
20
boards/arm/b_u585i_iot02a/b_u585i_iot02a_defconfig
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_STM32U5X=y
|
||||||
|
CONFIG_SOC_STM32U585XX=y
|
||||||
|
|
||||||
|
# enable uart driver
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
|
||||||
|
# enable pinmux
|
||||||
|
CONFIG_PINMUX=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# Enable Clocks
|
||||||
|
CONFIG_CLOCK_CONTROL=y
|
||||||
|
|
||||||
|
# console
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
13
boards/arm/b_u585i_iot02a/board.cmake
Normal file
13
boards/arm/b_u585i_iot02a/board.cmake
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
board_runner_args(stm32cubeprogrammer "--erase" "--port=swd" "--reset=hw")
|
||||||
|
board_runner_args(stm32cubeprogrammer "--port=swd" "--reset=hw")
|
||||||
|
|
||||||
|
board_runner_args(openocd "--tcl-port=6666")
|
||||||
|
board_runner_args(openocd --cmd-pre-init "gdb_report_data_abort enable")
|
||||||
|
board_runner_args(openocd "--no-halt")
|
||||||
|
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake)
|
||||||
|
# FIXME: openocd runner requires use of STMicro openocd fork.
|
||||||
|
# Check board documentation for more details.
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
BIN
boards/arm/b_u585i_iot02a/doc/img/b-u585i-iot02a.jpg
Normal file
BIN
boards/arm/b_u585i_iot02a/doc/img/b-u585i-iot02a.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
301
boards/arm/b_u585i_iot02a/doc/index.rst
Normal file
301
boards/arm/b_u585i_iot02a/doc/index.rst
Normal file
|
@ -0,0 +1,301 @@
|
||||||
|
.. _b_u585i_iot02a_board:
|
||||||
|
|
||||||
|
ST B_U585I_IOT02A Discovery kit
|
||||||
|
###############################
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The B_U585I_IOT02A Discovery kit features an ARM Cortex-M33 based STM32U585AI MCU
|
||||||
|
with a wide range of connectivity support and configurations. Here are
|
||||||
|
some highlights of the B_U585I_IOT02A Discovery kit:
|
||||||
|
|
||||||
|
|
||||||
|
- STM32U585AII6Q microcontroller featuring 2 Mbyte of Flash memory, 786 Kbytes of RAM in UFBGA169 package
|
||||||
|
- 512-Mbit octal-SPI Flash memory, 64-Mbit octal-SPI PSRAM, 256-Kbit I2C EEPROM
|
||||||
|
- USB FS, Sink and Source power, 2.5 W power capability
|
||||||
|
- 802.11 b/g/n compliant Wi-Fi® module from MXCHIP
|
||||||
|
- Bluetooth Low Energy from STMicroelectronics
|
||||||
|
- MEMS sensors from STMicroelectronics
|
||||||
|
|
||||||
|
- 2 digital microphones
|
||||||
|
- Relative humidity and temperature sensor
|
||||||
|
- 3-axis magnetometer
|
||||||
|
- 3D accelerometer and 3D gyroscope
|
||||||
|
- Pressure sensor, 260-1260 hPa absolute digital output barometer
|
||||||
|
- Time-of-flight and gesture-detection sensor
|
||||||
|
- Ambient-light sensor
|
||||||
|
|
||||||
|
- 2 push-buttons (user and reset)
|
||||||
|
- 2 user LEDs
|
||||||
|
|
||||||
|
- Flexible power supply options:
|
||||||
|
- ST-LINK/V3
|
||||||
|
- USB Vbus
|
||||||
|
- External sources
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: img/b-u585i-iot02a.jpg
|
||||||
|
:width: 426px
|
||||||
|
:align: center
|
||||||
|
:height: 33px
|
||||||
|
:alt: B_U585I_IOT02A Discovery kit
|
||||||
|
|
||||||
|
More information about the board can be found at the `B U585I IOT02A Discovery kit website`_.
|
||||||
|
|
||||||
|
Hardware
|
||||||
|
********
|
||||||
|
|
||||||
|
The STM32U585xx devices are an ultra-low-power microcontrollers family (STM32U5
|
||||||
|
Series) based on the high-performance Arm|reg| Cortex|reg|-M33 32-bit RISC core.
|
||||||
|
They operate at a frequency of up to 160 MHz.
|
||||||
|
|
||||||
|
- Ultra-low-power with FlexPowerControl (down to 300 nA Standby mode and 19.5 uA/MHz run mode)
|
||||||
|
- Core: ARM |reg| 32-bit Cortex |reg| -M33 CPU with TrustZone |reg| and FPU.
|
||||||
|
- Performance benchmark:
|
||||||
|
|
||||||
|
- 1.5 DMPIS/MHz (Drystone 2.1)
|
||||||
|
- 651 CoreMark |reg| (4.07 CoreMark |reg| /MHZ)
|
||||||
|
|
||||||
|
- Security and cryptography
|
||||||
|
|
||||||
|
- Arm |reg| TrustZone |reg| and securable I/Os memories and peripherals
|
||||||
|
- Flexible life cycle scheme with RDP (readout protection) and password protected debug
|
||||||
|
- Root of trust thanks to unique boot entry and secure hide protection area (HDP)
|
||||||
|
- Secure Firmware Installation thanks to embedded Root Secure Services
|
||||||
|
- Secure data storage with hardware unique key (HUK)
|
||||||
|
- Secure Firmware Update support with TF-M
|
||||||
|
- 2 AES coprocessors including one with DPA resistance
|
||||||
|
- Public key accelerator, DPA resistant
|
||||||
|
- On-the-fly decryption of Octo-SPI external memories
|
||||||
|
- HASH hardware accelerator
|
||||||
|
- Active tampers
|
||||||
|
- True Random Number Generator NIST SP800-90B compliant
|
||||||
|
- 96-bit unique ID
|
||||||
|
- 512-byte One-Time Programmable for user data
|
||||||
|
- Active tampers
|
||||||
|
|
||||||
|
- Clock management:
|
||||||
|
|
||||||
|
- 4 to 50 MHz crystal oscillator
|
||||||
|
- 32 kHz crystal oscillator for RTC (LSE)
|
||||||
|
- Internal 16 MHz factory-trimmed RC ( |plusminus| 1%)
|
||||||
|
- Internal low-power 32 kHz RC ( |plusminus| 5%)
|
||||||
|
- 2 internal multispeed 100 kHz to 48 MHz oscillators, including one auto-trimmed by
|
||||||
|
LSE (better than |plusminus| 0.25 % accuracy)
|
||||||
|
- 3 PLLs for system clock, USB, audio, ADC
|
||||||
|
- Internal 48 MHz with clock recovery
|
||||||
|
|
||||||
|
- Power management
|
||||||
|
|
||||||
|
- Embedded regulator (LDO)
|
||||||
|
- Embedded SMPS step-down converter supporting switch on-the-fly and voltage scaling
|
||||||
|
|
||||||
|
- RTC with HW calendar and calibration
|
||||||
|
- Up to 136 fast I/Os, most 5 V-tolerant, up to 14 I/Os with independent supply down to 1.08 V
|
||||||
|
- Up to 24 capacitive sensing channels: support touchkey, linear and rotary touch sensors
|
||||||
|
- Up to 17 timers and 2 watchdogs
|
||||||
|
|
||||||
|
- 2x 16-bit advanced motor-control
|
||||||
|
- 2x 32-bit and 5 x 16-bit general purpose
|
||||||
|
- 4x low-power 16-bit timers (available in Stop mode)
|
||||||
|
- 2x watchdogs
|
||||||
|
- 2x SysTick timer
|
||||||
|
|
||||||
|
- ART accelerator
|
||||||
|
|
||||||
|
- 8-Kbyte instruction cache allowing 0-wait-state execution from Flash and
|
||||||
|
external memories: up to 160 MHz, MPU, 240 DMIPS and DSP
|
||||||
|
- 4-Kbyte data cache for external memories
|
||||||
|
|
||||||
|
- Memories
|
||||||
|
|
||||||
|
- 2-Mbyte Flash memory with ECC, 2 banks read-while-write, including 512 Kbytes with 100 kcycles
|
||||||
|
- 786-Kbyte SRAM with ECC OFF or 722-Kbyte SRAM including up to 322-Kbyte SRAM with ECC ON
|
||||||
|
- External memory interface supporting SRAM, PSRAM, NOR, NAND and FRAM memories
|
||||||
|
- 2 Octo-SPI memory interfaces
|
||||||
|
|
||||||
|
- Rich analog peripherals (independent supply)
|
||||||
|
|
||||||
|
- 14-bit ADC 2.5-Msps, resolution up to 16 bits with hardware oversampling
|
||||||
|
- 12-bit ADC 2.5-Msps, with hardware oversampling, autonomous in Stop 2 mode
|
||||||
|
- 2 12-bit DAC, low-power sample and hold
|
||||||
|
- 2 operational amplifiers with built-in PGA
|
||||||
|
- 2 ultra-low-power comparators
|
||||||
|
|
||||||
|
- Up to 22 communication interfaces
|
||||||
|
|
||||||
|
- USB Type-C / USB power delivery controller
|
||||||
|
- USB OTG 2.0 full-speed controller
|
||||||
|
- 2x SAIs (serial audio interface)
|
||||||
|
- 4x I2C FM+(1 Mbit/s), SMBus/PMBus
|
||||||
|
- 6x USARTs (ISO 7816, LIN, IrDA, modem)
|
||||||
|
- 3x SPIs (5x SPIs with dual OCTOSPI in SPI mode)
|
||||||
|
- 1x FDCAN
|
||||||
|
- 2x SDMMC interface
|
||||||
|
- 16- and 4-channel DMA controllers, functional in Stop mode
|
||||||
|
- 1 multi-function digital filter (6 filters)+ 1 audio digital filter with
|
||||||
|
sound-activity detection
|
||||||
|
|
||||||
|
- CRC calculation unit
|
||||||
|
- Development support: serial wire debug (SWD), JTAG, Embedded Trace Macrocell |trade|
|
||||||
|
|
||||||
|
- Graphic features
|
||||||
|
|
||||||
|
- Chrom-ART Accelerator (DMA2D) for enhanced graphic content creation
|
||||||
|
- 1 digital camera interface
|
||||||
|
|
||||||
|
- Mathematical co-processor
|
||||||
|
|
||||||
|
- CORDIC for trigonometric functions acceleration
|
||||||
|
- FMAC (filter mathematical accelerator)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
More information about STM32U585AI can be found here:
|
||||||
|
|
||||||
|
- `STM32U585 on www.st.com`_
|
||||||
|
- `STM32U585 reference manual`_
|
||||||
|
|
||||||
|
|
||||||
|
Supported Features
|
||||||
|
==================
|
||||||
|
|
||||||
|
The Zephyr b_u585i_iot02a board configuration supports the following hardware features:
|
||||||
|
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| Interface | Controller | Driver/Component |
|
||||||
|
+===========+============+=====================================+
|
||||||
|
| NVIC | on-chip | nested vector interrupt controller |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| UART | on-chip | serial port-polling; |
|
||||||
|
| | | serial port-interrupt |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| PINMUX | on-chip | pinmux |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| GPIO | on-chip | gpio |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
The default configuration can be found in the defconfig file:
|
||||||
|
|
||||||
|
``boards/arm/b_u585i_iot02a/b_u585i_iot02a_defconfig``
|
||||||
|
|
||||||
|
|
||||||
|
Connections and IOs
|
||||||
|
===================
|
||||||
|
|
||||||
|
B_U585I_IOT02A Discovery kit has 9 GPIO controllers (from A to I). These controllers are responsible for pin muxing,
|
||||||
|
input/output, pull-up, etc.
|
||||||
|
|
||||||
|
For mode details please refer to `B U585I IOT02A board User Manual`_.
|
||||||
|
|
||||||
|
Default Zephyr Peripheral Mapping:
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
- UART_1 TX/RX : PA9/PA10 (ST-Link Virtual Port Com)
|
||||||
|
- LD1 : PH7
|
||||||
|
- LD2 : PH6
|
||||||
|
- user button : PC13
|
||||||
|
|
||||||
|
System Clock
|
||||||
|
------------
|
||||||
|
|
||||||
|
B_U585I_IOT02A Discovery System Clock could be driven by an internal or external oscillator,
|
||||||
|
as well as the main PLL clock. By default the System clock is driven by the PLL clock at 80MHz,
|
||||||
|
driven by 16MHz high speed internal oscillator.
|
||||||
|
|
||||||
|
Serial Port
|
||||||
|
-----------
|
||||||
|
|
||||||
|
B_U585I_IOT02A Discovery kit has 4 U(S)ARTs. The Zephyr console output is assigned to UART1.
|
||||||
|
Default settings are 115200 8N1.
|
||||||
|
|
||||||
|
|
||||||
|
Programming and Debugging
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Flashing
|
||||||
|
========
|
||||||
|
|
||||||
|
B_U585I_IOT02A Discovery kit includes an ST-LINK/V2-1 embedded debug tool interface.
|
||||||
|
This interface is supported by the openocd version included in Zephyr SDK.
|
||||||
|
|
||||||
|
Flashing an application to B_U585I_IOT02A Discovery kit
|
||||||
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
Connect the B_U585I_IOT02A Discovery kit to your host computer using the USB
|
||||||
|
port, then run a serial host program to connect with your Discovery
|
||||||
|
board. For example:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ minicom -D /dev/ttyACM0
|
||||||
|
|
||||||
|
Then, build and flash in the usual way. Here is an example for the
|
||||||
|
:ref:`hello_world` application.
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: b_u585i_iot02a
|
||||||
|
:goals: build flash
|
||||||
|
|
||||||
|
You should see the following message on the console:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
Hello World! arm
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
|
||||||
|
STM32U5 support is not currently supported in openocd. As a temporary workaround,
|
||||||
|
user can use `STMicroelectronics customized version of OpenOCD`_ to debug the
|
||||||
|
the B_U585I_IOT02A Discovery kit.
|
||||||
|
For this you need to fetch this repo and build openocd following the instructions
|
||||||
|
provided in the README of the project. Then, build zephyr project indicating the
|
||||||
|
openocd location in west build command.
|
||||||
|
|
||||||
|
Here is an example for the :ref:`blinky-sample` application.
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/basic/blinky
|
||||||
|
:board: b_u585i_iot02a
|
||||||
|
:gen-args: -DOPENOCD="<path_to_openocd>/openocd/src/openocd" -DOPENOCD_DEFAULT_PATH="<path_to_openocd>/openocd/tcl/"
|
||||||
|
:goals: build
|
||||||
|
|
||||||
|
Then, indicate openocd as the chosen runner in flash and debug commands:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/basic/blinky
|
||||||
|
:board: b_u585i_iot02a
|
||||||
|
:gen-args: -r openocd
|
||||||
|
:goals: flash
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/basic/blinky
|
||||||
|
:board: nucleo_u575zi_q
|
||||||
|
:gen-args: -r openocd
|
||||||
|
:goals: debug
|
||||||
|
|
||||||
|
|
||||||
|
.. _B U585I IOT02A Discovery kit website:
|
||||||
|
https://www.st.com/en/evaluation-tools/b-u585i-iot02a.html
|
||||||
|
|
||||||
|
.. _B U585I IOT02A board User Manual:
|
||||||
|
https://www.st.com/resource/en/user_manual/dm00698410.pdf
|
||||||
|
|
||||||
|
.. _STM32U585 on www.st.com:
|
||||||
|
https://www.st.com/en/microcontrollers-microprocessors/stm32u575-585.html
|
||||||
|
|
||||||
|
.. _STM32U585 reference manual:
|
||||||
|
https://www.st.com/resource/en/reference_manual/rm0456-stm32u575585-armbased-32bit-mcus-stmicroelectronics.pdf
|
||||||
|
|
||||||
|
.. _STM32CubeProgrammer:
|
||||||
|
https://www.st.com/en/development-tools/stm32cubeprog.html
|
||||||
|
|
||||||
|
.. _STMicroelectronics customized version of OpenOCD:
|
||||||
|
https://github.com/STMicroelectronics/OpenOCD
|
44
boards/arm/b_u585i_iot02a/support/openocd.cfg
Normal file
44
boards/arm/b_u585i_iot02a/support/openocd.cfg
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
source [find interface/stlink-dap.cfg]
|
||||||
|
|
||||||
|
set WORKAREASIZE 0x8000
|
||||||
|
|
||||||
|
transport select "dapdirect_swd"
|
||||||
|
|
||||||
|
set CHIPNAME STM32U575ZITxQ
|
||||||
|
set BOARDNAME B-U585I-IOT02A
|
||||||
|
|
||||||
|
# Enable debug when in low power modes
|
||||||
|
set ENABLE_LOW_POWER 1
|
||||||
|
|
||||||
|
# Stop Watchdog counters when halt
|
||||||
|
set STOP_WATCHDOG 1
|
||||||
|
|
||||||
|
# STlink Debug clock frequency
|
||||||
|
set CLOCK_FREQ 8000
|
||||||
|
|
||||||
|
# Reset configuration
|
||||||
|
# use hardware reset, connect under reset
|
||||||
|
# connect_assert_srst needed if low power mode application running (WFI...)
|
||||||
|
reset_config srst_only srst_nogate connect_assert_srst
|
||||||
|
set CONNECT_UNDER_RESET 1
|
||||||
|
set CORE_RESET 0
|
||||||
|
|
||||||
|
# ACCESS PORT NUMBER
|
||||||
|
set AP_NUM 0
|
||||||
|
# GDB PORT
|
||||||
|
set GDB_PORT 3333
|
||||||
|
|
||||||
|
# BCTM CPU variables
|
||||||
|
|
||||||
|
source [find target/stm32u5x.cfg]
|
||||||
|
|
||||||
|
$_TARGETNAME configure -event gdb-attach {
|
||||||
|
echo "Debugger attaching: halting execution"
|
||||||
|
reset halt
|
||||||
|
gdb_breakpoint_override hard
|
||||||
|
}
|
||||||
|
|
||||||
|
$_TARGETNAME configure -event gdb-detach {
|
||||||
|
echo "Debugger detaching: resuming execution"
|
||||||
|
resume
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue