Skip to content

Commit

Permalink
Book: section on logging checksum and RCS "ident" strings on upload; …
Browse files Browse the repository at this point in the history
…trouble-shooting TRACESWO, plus minor edits.

BMDebug: "info svd" command for peripheral and register documentation.
BMFlash: add log-file option for successful downloads.
Clean-up/refactor code of the utilities.
  • Loading branch information
compuphase committed Dec 13, 2021
1 parent 66be2d5 commit 08a1854
Show file tree
Hide file tree
Showing 30 changed files with 5,623 additions and 3,653 deletions.
Binary file modified BlackMagicProbe.pdf
Binary file not shown.
Binary file modified doc/BlackMagicProbe.odt
Binary file not shown.
Binary file added doc/blackmagicprobe_bottom2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 21 additions & 13 deletions source/Makefile.linux
Original file line number Diff line number Diff line change
Expand Up @@ -73,26 +73,26 @@ endif
# Project
# -------------------------------------------------------------

OBJLIST_BMDEBUG = bmdebug.o bmp-scan.o bmp-script.o dwarf.o elf.o \
OBJLIST_BMDEBUG = bmdebug.o bmcommon.o bmp-scan.o bmp-script.o dwarf.o elf.o \
guidriver.o memdump.o minIni.o nuklear_mousepointer.o \
nuklear_style.o nuklear_tooltip.o rs232.o serialmon.o \
specialfolder.o svd-support.o swotrace.o tcpip.o \
xmltractor.o decodectf.o parsetsdl.o \
nuklear_splitter.o nuklear_style.o nuklear_tooltip.o \
rs232.o serialmon.o specialfolder.o svd-support.o \
swotrace.o tcpip.o xmltractor.o decodectf.o parsetsdl.o \
nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o \
findfont.o lodepng.o

OBJLIST_BMFLASH = bmflash.o bmp-scan.o bmp-script.o bmp-support.o crc32.o \
elf.o gdb-rsp.o guidriver.o minIni.o nuklear_mousepointer.o \
nuklear_style.o nuklear_tooltip.o picoro.o rs232.o \
specialfolder.o tcpip.o xmltractor.o \
OBJLIST_BMFLASH = bmflash.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
cksum.o crc32.o elf.o gdb-rsp.o guidriver.o ident.o minIni.o \
nuklear_mousepointer.o nuklear_style.o nuklear_tooltip.o \
picoro.o rs232.o specialfolder.o tcpip.o xmltractor.o \
nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o \
findfont.o lodepng.o

OBJLIST_BMTRACE = bmtrace.o bmp-scan.o bmp-script.o bmp-support.o crc32.o \
dwarf.o elf.o gdb-rsp.o guidriver.o minIni.o \
nuklear_style.o nuklear_mousepointer.o nuklear_tooltip.o \
picoro.o rs232.o specialfolder.o swotrace.o tcpip.o \
xmltractor.o decodectf.o parsetsdl.o \
OBJLIST_BMTRACE = bmtrace.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
crc32.o dwarf.o elf.o gdb-rsp.o guidriver.o minIni.o \
nuklear_splitter.o nuklear_style.o nuklear_mousepointer.o \
nuklear_tooltip.o picoro.o rs232.o specialfolder.o swotrace.o \
tcpip.o xmltractor.o decodectf.o parsetsdl.o \
nuklear.o nuklear_glfw_gl2.o noc_file_dialog.o \
findfont.o lodepng.o

Expand All @@ -113,6 +113,8 @@ depend :

##### C files #####

bmcommon.o : bmcommon.c

bmdebug.o : bmdebug.c

bmflash.o : bmflash.c
Expand All @@ -127,6 +129,8 @@ bmp-script.o : bmp-script.c

bmp-support.o : bmp-support.c

cksum.o : cksum.c

crc32.o : crc32.c

decodectf.ob : decodectf.c
Expand All @@ -143,6 +147,8 @@ gdb-rsp.o : gdb-rsp.c

