Skip to content

Commit 614b26c

Browse files
committed
Version 1.2.
All GUI utilities: detect insertion/removal of BMP. All GUI utilities: online help. All GUI utilities + BMScan: fix handling of gdbserver handshake (which changed in BMP firmware 1.9). BMDebug: improvements in handling text received from the target. Added a serial monitor (BMSerial).
1 parent c00befe commit 614b26c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+6586
-598
lines changed

‎BlackMagicProbe.pdf‎

527 KB
Binary file not shown.

‎source/Makefile.linux‎

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -77,34 +77,37 @@ OBJLIST_BMDEBUG = bmdebug.o armdisasm.o bmcommon.o bmp-scan.o bmp-script.o \
7777
nuklear_mousepointer.o nuklear_splitter.o nuklear_style.o \
7878
nuklear_tooltip.o rs232.o serialmon.o specialfolder.o svd-support.o \
7979
swotrace.o tcpip.o xmltractor.o decodectf.o parsetsdl.o \
80-
findfont.o lodepng.o \
81-
nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
80+
findfont.o lodepng.o nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
8281

8382
OBJLIST_BMFLASH = bmflash.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
8483
cksum.o crc32.o elf.o gdb-rsp.o guidriver.o ident.o minIni.o \
85-
nuklear_mousepointer.o nuklear_style.o nuklear_tooltip.o \
84+
nuklear_guide.o nuklear_mousepointer.o nuklear_style.o nuklear_tooltip.o \
8685
picoro.o rs232.o specialfolder.o tcpip.o xmltractor.o \
87-
findfont.o lodepng.o \
88-
nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
86+
findfont.o lodepng.o nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
8987

9088
OBJLIST_BMPROFILE = bmprofile.o bmcommon.o bmp-scan.o bmp-script.o \
9189
bmp-support.o crc32.o decodectf.o demangle.o dwarf.o \
9290
elf.o gdb-rsp.o guidriver.o mcu-info.o minIni.o \
9391
parsetsdl.o picoro.o rs232.o specialfolder.o swotrace.o \
94-
tcpip.o xmltractor.o nuklear_mousepointer.o \
92+
tcpip.o xmltractor.o nuklear_guide.o nuklear_mousepointer.o \
9593
nuklear_splitter.o nuklear_style.o nuklear_tooltip.o \
96-
findfont.o lodepng.o \
97-
nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
94+
findfont.o lodepng.o nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
95+
96+
OBJLIST_BMSERIAL = bmserial.o guidriver.o minIni.o rs232.o \
97+
specialfolder.o noc_file_dialog.o \
98+
nuklear_guide.o nuklear_mousepointer.o nuklear_splitter.o \
99+
nuklear_style.o nuklear_tooltip.o \
100+
findfont.o lodepng.o nuklear.o nuklear_glfw_gl2.o
98101

99102
OBJLIST_BMTRACE = bmtrace.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
100103
crc32.o demangle.o dwarf.o elf.o gdb-rsp.o guidriver.o mcu-info.o \
101-
minIni.o nuklear_mousepointer.o nuklear_splitter.o nuklear_style.o \
102-
nuklear_tooltip.o picoro.o rs232.o specialfolder.o swotrace.o \
103-
tcpip.o xmltractor.o decodectf.o parsetsdl.o \
104-
findfont.o lodepng.o \
105-
nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
104+
minIni.o nuklear_guide.o nuklear_mousepointer.o nuklear_splitter.o \
105+
nuklear_style.o nuklear_tooltip.o picoro.o rs232.o specialfolder.o \
106+
swotrace.o tcpip.o xmltractor.o decodectf.o parsetsdl.o \
107+
findfont.o lodepng.o nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
106108

107-
OBJLIST_BMSCAN = bmscan.o bmp-scan.o tcpip.o
109+
OBJLIST_BMSCAN = bmscan.o bmp-scan.o bmp-script.o bmp-support.o crc32.o elf.o \
110+
gdb-rsp.o picoro.o rs232.o specialfolder.o tcpip.o xmltractor.o
108111

109112
OBJLIST_CALLTREE = calltree.o
110113

@@ -113,11 +116,11 @@ OBJLIST_POSTLINK = elf-postlink.o elf.o
113116
OBJLIST_TRACEGEN = tracegen.o parsetsdl.o
114117

115118

116-
project: bmdebug bmflash bmprofile bmscan bmtrace calltree elf-postlink tracegen
119+
project: bmdebug bmflash bmprofile bmscan bmserial bmtrace calltree elf-postlink tracegen
117120

118121
depend :
119122
makedepend -b -fmakefile.dep $(OBJLIST_BMDEBUG:.o=.c) $(OBJLIST_BMFLASH:.o=.c) \
120-
$(OBJLIST_BMPROFILE:.o=.c) $(OBJLIST_BMSCAN:.o=.c) \
123+
$(OBJLIST_BMPROFILE:.o=.c) $(OBJLIST_BMSCAN:.o=.c) $(OBJLIST_BMSERIAL:.o=.c) \
121124
$(OBJLIST_BMTRACE:.o=.c) $(OBJLIST_CALLTREE) \
122125
$(OBJLIST_POSTLINK:.o=.c) $(OBJLIST_TRACEGEN:.o=.c)
123126

@@ -136,6 +139,8 @@ bmprofile.o : bmprofile.c
136139

137140
bmscan.o : bmscan.c
138141

142+
bmserial.o : bmserial.c
143+
139144
bmtrace.o : bmtrace.c
140145

141146
bmp-scan.o : bmp-scan.c
@@ -180,6 +185,8 @@ noc_file_dialog.o : CFLAGS += -DNOC_FILE_DIALOG_GTK
180185
noc_file_dialog.o : INCLUDE += `pkg-config --cflags gtk+-3.0`
181186
noc_file_dialog.o : noc_file_dialog.c
182187

188+
nuklear_guide.o : nuklear_guide.c
189+
183190
nuklear_mousepointer.o : nuklear_mousepointer.c
184191

185192
nuklear_splitter.o : nuklear_splitter.c
@@ -219,11 +226,14 @@ bmdebug : $(OBJLIST_BMDEBUG)
219226
$(LNK) $(LFLAGS) -o$@ $^ -lfontconfig -l$(GLFW_LIBNAME) -lGL -lm -lbsd -ldl -lpthread -lX11 -lxcb -lXau -lXdmcp `pkg-config --libs gtk+-3.0` -lusb-1.0
220227

221228
bmflash : $(OBJLIST_BMFLASH)
222-
$(LNK) $(LFLAGS) -o$@ $^ -lfontconfig -l$(GLFW_LIBNAME) -lGL -lm -lbsd -ldl -lpthread -lX11 -lxcb -lXau -lXdmcp `pkg-config --libs gtk+-3.0`
229+
$(LNK) $(LFLAGS) -o$@ $^ -lfontconfig -l$(GLFW_LIBNAME) -lGL -lm -lbsd -ldl -lpthread -lX11 -lxcb -lXau -lXdmcp `pkg-config --libs gtk+-3.0` -lusb-1.0
223230

224231
bmprofile : $(OBJLIST_BMPROFILE)
225232
$(LNK) $(LFLAGS) -o$@ $^ -lfontconfig -l$(GLFW_LIBNAME) -lGL -lm -lbsd -ldl -lpthread -lX11 -lxcb -lXau -lXdmcp `pkg-config --libs gtk+-3.0` -lusb-1.0
226233

234+
bmserial : $(OBJLIST_BMSERIAL)
235+
$(LNK) $(LFLAGS) -o$@ $^ -lfontconfig -l$(GLFW_LIBNAME) -lGL -lm -lbsd -ldl -lpthread -lX11 -lxcb -lXau -lXdmcp `pkg-config --libs gtk+-3.0` -lusb-1.0
236+
227237
bmtrace : $(OBJLIST_BMTRACE)
228238
$(LNK) $(LFLAGS) -o$@ $^ -lfontconfig -l$(GLFW_LIBNAME) -lGL -lm -lbsd -ldl -lpthread -lX11 -lxcb -lXau -lXdmcp `pkg-config --libs gtk+-3.0` -lusb-1.0
229239

‎source/Makefile.mingw‎

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ OBJLIST_BMPROFILE = bmprofile.o bmcommon.o bmp-scan.o bmp-script.o \
9292
strlcpy.o usb-support.o \
9393
nuklear.o nuklear_gdip.o noc_file_dialog.o
9494

95+
OBJLIST_BMSERIAL = bmserial.o guidriver.o minIni.o rs232.o \
96+
specialfolder.o noc_file_dialog.o \
97+
nuklear_guide.o nuklear_mousepointer.o nuklear_splitter.o \
98+
nuklear_style.o nuklear_tooltip.o \
99+
findfont.o lodepng.o nuklear.o nuklear_gdip.o
100+
95101
OBJLIST_BMTRACE = bmtrace.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
96102
crc32.o demangle.o dwarf.o elf.o gdb-rsp.o guidriver.o mcu-info.o \
97103
minIni.o nuklear_mousepointer.o nuklear_splitter.o nuklear_style.o \
@@ -100,7 +106,8 @@ OBJLIST_BMTRACE = bmtrace.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
100106
strlcpy.o usb-support.o \
101107
nuklear.o nuklear_gdip.o noc_file_dialog.o
102108

103-
OBJLIST_BMSCAN = bmscan.o bmp-scan.o tcpip.o
109+
OBJLIST_BMSCAN = bmscan.o bmp-scan.o bmp-script.o bmp-support.o crc32.o elf.o \
110+
gdb-rsp.o picoro.o rs232.o specialfolder.o tcpip.o xmltractor.o
104111

105112
OBJLIST_CALLTREE = calltree.o
106113

@@ -109,14 +116,15 @@ OBJLIST_POSTLINK = elf-postlink.o elf.o strlcpy.o
109116
OBJLIST_TRACEGEN = tracegen.o parsetsdl.o strlcpy.o
110117

111118

112-
project : bmdebug.exe bmflash.exe bmprofile.exe bmtrace.exe bmscan.exe \
119+
project : bmdebug.exe bmflash.exe bmprofile.exe bmscan.exe bmserial.exe bmtrace.exe \
113120
calltree.exe elf-postlink.exe tracegen.exe
114121

115122
depend :
116123
makedepend -b -fmakefile.dep $(OBJLIST_BMDEBUG:.o=.c) $(OBJLIST_BMFLASH:.o=.c) \
117124
$(OBJLIST_BMPROFILE:.o=.c) $(OBJLIST_BMSCAN:.o=.c) \
118-
$(OBJLIST_BMTRACE:.o=.c) $(OBJLIST_CALLTREE:.o=.c) \
119-
$(OBJLIST_POSTLINK:.o=.c) $(OBJLIST_TRACEGEN:.o=.c)
125+
$(OBJLIST_BMSERIAL:.o=.c) $(OBJLIST_BMTRACE:.o=.c) \
126+
$(OBJLIST_CALLTREE:.o=.c) $(OBJLIST_POSTLINK:.o=.c) \
127+
$(OBJLIST_TRACEGEN:.o=.c)
120128

121129

122130
##### C files #####
@@ -133,6 +141,8 @@ bmprofile.o : bmprofile.c
133141

134142
bmscan.o : bmscan.c
135143

144+
bmserial.o : bmserial.c
145+
136146
bmtrace.o : bmtrace.c
137147

138148
bmp-scan.o : bmp-scan.c
@@ -161,7 +171,7 @@ gdb-rsp.o : gdb-rsp.c
161171

162172
guidriver.o : guidriver.c
163173

164-
ident.o :ident.c
174+
ident.o : ident.c
165175

166176
mcu-info.o : mcu-info.c
167177

@@ -172,6 +182,8 @@ minIni.o : minIni.c
172182
noc_file_dialog.o : CFLAGS += -DNOC_FILE_DIALOG_WIN32
173183
noc_file_dialog.o : noc_file_dialog.c
174184

185+
nuklear_guide.o : nuklear_guide.c
186+
175187
nuklear_mousepointer.o : nuklear_mousepointer.c
176188

177189
nuklear_splitter.o : nuklear_splitter.c
@@ -228,9 +240,12 @@ bmdebug.exe : $(OBJLIST_BMDEBUG) bmdebug.res
228240
bmflash.exe : $(OBJLIST_BMFLASH) bmflash.res
229241
$(LNK) $(LFLAGS) $(LFLAGS_GUI) -o$@ $^ -lm -lcomdlg32 -lgdi32 -lgdiplus -lshlwapi -lws2_32
230242

231-
bmprofile.exe : $(OBJLIST_BMPROFILE)
243+
bmprofile.exe : $(OBJLIST_BMPROFILE) bmprofile.res
232244
$(LNK) $(LFLAGS) $(LFLAGS_GUI) -o$@ $^ -lm -lcomdlg32 -lgdi32 -lgdiplus -lsetupapi -lshlwapi -lws2_32
233245

