remote.c: Compile only relevant functions.
Do no compile firmware functions when compiling pc-hosted.
This commit is contained in:
parent
16967b4328
commit
05adcd9bf5
|
@ -45,6 +45,7 @@ SRC = \
|
||||||
nrf51.c \
|
nrf51.c \
|
||||||
nxpke04.c \
|
nxpke04.c \
|
||||||
platform.c \
|
platform.c \
|
||||||
|
remote.c \
|
||||||
sam3x.c \
|
sam3x.c \
|
||||||
sam4l.c \
|
sam4l.c \
|
||||||
samd.c \
|
samd.c \
|
||||||
|
@ -72,11 +73,16 @@ endif
|
||||||
|
|
||||||
ifndef OWN_HL
|
ifndef OWN_HL
|
||||||
SRC += jtag_scan.c jtagtap.c swdptap.c
|
SRC += jtag_scan.c jtagtap.c swdptap.c
|
||||||
SRC += remote.c
|
|
||||||
else
|
else
|
||||||
CFLAGS += -DOWN_HL
|
CFLAGS += -DOWN_HL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef PC_HOSTED
|
||||||
|
CFLAGS += -DPC_HOSTED=1
|
||||||
|
else
|
||||||
|
CFLAGS += -DPC_HOSTED=0
|
||||||
|
endif
|
||||||
|
|
||||||
OBJ = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(SRC)))
|
OBJ = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(SRC)))
|
||||||
|
|
||||||
$(TARGET): include/version.h $(OBJ)
|
$(TARGET): include/version.h $(OBJ)
|
||||||
|
|
|
@ -60,7 +60,7 @@ static bool cmd_target_power(target *t, int argc, const char **argv);
|
||||||
static bool cmd_traceswo(target *t, int argc, const char **argv);
|
static bool cmd_traceswo(target *t, int argc, const char **argv);
|
||||||
#endif
|
#endif
|
||||||
static bool cmd_heapinfo(target *t, int argc, const char **argv);
|
static bool cmd_heapinfo(target *t, int argc, const char **argv);
|
||||||
#if defined(PLATFORM_HAS_DEBUG) && !defined(PC_HOSTED)
|
#if defined(PLATFORM_HAS_DEBUG) && (PC_HOSTED == 0)
|
||||||
static bool cmd_debug_bmp(target *t, int argc, const char **argv);
|
static bool cmd_debug_bmp(target *t, int argc, const char **argv);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -85,14 +85,14 @@ const struct command_s cmd_list[] = {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
{"heapinfo", (cmd_handler)cmd_heapinfo, "Set semihosting heapinfo" },
|
{"heapinfo", (cmd_handler)cmd_heapinfo, "Set semihosting heapinfo" },
|
||||||
#if defined(PLATFORM_HAS_DEBUG) && !defined(PC_HOSTED)
|
#if defined(PLATFORM_HAS_DEBUG) && (PC_HOSTED == 0)
|
||||||
{"debug_bmp", (cmd_handler)cmd_debug_bmp, "Output BMP \"debug\" strings to the second vcom: (enable|disable)"},
|
{"debug_bmp", (cmd_handler)cmd_debug_bmp, "Output BMP \"debug\" strings to the second vcom: (enable|disable)"},
|
||||||
#endif
|
#endif
|
||||||
{NULL, NULL, NULL}
|
{NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool connect_assert_srst;
|
bool connect_assert_srst;
|
||||||
#if defined(PLATFORM_HAS_DEBUG) && !defined(PC_HOSTED)
|
#if defined(PLATFORM_HAS_DEBUG) && (PC_HOSTED == 0)
|
||||||
bool debug_bmp;
|
bool debug_bmp;
|
||||||
#endif
|
#endif
|
||||||
long cortexm_wait_timeout = 2000; /* Timeout to wait for Cortex to react on halt command. */
|
long cortexm_wait_timeout = 2000; /* Timeout to wait for Cortex to react on halt command. */
|
||||||
|
@ -135,7 +135,7 @@ bool cmd_version(target *t, int argc, char **argv)
|
||||||
(void)t;
|
(void)t;
|
||||||
(void)argc;
|
(void)argc;
|
||||||
(void)argv;
|
(void)argv;
|
||||||
#if defined PC_HOSTED
|
#if PC_HOSTED == 1
|
||||||
gdb_outf("Black Magic Probe, PC-Hosted for " PLATFORM_IDENT
|
gdb_outf("Black Magic Probe, PC-Hosted for " PLATFORM_IDENT
|
||||||
", Version " FIRMWARE_VERSION "\n");
|
", Version " FIRMWARE_VERSION "\n");
|
||||||
#else
|
#else
|
||||||
|
@ -389,7 +389,7 @@ static bool cmd_traceswo(target *t, int argc, const char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if defined(PLATFORM_HAS_DEBUG) && !defined(PC_HOSTED) && defined(ENABLE_DEBUG)
|
#if defined(PLATFORM_HAS_DEBUG) && (PC_HOSTED == 0) && defined(ENABLE_DEBUG)
|
||||||
if (debug_bmp) {
|
if (debug_bmp) {
|
||||||
#if TRACESWO_PROTOCOL == 2
|
#if TRACESWO_PROTOCOL == 2
|
||||||
gdb_outf("baudrate: %lu ", baudrate);
|
gdb_outf("baudrate: %lu ", baudrate);
|
||||||
|
@ -412,7 +412,7 @@ static bool cmd_traceswo(target *t, int argc, const char **argv)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PLATFORM_HAS_DEBUG) && !defined(PC_HOSTED)
|
#if defined(PLATFORM_HAS_DEBUG) && (PC_HOSTED == 0)
|
||||||
static bool cmd_debug_bmp(target *t, int argc, const char **argv)
|
static bool cmd_debug_bmp(target *t, int argc, const char **argv)
|
||||||
{
|
{
|
||||||
(void)t;
|
(void)t;
|
||||||
|
|
|
@ -47,7 +47,7 @@ int gdb_getpacket(char *packet, int size)
|
||||||
packet[0] = gdb_if_getchar();
|
packet[0] = gdb_if_getchar();
|
||||||
if (packet[0]==0x04) return 1;
|
if (packet[0]==0x04) return 1;
|
||||||
} while ((packet[0] != '$') && (packet[0] != REMOTE_SOM));
|
} while ((packet[0] != '$') && (packet[0] != REMOTE_SOM));
|
||||||
#ifndef OWN_HL
|
#if PC_HOSTED == 0
|
||||||
if (packet[0]==REMOTE_SOM) {
|
if (packet[0]==REMOTE_SOM) {
|
||||||
/* This is probably a remote control packet
|
/* This is probably a remote control packet
|
||||||
* - get and handle it */
|
* - get and handle it */
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#ifndef __GDB_IF_H
|
#ifndef __GDB_IF_H
|
||||||
#define __GDB_IF_H
|
#define __GDB_IF_H
|
||||||
|
|
||||||
#if !defined(NO_LIBOPENCM3)
|
#if PC_HOSTED == 0
|
||||||
#include <libopencm3/usb/usbd.h>
|
#include <libopencm3/usb/usbd.h>
|
||||||
void gdb_usb_out_cb(usbd_device *dev, uint8_t ep);
|
void gdb_usb_out_cb(usbd_device *dev, uint8_t ep);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
# error "Include 'general.h' instead"
|
# error "Include 'general.h' instead"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PC_HOSTED)
|
#if PC_HOSTED == 1
|
||||||
void platform_init(int argc, char **argv);
|
void platform_init(int argc, char **argv);
|
||||||
#else
|
#else
|
||||||
void platform_init(void);
|
void platform_init(void);
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
#if defined(PC_HOSTED)
|
#if PC_HOSTED == 1
|
||||||
platform_init(argc, argv);
|
platform_init(argc, argv);
|
||||||
#else
|
#else
|
||||||
(void) argc;
|
(void) argc;
|
||||||
|
|
|
@ -59,7 +59,7 @@ static char morse_repeat;
|
||||||
|
|
||||||
void morse(const char *msg, char repeat)
|
void morse(const char *msg, char repeat)
|
||||||
{
|
{
|
||||||
#if defined(PC_HOSTED)
|
#if PC_HOSTED == 1
|
||||||
if (msg)
|
if (msg)
|
||||||
DEBUG("%s\n", msg);
|
DEBUG("%s\n", msg);
|
||||||
(void) repeat;
|
(void) repeat;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
SYS = $(shell $(CC) -dumpmachine)
|
SYS = $(shell $(CC) -dumpmachine)
|
||||||
CFLAGS += -DPC_HOSTED -DNO_LIBOPENCM3 -DENABLE_DEBUG
|
CFLAGS += -DENABLE_DEBUG
|
||||||
CFLAGS += $(shell pkg-config --cflags libftdi1)
|
CFLAGS += $(shell pkg-config --cflags libftdi1)
|
||||||
LDFLAGS += $(shell pkg-config --libs libftdi1)
|
LDFLAGS += $(shell pkg-config --libs libftdi1)
|
||||||
ifneq (, $(findstring mingw, $(SYS)))
|
ifneq (, $(findstring mingw, $(SYS)))
|
||||||
|
@ -10,3 +10,4 @@ endif
|
||||||
VPATH += platforms/pc
|
VPATH += platforms/pc
|
||||||
SRC += timing.c cl_utils.c utils.c
|
SRC += timing.c cl_utils.c utils.c
|
||||||
CFLAGS +=-I ./target -I./platforms/pc
|
CFLAGS +=-I ./target -I./platforms/pc
|
||||||
|
PC_HOSTED = 1
|
|
@ -1,6 +1,6 @@
|
||||||
TARGET=blackmagic_hosted
|
TARGET=blackmagic_hosted
|
||||||
SYS = $(shell $(CC) -dumpmachine)
|
SYS = $(shell $(CC) -dumpmachine)
|
||||||
CFLAGS += -DPC_HOSTED -DNO_LIBOPENCM3 -DENABLE_DEBUG
|
CFLAGS += -DENABLE_DEBUG
|
||||||
CFLAGS +=-I ./target -I./platforms/pc
|
CFLAGS +=-I ./target -I./platforms/pc
|
||||||
ifneq (, $(findstring mingw, $(SYS)))
|
ifneq (, $(findstring mingw, $(SYS)))
|
||||||
SRC += serial_win.c
|
SRC += serial_win.c
|
||||||
|
@ -13,3 +13,4 @@ SRC += serial_unix.c
|
||||||
endif
|
endif
|
||||||
VPATH += platforms/pc
|
VPATH += platforms/pc
|
||||||
SRC += cl_utils.c timing.c utils.c
|
SRC += cl_utils.c timing.c utils.c
|
||||||
|
PC_HOSTED = 1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
TARGET=blackmagic_stlinkv2
|
TARGET=blackmagic_stlinkv2
|
||||||
SYS = $(shell $(CC) -dumpmachine)
|
SYS = $(shell $(CC) -dumpmachine)
|
||||||
CFLAGS += -DPC_HOSTED -DNO_LIBOPENCM3 -DSTLINKV2 -DJTAG_HL -DENABLE_DEBUG
|
CFLAGS += -DSTLINKV2 -DJTAG_HL -DENABLE_DEBUG
|
||||||
CFLAGS +=-I ./target -I./platforms/pc
|
CFLAGS +=-I ./target -I./platforms/pc
|
||||||
LDFLAGS += -lusb-1.0
|
LDFLAGS += -lusb-1.0
|
||||||
ifneq (, $(findstring mingw, $(SYS)))
|
ifneq (, $(findstring mingw, $(SYS)))
|
||||||
|
@ -11,3 +11,4 @@ endif
|
||||||
VPATH += platforms/pc
|
VPATH += platforms/pc
|
||||||
SRC += timing.c stlinkv2.c cl_utils.c utils.c
|
SRC += timing.c stlinkv2.c cl_utils.c utils.c
|
||||||
OWN_HL = 1
|
OWN_HL = 1
|
||||||
|
PC_HOSTED = 1
|
||||||
|
|
|
@ -263,7 +263,7 @@ enum {
|
||||||
int rdi_write(int fn, const char *buf, size_t len)
|
int rdi_write(int fn, const char *buf, size_t len)
|
||||||
{
|
{
|
||||||
(void)fn;
|
(void)fn;
|
||||||
#if defined(PLATFORM_HAS_DEBUG) && !defined(PC_HOSTED)
|
#if defined(PLATFORM_HAS_DEBUG)
|
||||||
if (debug_bmp)
|
if (debug_bmp)
|
||||||
return len - usbuart_debug_write(buf, len);
|
return len - usbuart_debug_write(buf, len);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -56,6 +56,7 @@ uint64_t remotehston(uint32_t limit, char *s)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if PC_HOSTED == 0
|
||||||
static void _respond(char respCode, uint64_t param)
|
static void _respond(char respCode, uint64_t param)
|
||||||
|
|
||||||
/* Send response to far end */
|
/* Send response to far end */
|
||||||
|
@ -274,3 +275,4 @@ void remotePacketProcess(uint8_t i, char *packet)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#ifdef PC_HOSTED
|
#if PC_HOSTED == 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* pc-hosted semihosting does keyboard, file and screen i/o on the system
|
* pc-hosted semihosting does keyboard, file and screen i/o on the system
|
||||||
|
@ -1067,7 +1067,7 @@ static bool cortexm_vector_catch(target *t, int argc, char *argv[])
|
||||||
#define SYS_WRITEC 0x03
|
#define SYS_WRITEC 0x03
|
||||||
#define SYS_WRITE0 0x04
|
#define SYS_WRITE0 0x04
|
||||||
|
|
||||||
#if !defined(PC_HOSTED)
|
#if PC_HOSTED == 0
|
||||||
/* probe memory access functions */
|
/* probe memory access functions */
|
||||||
static void probe_mem_read(target *t __attribute__((unused)), void *probe_dest, target_addr target_src, size_t len)
|
static void probe_mem_read(target *t __attribute__((unused)), void *probe_dest, target_addr target_src, size_t len)
|
||||||
{
|
{
|
||||||
|
@ -1104,7 +1104,7 @@ static int cortexm_hostio_request(target *t)
|
||||||
DEBUG("syscall 0"PRIx32"%"PRIx32" (%"PRIx32" %"PRIx32" %"PRIx32" %"PRIx32")\n",
|
DEBUG("syscall 0"PRIx32"%"PRIx32" (%"PRIx32" %"PRIx32" %"PRIx32" %"PRIx32")\n",
|
||||||
syscall, params[0], params[1], params[2], params[3]);
|
syscall, params[0], params[1], params[2], params[3]);
|
||||||
switch (syscall) {
|
switch (syscall) {
|
||||||
#if defined(PC_HOSTED)
|
#if PC_HOSTED == 1
|
||||||
|
|
||||||
/* code that runs in pc-hosted process. use linux system calls. */
|
/* code that runs in pc-hosted process. use linux system calls. */
|
||||||
|
|
||||||
|
|
|
@ -337,7 +337,7 @@ void target_detach(target *t)
|
||||||
{
|
{
|
||||||
t->detach(t);
|
t->detach(t);
|
||||||
t->attached = false;
|
t->attached = false;
|
||||||
#if defined(PC_HOSTED)
|
#if PC_HOSTED == 1
|
||||||
# include "platform.h"
|
# include "platform.h"
|
||||||
platform_buffer_flush();
|
platform_buffer_flush();
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue