Skip to content

Commit 678e515

Browse files
committed
Added scripting to BMFlash & BMSerial utilities (Tcl).
Added a chapter on Tcl scripting to the book. BMFlash: fix help closing immediately (because "Help" and "Close" buttons overlap). BMSerial: option to add timestamps. General code style reformatting.
1 parent 80e20ed commit 678e515

Some content is hidden

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

56 files changed

+5339
-2547
lines changed

‎BlackMagicProbe.pdf‎

41.6 KB
Binary file not shown.

‎source/Makefile.linux‎

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,24 @@ endif
6868
$(CC) $(INCLUDE) $(CFLAGS) -o$@ $<
6969

7070

71+
%.h : %.md
72+
$(QGP) -c $< $@
73+
7174
# -------------------------------------------------------------
7275
# Project
7376
# -------------------------------------------------------------
7477

7578
OBJLIST_BMDEBUG = bmdebug.o armdisasm.o bmcommon.o bmp-scan.o bmp-script.o \
76-
demangle.o dwarf.o elf.o guidriver.o mcu-info.o memdump.o minIni.o \
77-
nuklear_mousepointer.o nuklear_splitter.o nuklear_style.o \
79+
demangle.o dwarf.o elf.o guidriver.o mcu-info.o memdump.o \
80+
minIni.o nuklear_mousepointer.o nuklear_splitter.o nuklear_style.o \
7881
nuklear_tooltip.o rs232.o serialmon.o specialfolder.o svd-support.o \
7982
swotrace.o tcpip.o xmltractor.o decodectf.o parsetsdl.o \
8083
findfont.o lodepng.o nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
8184

8285
OBJLIST_BMFLASH = bmflash.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
8386
cksum.o crc32.o elf.o gdb-rsp.o guidriver.o ident.o minIni.o \
8487
nuklear_guide.o nuklear_mousepointer.o nuklear_style.o nuklear_tooltip.o \
85-
picoro.o rs232.o specialfolder.o tcpip.o xmltractor.o \
88+
picoro.o rs232.o specialfolder.o tcl.o tcpip.o xmltractor.o \
8689
findfont.o lodepng.o nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o
8790

8891
OBJLIST_BMPROFILE = bmprofile.o bmcommon.o bmp-scan.o bmp-script.o \
@@ -96,7 +99,7 @@ OBJLIST_BMPROFILE = bmprofile.o bmcommon.o bmp-scan.o bmp-script.o \
9699
OBJLIST_BMSERIAL = bmserial.o guidriver.o minIni.o rs232.o \
97100
specialfolder.o noc_file_dialog.o \
98101
nuklear_guide.o nuklear_mousepointer.o nuklear_splitter.o \
99-
nuklear_style.o nuklear_tooltip.o \
102+
nuklear_style.o nuklear_tooltip.o tcl.o \
100103
findfont.o lodepng.o nuklear.o nuklear_glfw_gl2.o
101104

102105
OBJLIST_BMTRACE = bmtrace.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
@@ -120,9 +123,10 @@ project: bmdebug bmflash bmprofile bmscan bmserial bmtrace calltree elf-postlink
120123

121124
depend :
122125
makedepend -b -fmakefile.dep $(OBJLIST_BMDEBUG:.o=.c) $(OBJLIST_BMFLASH:.o=.c) \
123-
$(OBJLIST_BMPROFILE:.o=.c) $(OBJLIST_BMSCAN:.o=.c) $(OBJLIST_BMSERIAL:.o=.c) \
124-
$(OBJLIST_BMTRACE:.o=.c) $(OBJLIST_CALLTREE) \
125-
$(OBJLIST_POSTLINK:.o=.c) $(OBJLIST_TRACEGEN:.o=.c)
126+
$(OBJLIST_BMPROFILE:.o=.c) $(OBJLIST_BMSCAN:.o=.c) \
127+
$(OBJLIST_BMSERIAL:.o=.c) $(OBJLIST_BMTRACE:.o=.c) \
128+
$(OBJLIST_CALLTREE:.o=.c) $(OBJLIST_POSTLINK:.o=.c) \
129+
$(OBJLIST_TRACEGEN:.o=.c)
126130

127131

128132
##### C files #####
@@ -211,6 +215,8 @@ swotrace.o : swotrace.c
211215

212216
tcpip.o : tcpip.c
213217

218+
tcl.o : tcl.c
219+
214220
tracegen.o : tracegen.c
215221

216222
xmltractor.o : xmltractor.c

‎source/Makefile.mingw‎

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,12 @@ endif
6161
# -------------------------------------------------------------
6262

6363
%.o : %.c
64-
$(CC) $(INCLUDE) $(CFLAGS) -o$@ $<
64+
$(CC) $(CFLAGS) $(INCLUDE) -o$@ $<
6565

6666

67+
%.h : %.md
68+
$(QGP) -c $< $@
69+
6770
# -------------------------------------------------------------
6871
# Project
6972
# -------------------------------------------------------------
@@ -78,31 +81,31 @@ OBJLIST_BMDEBUG = bmdebug.o armdisasm.o bmcommon.o bmp-scan.o bmp-script.o \
7881

7982
OBJLIST_BMFLASH = bmflash.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
8083
cksum.o crc32.o elf.o gdb-rsp.o guidriver.o ident.o minIni.o \
81-
nuklear_mousepointer.o nuklear_style.o nuklear_tooltip.o \
82-
picoro.o rs232.o specialfolder.o tcpip.o xmltractor.o \
84+
nuklear_guide.o nuklear_mousepointer.o nuklear_style.o nuklear_tooltip.o \
85+
picoro.o rs232.o specialfolder.o tcl.o tcpip.o xmltractor.o \
8386
strlcpy.o \
8487
nuklear.o nuklear_gdip.o noc_file_dialog.o
8588

8689
OBJLIST_BMPROFILE = bmprofile.o bmcommon.o bmp-scan.o bmp-script.o \
8790
bmp-support.o crc32.o decodectf.o demangle.o dwarf.o \
8891
elf.o gdb-rsp.o guidriver.o mcu-info.o minIni.o \
8992
parsetsdl.o picoro.o rs232.o specialfolder.o swotrace.o \
90-
tcpip.o xmltractor.o nuklear_mousepointer.o \
93+
tcpip.o xmltractor.o nuklear_guide.o nuklear_mousepointer.o \
9194
nuklear_splitter.o nuklear_style.o nuklear_tooltip.o \
9295
strlcpy.o usb-support.o \
9396
nuklear.o nuklear_gdip.o noc_file_dialog.o
9497

9598
OBJLIST_BMSERIAL = bmserial.o guidriver.o minIni.o rs232.o \
9699
specialfolder.o noc_file_dialog.o \
97100
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
101+
nuklear_style.o nuklear_tooltip.o tcl.o \
102+
findfont.o nuklear.o nuklear_gdip.o
100103

101104
OBJLIST_BMTRACE = bmtrace.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
102105
crc32.o demangle.o dwarf.o elf.o gdb-rsp.o guidriver.o mcu-info.o \
103-
minIni.o nuklear_mousepointer.o nuklear_splitter.o nuklear_style.o \
104-
nuklear_tooltip.o picoro.o rs232.o specialfolder.o swotrace.o \
105-
tcpip.o xmltractor.o decodectf.o parsetsdl.o \
106+
minIni.o nuklear_guide.o nuklear_mousepointer.o nuklear_splitter.o \
107+
nuklear_style.o nuklear_tooltip.o picoro.o rs232.o specialfolder.o \
108+
swotrace.o tcpip.o xmltractor.o decodectf.o parsetsdl.o \
106109
strlcpy.o usb-support.o \
107110
nuklear.o nuklear_gdip.o noc_file_dialog.o
108111

@@ -210,6 +213,8 @@ swotrace.o : swotrace.c
210213

211214
tcpip.o : tcpip.c
212215

216+
tcl.o : tcl.c
217+
213218
tracegen.o : tracegen.c
214219

215220
usb-support.o : usb-support.c

‎source/Makefile.msvc‎

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ R_DEBUG =
3434
CL = cl
3535
CC = cl /c
3636
CFLAGS = /nologo /MT /W1 /EHsc /D _WIN32 $(C_DEBUG) /D NOC_FILE_DIALOG_WIN32 /D _CRT_SECURE_NO_WARNINGS
37+
INCLUDE =
3738

3839
####### Resource compiler
3940
RC = rc
@@ -50,14 +51,16 @@ LFLAGS_C = $(L_DEBUG) /NOLOGO /SUBSYSTEM:console
5051
# -------------------------------------------------------------
5152

5253
.c.exe :
53-
$(CL) $(CFLAGS) /D STANDALONE /Fe$@ $<
54+
$(CL) $(CFLAGS) $(INCLUDE) /D STANDALONE /Fe$@ $<
5455

5556
.c.obj :
56-
$(CC) $(CFLAGS) /Fo$@ $<
57+
$(CC) $(CFLAGS) $(INCLUDE) /Fo$@ $<
5758

5859
.rc.res :
5960
$(RC) -r $(RCFLAGS) /Fo$@ $<
6061

62+
.md.h :
63+
$(QGP) -c $< $@
6164

6265
# -------------------------------------------------------------
6366
# Project
@@ -73,37 +76,36 @@ OBJLIST_BMDEBUG = bmdebug.obj armdisasm.obj bmcommon.obj bmp-scan.obj bmp-script
7376

7477
OBJLIST_BMFLASH = bmflash.obj bmcommon.obj bmp-scan.obj bmp-script.obj bmp-support.obj \
7578
cksum.obj crc32.obj elf.obj gdb-rsp.obj guidriver.obj ident.obj minIni.obj \
76-
nuklear_mousepointer.obj nuklear_style.obj nuklear_tooltip.obj \
77-
picoro.obj rs232.obj specialfolder.obj tcpip.obj xmltractor.obj \
79+
nuklear_guide.obj nuklear_mousepointer.obj nuklear_style.obj nuklear_tooltip.obj \
80+
picoro.obj rs232.obj specialfolder.obj tcl.obj tcpip.obj xmltractor.obj \
7881
strlcpy.obj \
7982
nuklear.obj nuklear_gdip.obj noc_file_dialog.obj
8083

8184
OBJLIST_BMPROFILE = bmprofile.obj bmcommon.obj bmp-scan.obj bmp-script.obj \
8285
bmp-support.obj crc32.obj decodectf.obj demangle.obj dwarf.obj \
8386
elf.obj gdb-rsp.obj guidriver.obj mcu-info.obj minIni.obj \
8487
parsetsdl.obj picoro.obj rs232.obj specialfolder.obj swotrace.obj \
85-
tcpip.obj xmltractor.obj nuklear_mousepointer.obj \
88+
tcpip.obj xmltractor.obj nuklear_guide.obj nuklear_mousepointer.obj \
8689
nuklear_splitter.obj nuklear_style.obj nuklear_tooltip.obj \
8790
strlcpy.obj usb-support.obj \
8891
nuklear.obj nuklear_gdip.obj noc_file_dialog.obj
8992

9093
OBJLIST_BMSERIAL = bmserial.obj guidriver.obj minIni.obj rs232.obj \
9194
specialfolder.obj noc_file_dialog.obj \
9295
nuklear_guide.obj nuklear_mousepointer.obj nuklear_splitter.obj \
93-
nuklear_style.obj nuklear_tooltip.obj \
96+
nuklear_style.obj nuklear_tooltip.obj tcl.obj \
9497
findfont.obj lodepng.obj nuklear.obj nuklear_gdip.obj
9598

9699
OBJLIST_BMTRACE = bmtrace.obj bmcommon.obj bmp-scan.obj bmp-script.obj bmp-support.obj \
97100
crc32.obj demangle.obj dwarf.obj elf.obj gdb-rsp.obj guidriver.obj mcu-info.obj \
98-
minIni.obj nuklear_mousepointer.obj nuklear_splitter.obj nuklear_style.obj \
99-
nuklear_tooltip.obj picoro.obj rs232.obj specialfolder.obj swotrace.obj \
100-
tcpip.obj xmltractor.obj decodectf.obj parsetsdl.obj \
101+
minIni.obj nuklear_guide.obj nuklear_mousepointer.obj nuklear_splitter.obj \
102+
nuklear_style.obj nuklear_tooltip.obj picoro.obj rs232.obj specialfolder.obj \
103+
swotrace.obj tcpip.obj xmltractor.obj decodectf.obj parsetsdl.obj \
101104
strlcpy.obj usb-support.obj \
102105
nuklear.obj nuklear_gdip.obj noc_file_dialog.obj
103106

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
107+
OBJLIST_BMSCAN = bmscan.obj bmp-scan.obj bmp-script.obj bmp-support.obj crc32.obj elf.obj \
108+
gdb-rsp.obj picoro.obj rs232.obj specialfolder.obj tcpip.obj xmltractor.obj \
107109

