File tree Expand file tree Collapse file tree 4 files changed +53
-2
lines changed
Expand file tree Collapse file tree 4 files changed +53
-2
lines changed Original file line number Diff line number Diff line change 3030. $CORE_PATH /hw/scripts/openocd.sh
3131
3232FILE_NAME=$BIN_BASENAME .elf
33- CFG=" -f interface/stlink.cfg -f target/nrf52.cfg"
33+
34+ # autodetect or default stlink
35+ openocd_detect_interface stlink
36+
37+ CFG=" -f interface/${OPENOCD_INTERFACE} .cfg -f target/nrf52.cfg"
38+
3439EXTRA_GDB_CMDS=' monitor arm semihosting enable'
3540# Exit openocd when gdb detaches.
3641EXTRA_JTAG_CMD=" $EXTRA_JTAG_CMD ; nrf52.cpu configure -event gdb-detach {if {[nrf52.cpu curstate] eq \" halted\" } resume;shutdown}"
Original file line number Diff line number Diff line change 3131
3232. $CORE_PATH /hw/scripts/openocd.sh
3333
34- CFG=" -f interface/stlink.cfg -f target/nrf52.cfg"
34+ # autodetect or default stlink
35+ openocd_detect_interface stlink
36+
37+ CFG=" -f interface/${OPENOCD_INTERFACE} .cfg -f target/nrf52.cfg"
3538
3639if [ " $MFG_IMAGE " ]; then
3740 FLASH_OFFSET=0
Original file line number Diff line number Diff line change @@ -76,3 +76,31 @@ parse_extra_jtag_cmd() {
7676 echo $NEW_EXTRA_JTAG_CMD
7777 EXTRA_JTAG_CMD=$NEW_EXTRA_JTAG_CMD
7878}
79+
80+ # Try to detect connected programmers
81+ detect_programmer () {
82+
83+ DETECTED_PROGRAMMER=' none'
84+
85+ # check if lsusb command is available
86+ if [ $( which lsusb) ] ; then
87+
88+ # extract the VID:PID list for connected USB devices
89+ USB_DEV=$( lsusb | cut -f6 -d' ' )
90+
91+ echo " $USB_DEV " | grep -q -i ' c251:f001'
92+ [ $? -eq 0 ] && DETECTED_PROGRAMMER=' cmsis-dap'
93+
94+ echo " $USB_DEV " | grep -q -i ' 0483:3748'
95+ [ $? -eq 0 ] && DETECTED_PROGRAMMER=' stlink-v2'
96+
97+ echo " $USB_DEV " | grep -q -i ' 0483:374b'
98+ [ $? -eq 0 ] && DETECTED_PROGRAMMER=' stlink-v2-1'
99+
100+ echo " $USB_DEV " | grep -q -i ' 1366:1015'
101+ [ $? -eq 0 ] && DETECTED_PROGRAMMER=' jlink'
102+
103+ fi
104+
105+ echo " Detected programmer: $DETECTED_PROGRAMMER "
106+ }
Original file line number Diff line number Diff line change @@ -149,3 +149,18 @@ openocd_reset_run () {
149149 openocd $CFG -c init -c " reset run" -c shutdown
150150 return $?
151151}
152+
153+ openocd_detect_interface () {
154+ detect_programmer
155+ case $DETECTED_PROGRAMMER in
156+ cmsis-dap)
157+ OPENOCD_INTERFACE=' cmsis-dap'
158+ ;;
159+ stlink-v2-1)
160+ OPENOCD_INTERFACE=' stlink-v2-1'
161+ ;;
162+ * ) # default is passed by argument or 'stlink'
163+ OPENOCD_INTERFACE=${1:= stlink}
164+ ;;
165+ esac
166+ }
You can’t perform that action at this time.
0 commit comments