I am using SWD programming everyday, but with higher speeds 20000-25000, and yapicoprobe instead of debugprobe (the warnings are OK).What's the recommended way to do mass production programming for an RP2350 based product with no exposed USB port?
I imagine a Pi debug probe connected to SWD pads on the production board via a bed of nails will work. I could use a command like:
openocd -s tcl -f interface/cmsis-dap.cfg -f target/rp2350.cfg -c "adapter speed 5000" -c "init; reset halt" -c "flash write_image erase myimage.bin 0x10000000" -c "flash verify_image myimage.bin 0x10000000" -c "shutdown"
Can this be improved on in terms of speed and reliability, or anything else? I've got almost no experience of production line environments, so am worried.
The command looks like:
openocd -s .pico-sdk/openocd/0.12.0+dev/scripts -f interface/cmsis-dap.cfg -f target/rp2350.cfg -c "adapter speed 25000; program "<IMAGE.elf>" verify reset exit"
Code:
Open On-Chip Debugger 0.12.0+dev-gebec950-dirty (2024-11-25-10:23)Licensed under GNU GPL v2For bug reports, read http://openocd.org/doc/doxygen/bugs.htmlInfo : Hardware thread awareness createdInfo : Hardware thread awareness createdInfo : Hardware thread awareness createdInfo : Hardware thread awareness createdcortex_m reset_config sysresetreqInfo : Using CMSIS-DAPv2 interface with VID:PID=xx:xx, serial=xxInfo : CMSIS-DAP: SWD supportedInfo : CMSIS-DAP: Atomic commands supportedInfo : CMSIS-DAP: Test domain timer supportedInfo : CMSIS-DAP: FW Version = 2.1.2Info : CMSIS-DAP: Serial# = xxInfo : CMSIS-DAP: Interface Initialised (SWD)Info : SWCLK/TCK = 0 SWDIO/TMS = 0 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1Info : CMSIS-DAP: Interface readyInfo : clock speed 25000 kHzInfo : SWD DPIDR 0x4c013477Info : [rp2350.dap.core0] Cortex-M33 r1p0 processor detectedInfo : [rp2350.dap.core0] target has 8 breakpoints, 4 watchpointsInfo : [rp2350.dap.core0] Examination succeedInfo : [rp2350.dap.core1] Cortex-M33 r1p0 processor detectedInfo : [rp2350.dap.core1] target has 8 breakpoints, 4 watchpointsInfo : [rp2350.dap.core1] Examination succeedInfo : starting gdb server for rp2350.dap.core0 on 3333Info : Listening on port 3333 for gdb connectionsWarn : [rp2350.dap.core1] VECTRESET is not supported on this Cortex-M core, using SYSRESETREQ instead.Warn : [rp2350.dap.core1] Set 'cortex_m reset_config sysresetreq'.[rp2350.dap.core0] halted due to breakpoint, current mode: Thread xPSR: 0xf9000000 pc: 0x00000088 msp: 0xf0000000[rp2350.dap.core1] halted due to debug-request, current mode: ThreadxPSR: 0xf9000000 pc: 0x00000088 msp: 0xf0000000** Programming Started **Info : RP2040 Flash Probe: 33554432 bytes @0x10000000, in 8192 sectorsInfo : Padding image section 3 at 0x10004088 with 120 bytes (bank write end alignment)Warn : Adding extra erase range, 0x10004100 .. 0x10004fff** Programming Finished **** Verify Started **** Verified OK **** Resetting Target **Warn : [rp2350.dap.core1] VECTRESET is not supported on this Cortex-M core, using SYSRESETREQ instead.Warn : [rp2350.dap.core1] Set 'cortex_m reset_config sysresetreq'.shutdown command invoked
Statistics: Posted by gmx — Wed Apr 02, 2025 12:33 am