guidriver.o : guidriver.c

ident.o : ident.c

lodepng.o : lodepng.c

memdump.o : memdump.c
Expand All @@ -155,6 +161,8 @@ noc_file_dialog.o : noc_file_dialog.c

nuklear_mousepointer.o : nuklear_mousepointer.c

nuklear_splitter.o : nuklear_splitter.c

nuklear_style.o : nuklear_style.c

nuklear_tooltip.o : nuklear_tooltip.c
Expand Down
32 changes: 20 additions & 12 deletions source/Makefile.mingw
Original file line number Diff line number Diff line change
Expand Up @@ -69,24 +69,24 @@ endif
# Project
# -------------------------------------------------------------

OBJLIST_BMDEBUG = bmdebug.o bmp-scan.o bmp-script.o dwarf.o elf.o \
OBJLIST_BMDEBUG = bmdebug.o bmcommon.o bmp-scan.o bmp-script.o dwarf.o elf.o \
guidriver.o memdump.o minIni.o nuklear_mousepointer.o \
nuklear_style.o nuklear_tooltip.o rs232.o serialmon.o \
specialfolder.o strlcpy.o svd-support.o swotrace.o tcpip.o \
usb-support.o xmltractor.o decodectf.o parsetsdl.o \
nuklear_splitter.o nuklear_style.o nuklear_tooltip.o rs232.o \
serialmon.o specialfolder.o strlcpy.o svd-support.o swotrace.o \
tcpip.o usb-support.o xmltractor.o decodectf.o parsetsdl.o \
nuklear.o nuklear_gdip.o noc_file_dialog.o

OBJLIST_BMFLASH = bmflash.o bmp-scan.o bmp-script.o bmp-support.o crc32.o \
elf.o gdb-rsp.o guidriver.o minIni.o nuklear_mousepointer.o \
nuklear_style.o nuklear_tooltip.o picoro.o rs232.o \
specialfolder.o strlcpy.o tcpip.o xmltractor.o \
OBJLIST_BMFLASH = bmflash.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o \
cksum.o crc32.o elf.o gdb-rsp.o guidriver.o ident.o minIni.o \
nuklear_mousepointer.o nuklear_style.o nuklear_tooltip.o \
picoro.o rs232.o specialfolder.o strlcpy.o tcpip.o xmltractor.o \
nuklear.o nuklear_gdip.o noc_file_dialog.o

OBJLIST_BMTRACE = bmtrace.o bmp-scan.o bmp-script.o bmp-support.o crc32.o \
OBJLIST_BMTRACE = bmtrace.o bmcommon.o bmp-scan.o bmp-script.o bmp-support.o crc32.o \
dwarf.o elf.o gdb-rsp.o guidriver.o minIni.o \
nuklear_mousepointer.o nuklear_style.o nuklear_tooltip.o \
picoro.o rs232.o specialfolder.o swotrace.o strlcpy.o \
tcpip.o usb-support.o xmltractor.o decodectf.o parsetsdl.o \
nuklear_mousepointer.o nuklear_splitter.o nuklear_style.o \
nuklear_tooltip.o picoro.o rs232.o specialfolder.o swotrace.o \
strlcpy.o tcpip.o usb-support.o xmltractor.o decodectf.o parsetsdl.o \
nuklear.o nuklear_gdip.o noc_file_dialog.o

OBJLIST_BMSCAN = bmscan.o bmp-scan.o tcpip.o
Expand All @@ -106,6 +106,8 @@ depend :

##### C files #####

bmcommon.o : bmcommon.c

bmdebug.o : bmdebug.c

bmflash.o : bmflash.c
Expand All @@ -120,6 +122,8 @@ bmp-script.o : bmp-script.c

bmp-support.o : bmp-support.c

cksum.o : cksum.c

crc32.o : crc32.c

decodectf.ob : decodectf.c
Expand All @@ -134,6 +138,8 @@ gdb-rsp.o : gdb-rsp.c

