參考資訊:
https://forum.arduino.cc/t/how-to-flash-a-bootloader/900260/3
Arduino Nano 33 BLE SWD腳位如下:

連接ST-LINK v2

寫一個簡單的空殼程式

選擇Arduino Nano 33 BLE

導出Firmware

安裝OpenOCD
$ cd $ git clone git://repo.or.cz/openocd.git $ cd openocd $ ./bootstrap $ ./configure $ make $ sudo make install
燒錄Firmware(使用xxx.ino.with_bootloader.bin,xxx.ino是你的專案名稱)
$ sudo openocd -f /usr/local/share/openocd/scripts/interface/stlink.cfg -f /usr/local/share/openocd/scripts/target/nrf52.cfg -c "program xxx.ino.with_bootloader.bin reset exit 0"
Open On-Chip Debugger 0.12.0+dev-00657-g7f2d3e292 (2024-07-14-09:25)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
nRF52 device has a CTRL-AP dedicated to recover the device from AP lock.
A high level adapter (like a ST-Link) you are currently using cannot access
the CTRL-AP so 'nrf52_recover' command will not work.
Do not enable UICR APPROTECT.
Info : clock speed 1000 kHz
Info : STLINK V2J17S4 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.207330
Info : [nrf52.cpu] Cortex-M4 r0p1 processor detected
Info : [nrf52.cpu] target has 6 breakpoints, 4 watchpoints
Info : [nrf52.cpu] Examination succeed
Info : [nrf52.cpu] starting gdb server on 3333
Info : Listening on port 3333 for gdb connections
[nrf52.cpu] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00003ef8 msp: 0x20008d48
** Programming Started **
Info : nRF52840-QI/CAAA(build code: D0) 1024kB Flash, 256kB RAM
Warn : Adding extra erase range, 0x00061798 .. 0x00061fff
** Programming Finished **
** Resetting Target **
shutdown command invoked