ARM Semihosting (Part 2) - Example IO

Semihosting hardware setup: the host runs I/O facilities, the debugger (GDB client) and OpenOCD or PyOCD (GDB server), connected over USB to a Raspberry Pi Debug Probe (RP2040) running FreeRTOS with the CMSIS-DAP debugging library, a CDC UART and TinyUSB. The probe connects to the target RP2350's two Arm Cortex-M33 cores over SWD and UART. Host I/O facilities Debugger (GDB Client) OpenOCD / PyOCD (GDB Server) Debug Probe (RP2040) FreeRTOS Debugging Library (CMSIS-DAP) CDC UART TinyUSB USB Target (RP2350) ARM Cortex-M33 Application ARM Cortex-M33 Application SWD UART
RP2350 semihosting example.
[Read more]

ARM Semihosting (Part 1) - Introduction

ARM semihosting overview: on the host, OpenOCD (the on-chip debugger) talks to GDB, which prints to the host console. On the target, the application calls printf in the C library, which traps with BKPT or SVC; the debugger picks that up over SWD or JTAG. Host Host Interface / Console "Hello World" Debugger GDB On-Chip Debugger OpenOCD Target Application printf("Hello World") C Lib printf() BKPT / SVC SWD / JTAG
Explorations with ARM Semihosting and the Raspberry Pi Pico 2.
[Read more]