guidriver.o : guidriver.c

ident.o :ident.c

memdump.o : memdump.c

minIni.o : minIni.c
Expand All @@ -143,6 +149,8 @@ noc_file_dialog.o : noc_file_dialog.c

nuklear_mousepointer.o : nuklear_mousepointer.c

nuklear_splitter.o : nuklear_splitter.c

nuklear_style.o : nuklear_style.c

nuklear_tooltip.o : nuklear_tooltip.c
Expand Down
38 changes: 24 additions & 14 deletions source/Makefile.msvc
Original file line number Diff line number Diff line change
Expand Up @@ -63,25 +63,27 @@ LFLAGS_C = $(L_DEBUG) /NOLOGO /SUBSYSTEM:console
# Project
# -------------------------------------------------------------

OBJLIST_BMDEBUG = bmdebug.obj bmp-scan.obj bmp-script.obj dirent.obj dwarf.obj \
elf.obj guidriver.obj memdump.obj minIni.obj \
nuklear_mousepointer.obj nuklear_style.obj nuklear_tooltip.obj \
rs232.obj serialmon.obj specialfolder.obj strlcpy.obj \
svd-support.obj swotrace.obj tcpip.obj usb-support.obj \
OBJLIST_BMDEBUG = bmdebug.obj bmcommon.obj bmp-scan.obj bmp-script.obj dirent.obj \
dwarf.obj elf.obj guidriver.obj memdump.obj minIni.obj \
nuklear_mousepointer.obj nuklear_splitter.obj nuklear_style.obj \
nuklear_tooltip.obj rs232.obj serialmon.obj specialfolder.obj \
strlcpy.obj svd-support.obj swotrace.obj tcpip.obj usb-support.obj \
xmltractor.obj decodectf.obj parsetsdl.obj \
nuklear.obj nuklear_gdip.obj noc_file_dialog.obj

OBJLIST_BMFLASH = bmflash.obj bmp-scan.obj bmp-script.obj bmp-support.obj crc32.obj \
elf.obj gdb-rsp.obj guidriver.obj minIni.obj nuklear_mousepointer.obj \
nuklear_style.obj nuklear_tooltip.obj picoro.obj rs232.obj \
specialfolder.obj strlcpy.obj tcpip.obj xmltractor.obj \
OBJLIST_BMFLASH = bmflash.obj bmcommon.obj bmp-scan.obj bmp-script.obj bmp-support.obj \
cksum.obj crc32.obj elf.obj gdb-rsp.obj guidriver.obj ident.obj \
minIni.obj nuklear_mousepointer.obj nuklear_style.obj nuklear_tooltip.obj \
picoro.obj rs232.obj specialfolder.obj strlcpy.obj tcpip.obj \
xmltractor.obj \
nuklear.obj nuklear_gdip.obj noc_file_dialog.obj

OBJLIST_BMTRACE = bmtrace.obj bmp-scan.obj bmp-script.obj bmp-support.obj crc32.obj \
dwarf.obj elf.obj gdb-rsp.obj guidriver.obj minIni.obj \
nuklear_mousepointer.obj nuklear_style.obj nuklear_tooltip.obj \
picoro.obj rs232.obj specialfolder.obj swotrace.obj strlcpy.obj \
tcpip.obj usb-support.obj xmltractor.obj decodectf.obj parsetsdl.obj \
OBJLIST_BMTRACE = bmtrace.obj bmcommon.obj bmp-scan.obj bmp-script.obj bmp-support.obj \
crc32.obj dwarf.obj elf.obj gdb-rsp.obj guidriver.obj minIni.obj \
nuklear_mousepointer.obj nuklear_splitter.obj nuklear_style.obj \
nuklear_tooltip.obj picoro.obj rs232.obj specialfolder.obj swotrace.obj \
strlcpy.obj tcpip.obj usb-support.obj xmltractor.obj decodectf.obj \
parsetsdl.obj \
nuklear.obj nuklear_gdip.obj noc_file_dialog.obj

OBJLIST_BMSCAN = bmscan.obj bmp-scan.obj tcpip.obj
Expand All @@ -101,6 +103,8 @@ depend :

##### C files #####

bmcommon.obj : bmcommon.c

bmdebug.obj : bmdebug.c

bmflash.obj : bmflash.c
Expand All @@ -115,6 +119,8 @@ bmp-script.obj : bmp-script.c

bmp-support.obj : bmp-support.c

cksum.obj : cksum.c

crc32.obj : crc32.c

decodectf.obj : decodectf.c
Expand All @@ -131,6 +137,8 @@ gdb-rsp.obj : gdb-rsp.c

guidriver.obj : guidriver.c

ident.obj : ident.c

memdump.obj : memdump.c

minIni.obj : minIni.c
Expand All @@ -139,6 +147,8 @@ noc_file_dialog.obj : noc_file_dialog.c

nuklear_mousepointer.obj : nuklear_mousepointer.c

nuklear_splitter.obj : nuklear_splitter.c

nuklear_style.obj : nuklear_style.c

nuklear_tooltip.obj : nuklear_tooltip.c
Expand Down
97 changes: 97 additions & 0 deletions source/bmcommon.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
/*
* Common functions for bmdebug, bmflash and bmtrace.
*
* Copyright 2021 CompuPhase
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#if defined WIN32 || defined _WIN32
#include <direct.h>
#if defined __MINGW32__ || defined __MINGW64__ || defined _MSC_VER
#include "strlcpy.h"
#endif
#elif defined __linux__
#include <bsd/string.h>
#include <sys/stat.h>
#include <sys/types.h>
#endif
#include "bmcommon.h"
#include "bmp-scan.h"
#include "specialfolder.h"

#if !defined sizearray
# define sizearray(e) (sizeof(e) / sizeof((e)[0]))
#endif

const char **get_probelist(int *probe, int *netprobe)
{
int usbprobes = get_bmp_count();
assert(netprobe != NULL);
*netprobe = (usbprobes > 0) ? usbprobes : 1;

const char **probelist = malloc((*netprobe+1)*sizeof(char*));
if (probelist != NULL) {
if (usbprobes == 0) {
probelist[0] = strdup("-");
} else {
char portname[64];
int idx;
for (idx = 0; idx < usbprobes; idx++) {
find_bmp(idx, BMP_IF_GDB, portname, sizearray(portname));
probelist[idx] = strdup(portname);
}
}
probelist[*netprobe] = strdup("TCP/IP");
}

assert(probe != NULL);
if (*probe == 99)
*probe = *netprobe;
else if (*probe > usbprobes)
*probe = 0;

return probelist;
}

void clear_probelist(const char **probelist, int netprobe)
{
if (probelist != NULL) {
int idx;
for (idx = 0; idx < netprobe + 1; idx++)
free((void*)probelist[idx]);
free((void*)probelist);
}
}

int get_configfile(char *filename, size_t maxsize, const char *basename)
{
assert(filename != NULL);
assert(maxsize > 0);
*filename = '\0';
if (!folder_AppConfig(filename, maxsize))
return 0;

strlcat(filename, DIR_SEPARATOR "BlackMagic", maxsize);
#if defined _WIN32
mkdir(filename);
#else
mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
#endif
strlcat(filename, DIR_SEPARATOR, maxsize);
strlcat(filename, basename, maxsize);
return 1;
}

26 changes: 26 additions & 0 deletions source/bmcommon.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Common functions for bmdebug, bmflash and bmtrace.
*
* Copyright 2021 CompuPhase
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _BMCOMMON_H
#define _BMCOMMON_H

const char **get_probelist(int *probe, int *netprobe);
void clear_probelist(const char **probelist, int netprobe);

int get_configfile(char *filename, size_t maxsize, const char *basename);

#endif /* _BMCOMMON_H */
Loading

0 comments on commit 08a1854

Please sign in to comment.