246+
bmserial.exe : $(OBJLIST_BMSERIAL) bmserial.res
247+
$(LNK) $(LFLAGS) $(LFLAGS_GUI) -o$@ $^ -lm -lcomdlg32 -lgdi32 -lgdiplus -lshlwapi -lws2_32
248+
234249
bmtrace.exe : $(OBJLIST_BMTRACE) bmtrace.res
235250
$(LNK) $(LFLAGS) $(LFLAGS_GUI) -o$@ $^ -lm -lcomdlg32 -lgdi32 -lgdiplus -lsetupapi -lshlwapi -lws2_32
236251

‎source/Makefile.msvc‎

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ OBJLIST_BMPROFILE = bmprofile.obj bmcommon.obj bmp-scan.obj bmp-script.obj \
8787
strlcpy.obj usb-support.obj \
8888
nuklear.obj nuklear_gdip.obj noc_file_dialog.obj
8989

90+
OBJLIST_BMSERIAL = bmserial.obj guidriver.obj minIni.obj rs232.obj \
91+
specialfolder.obj noc_file_dialog.obj \
92+
nuklear_guide.obj nuklear_mousepointer.obj nuklear_splitter.obj \
93+
nuklear_style.obj nuklear_tooltip.obj \
94+
findfont.obj lodepng.obj nuklear.obj nuklear_gdip.obj
95+
9096
OBJLIST_BMTRACE = bmtrace.obj bmcommon.obj bmp-scan.obj bmp-script.obj bmp-support.obj \
9197
crc32.obj demangle.obj dwarf.obj elf.obj gdb-rsp.obj guidriver.obj mcu-info.obj \
9298
minIni.obj nuklear_mousepointer.obj nuklear_splitter.obj nuklear_style.obj \
@@ -95,7 +101,9 @@ OBJLIST_BMTRACE = bmtrace.obj bmcommon.obj bmp-scan.obj bmp-script.obj bmp-suppo
95101
strlcpy.obj usb-support.obj \
96102
nuklear.obj nuklear_gdip.obj noc_file_dialog.obj
97103

98-
OBJLIST_BMSCAN = bmscan.obj bmp-scan.obj tcpip.obj
104+
OBJLIST_BMSCAN = bmscan.obj bmp-scan.obj bmp-script.obj bmp-support.obj crc32.obj \
105+
elf.obj gdb-rsp.obj picoro.obj rs232.obj specialfolder.obj tcpip.obj \
106+
xmltractor.obj
99107

100108
OBJLIST_CALLTREE = calltree.obj
101109

@@ -104,12 +112,13 @@ OBJLIST_POSTLINK = elf-postlink.obj elf.obj strlcpy.obj
104112
OBJLIST_TRACEGEN = tracegen.obj parsetsdl.obj strlcpy.obj
105113

106114

107-
project : bmdebug.exe bmflash.exe bmprofile.exe bmtrace.exe bmscan.exe calltree.exe \
108-
elf-postlink.exe tracegen.exe
115+
project : bmdebug.exe bmflash.exe bmprofile.exe bmscan.exe bmserial.exe bmtrace.exe \
116+
calltree.exe elf-postlink.exe tracegen.exe
109117

110118
depend :
111119
makedepend -b -e -o.obj -fmakefile.dep $(OBJLIST_BMDEBUG:.obj=.c) $(OBJLIST_BMFLASH:.obj=.c) \
112-
$(OBJLIST_BMPROFILE:.obj=.c) $(OBJLIST_BMTRACE:.obj=.c) $(OBJLIST_BMSCAN:.obj=.c) \
120+
$(OBJLIST_BMPROFILE:.obj=.c) $(OBJLIST_BMSCAN:.obj=.c) \
121+
$(OBJLIST_BMSERIAL:.obj=.c) $(OBJLIST_BMTRACE:.obj=.c) \
113122
$(OBJLIST_CALLTREE:.obj=.c) $(OBJLIST_POSTLINK:.obj=.c) \
114123
$(OBJLIST_TRACEGEN:.obj=.c)
115124

@@ -128,6 +137,8 @@ bmprofile.obj : bmprofile.c
128137

129138
bmscan.obj : bmscan.c
130139

140+
bmserial.obj : bmserial.c
141+
131142
bmtrace.obj : bmtrace.c
132143

133144
bmp-scan.obj : bmp-scan.c
@@ -168,6 +179,8 @@ minIni.obj : minIni.c
168179

169180
noc_file_dialog.obj : noc_file_dialog.c
170181

182+
nuklear_guide.obj : nuklear_guide.c
183+
171184
nuklear_mousepointer.obj : nuklear_mousepointer.c
172185

173186
nuklear_splitter.obj : nuklear_splitter.c
@@ -186,6 +199,8 @@ serialmon.obj : serialmon.c
186199

187200
specialfolder.obj : specialfolder.c
188201

202+
strlcpy.obj : strlcpy.c
203+
189204
svd-support.obj : svd-support.c
190205

191206
swotrace.obj : swotrace.c
@@ -222,9 +237,12 @@ bmdebug.exe : $(OBJLIST_BMDEBUG) bmdebug.res
222237
bmflash.exe : $(OBJLIST_BMFLASH) bmflash.res
223238
$(LNK) $(LFLAGS_W) /ENTRY:mainCRTStartup /OUT:$@ $** advapi32.lib comdlg32.lib gdi32.lib gdiplus.lib user32.lib winmm.lib wsock32.lib shell32.lib shlwapi.lib
224239

225-
bmprofile.exe : $(OBJLIST_BMPROFILE) bmtrace.res
240+
bmprofile.exe : $(OBJLIST_BMPROFILE) bmprofile.res
226241
$(LNK) $(LFLAGS_W) /ENTRY:mainCRTStartup /OUT:$@ $** advapi32.lib comdlg32.lib gdi32.lib gdiplus.lib user32.lib winmm.lib wsock32.lib shell32.lib shlwapi.lib setupapi.lib
227242

243+
bmserial.exe : $(OBJLIST_BMSERIAL) bmserial.res
244+
$(LNK) $(LFLAGS_W) /ENTRY:mainCRTStartup /OUT:$@ $** advapi32.lib comdlg32.lib gdi32.lib gdiplus.lib user32.lib winmm.lib wsock32.lib shell32.lib shlwapi.lib
245+
228246
bmtrace.exe : $(OBJLIST_BMTRACE) bmtrace.res
229247
$(LNK) $(LFLAGS_W) /ENTRY:mainCRTStartup /OUT:$@ $** advapi32.lib comdlg32.lib gdi32.lib gdiplus.lib user32.lib winmm.lib wsock32.lib shell32.lib shlwapi.lib setupapi.lib
230248

‎source/bmcommon.c‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
2-
* Common functions for bmdebug, bmflash and bmtrace.
2+
* Common functions for bmdebug, bmflash, bmprofile and bmtrace.
33
*
4-
* Copyright 2021 CompuPhase
4+
* Copyright 2021-2022 CompuPhase
55
*
66
* Licensed under the Apache License, Version 2.0 (the "License");
77
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
1616
* limitations under the License.
1717
*/
1818
#include <assert.h>
19+
#include <stdbool.h>
1920
#include <stdlib.h>
2021
#include <string.h>
2122
#if defined WIN32 || defined _WIN32
@@ -76,13 +77,13 @@ void clear_probelist(const char **probelist, int netprobe)
7677
}
7778
}
7879

79-
int get_configfile(char *filename, size_t maxsize, const char *basename)
80+
bool get_configfile(char *filename, size_t maxsize, const char *basename)
8081
{
8182
assert(filename != NULL);
8283
assert(maxsize > 0);
8384
*filename = '\0';
8485
if (!folder_AppConfig(filename, maxsize))
85-
return 0;
86+
return false;
8687

8788
strlcat(filename, DIR_SEPARATOR "BlackMagic", maxsize);
8889
#if defined _WIN32
@@ -92,6 +93,6 @@ int get_configfile(char *filename, size_t maxsize, const char *basename)
9293
#endif
9394
strlcat(filename, DIR_SEPARATOR, maxsize);
9495
strlcat(filename, basename, maxsize);
95-
return 1;
96+
return true;
9697
}
9798

‎source/bmcommon.h‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
2-
* Common functions for bmdebug, bmflash and bmtrace.
2+
* Common functions for bmdebug, bmflash, bmprofile and bmtrace.
33
*
4-
* Copyright 2021 CompuPhase
4+
* Copyright 2021-2022 CompuPhase
55
*
66
* Licensed under the Apache License, Version 2.0 (the "License");
77
* you may not use this file except in compliance with the License.
@@ -21,6 +21,6 @@
2121
const char **get_probelist(int *probe, int *netprobe);
2222
void clear_probelist(const char **probelist, int netprobe);
2323

24-
int get_configfile(char *filename, size_t maxsize, const char *basename);
24+
bool get_configfile(char *filename, size_t maxsize, const char *basename);
2525

2626
#endif /* _BMCOMMON_H */

0 commit comments

Comments
 (0)