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 30
30
. $CORE_PATH /hw/scripts/openocd.sh
31
31
32
32
FILE_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
+
34
39
EXTRA_GDB_CMDS=' monitor arm semihosting enable'
35
40
# Exit openocd when gdb detaches.
36
41
EXTRA_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 31
31
32
32
. $CORE_PATH /hw/scripts/openocd.sh
33
33
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"
35
38
36
39
if [ " $MFG_IMAGE " ]; then
37
40
FLASH_OFFSET=0
Original file line number Diff line number Diff line change @@ -76,3 +76,31 @@ parse_extra_jtag_cmd() {
76
76
echo $NEW_EXTRA_JTAG_CMD
77
77
EXTRA_JTAG_CMD=$NEW_EXTRA_JTAG_CMD
78
78
}
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 () {
149
149
openocd $CFG -c init -c " reset run" -c shutdown
150
150
return $?
151
151
}
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