boards: nucleo_u575zi_q: Instructions and configuration for openocd
STM32U5 support is not yet supported in upstream openocd. Provide instructions to use STMicro openocd fork as a temporary workaround. Additionally, provide openocd configuration to be used for this target. Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
This commit is contained in:
parent
5c24a6813d
commit
7a93e9e3a5
3 changed files with 86 additions and 0 deletions
|
@ -1,4 +1,11 @@
|
||||||
board_runner_args(stm32cubeprogrammer "--erase" "--port=swd" "--reset=hw")
|
board_runner_args(stm32cubeprogrammer "--erase" "--port=swd" "--reset=hw")
|
||||||
board_runner_args(stm32cubeprogrammer "--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)
|
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)
|
||||||
|
|
|
@ -234,6 +234,38 @@ You should see the following message on the console:
|
||||||
|
|
||||||
Hello World! arm
|
Hello World! arm
|
||||||
|
|
||||||
|
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 Nucleo U575ZI Q.
|
||||||
|
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: nucleo_u575zi_q
|
||||||
|
: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: nucleo_u575zi_q
|
||||||
|
:gen-args: -r openocd
|
||||||
|
:goals: flash
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/basic/blinky
|
||||||
|
:board: nucleo_u575zi_q
|
||||||
|
:gen-args: -r openocd
|
||||||
|
:goals: debug
|
||||||
|
|
||||||
|
|
||||||
.. _STM32 Nucleo-144 board User Manual:
|
.. _STM32 Nucleo-144 board User Manual:
|
||||||
http://www.st.com/resource/en/user_manual/dm00615305.pdf
|
http://www.st.com/resource/en/user_manual/dm00615305.pdf
|
||||||
|
@ -246,3 +278,6 @@ You should see the following message on the console:
|
||||||
|
|
||||||
.. _STM32CubeProgrammer:
|
.. _STM32CubeProgrammer:
|
||||||
https://www.st.com/en/development-tools/stm32cubeprog.html
|
https://www.st.com/en/development-tools/stm32cubeprog.html
|
||||||
|
|
||||||
|
.. _STMicroelectronics customized version of OpenOCD:
|
||||||
|
https://github.com/STMicroelectronics/OpenOCD
|
||||||
|
|
44
boards/arm/nucleo_u575zi_q/support/openocd.cfg
Normal file
44
boards/arm/nucleo_u575zi_q/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 NUCLEO-U575ZI-Q
|
||||||
|
|
||||||
|
# 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