108110
OBJLIST_CALLTREE = calltree.obj
109111

@@ -116,7 +118,7 @@ project : bmdebug.exe bmflash.exe bmprofile.exe bmscan.exe bmserial.exe bmtrace.
116118
calltree.exe elf-postlink.exe tracegen.exe
117119

118120
depend :
119-
makedepend -b -e -o.obj -fmakefile.dep $(OBJLIST_BMDEBUG:.obj=.c) $(OBJLIST_BMFLASH:.obj=.c) \
121+
makedepend -b -e -o.obj -sort -fmakefile.dep $(OBJLIST_BMDEBUG:.obj=.c) $(OBJLIST_BMFLASH:.obj=.c) \
120122
$(OBJLIST_BMPROFILE:.obj=.c) $(OBJLIST_BMSCAN:.obj=.c) \
121123
$(OBJLIST_BMSERIAL:.obj=.c) $(OBJLIST_BMTRACE:.obj=.c) \
122124
$(OBJLIST_CALLTREE:.obj=.c) $(OBJLIST_POSTLINK:.obj=.c) \
@@ -207,6 +209,8 @@ swotrace.obj : swotrace.c
207209

208210
tcpip.obj : tcpip.c
209211

212+
tcl.obj : tcl.c
213+
210214
tracegen.obj : tracegen.c
211215

212216
usb-support.obj : usb-support.c

‎source/armdisasm.c‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
#include <string.h>
2323
#include "armdisasm.h"
2424

25+
#if defined FORTIFY
26+
# include <alloc/fortify.h>
27+
#endif
28+
2529
typedef struct tagENCODEMASK16 {
2630
uint16_t mask; /* bits to mask off for the test */
2731
uint16_t match; /* masked bits must be equal to this */

‎source/bmcommon.c‎

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,25 @@
2020
#include <stdlib.h>
2121
#include <string.h>
2222
#if defined WIN32 || defined _WIN32
23-
#include <direct.h>
24-
#if defined __MINGW32__ || defined __MINGW64__ || defined _MSC_VER
25-
#include "strlcpy.h"
26-
#endif
23+
# include <direct.h>
24+
# if defined __MINGW32__ || defined __MINGW64__ || defined _MSC_VER
25+
# include "strlcpy.h"
26+
# endif
2727
#elif defined __linux__
28-
#include <bsd/string.h>
29-
#include <sys/stat.h>
30-
#include <sys/types.h>
28+
# include <bsd/string.h>
29+
# include <sys/stat.h>
30+
# include <sys/types.h>
3131
#endif
3232
#include "bmcommon.h"
3333
#include "bmp-scan.h"
3434
#include "specialfolder.h"
3535

36+
#if defined FORTIFY
37+
# include <alloc/fortify.h>
38+
#endif
39+
3640
#if !defined sizearray
37-
# define sizearray(e) (sizeof(e) / sizeof((e)[0]))
41+
# define sizearray(e) (sizeof(e) / sizeof((e)[0]))
3842
#endif
3943

4044
const char **get_probelist(int *probe, int *netprobe)
@@ -86,11 +90,11 @@ bool get_configfile(char *filename, size_t maxsize, const char *basename)
8690
return false;
8791

8892
strlcat(filename, DIR_SEPARATOR "BlackMagic", maxsize);
89-
#if defined _WIN32
93+
# if defined _WIN32
9094
mkdir(filename);
91-
#else
95+
# else
9296
mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
93-
#endif
97+
# endif
9498
strlcat(filename, DIR_SEPARATOR, maxsize);
9599
strlcat(filename, basename, maxsize);
96100
return true;

0 commit comments

Comments
 (0)