aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/adiv5.c5
-rw-r--r--src/adiv5_jtagdp.c3
-rw-r--r--src/adiv5_swdp.c5
-rw-r--r--src/arm7tdmi.c4
-rw-r--r--src/command.c6
-rw-r--r--src/cortexm.c7
-rw-r--r--src/crc32.c2
-rw-r--r--src/gdb_main.c11
-rw-r--r--src/gdb_packet.c9
-rw-r--r--src/hex_utils.c4
-rw-r--r--src/include/adiv5.h1
-rw-r--r--src/include/arm7tdmi.h1
-rw-r--r--src/include/command.h1
-rw-r--r--src/include/cortexm.h20
-rw-r--r--src/include/crc32.h2
-rw-r--r--src/include/gdb_packet.h2
-rw-r--r--src/include/general.h12
-rw-r--r--src/include/jtag_scan.h2
-rw-r--r--src/include/jtagtap.h2
-rw-r--r--src/include/morse.h2
-rw-r--r--src/include/platform_support.h41
-rw-r--r--src/include/swdptap.h2
-rw-r--r--src/include/target.h2
-rw-r--r--src/jtag_scan.c7
-rw-r--r--src/kinetis.c3
-rw-r--r--src/lmi.c3
-rw-r--r--src/lpc11xx.c21
-rw-r--r--src/lpc43xx.c5
-rw-r--r--src/main.c10
-rw-r--r--src/nrf51.c3
-rw-r--r--src/platforms/common/usbuart.h1
-rw-r--r--src/platforms/f4discovery/platform.c22
-rw-r--r--src/platforms/f4discovery/platform.h14
-rw-r--r--src/platforms/f4discovery/usbdfu.c6
-rw-r--r--src/platforms/launchpad-icdi/platform.c11
-rw-r--r--src/platforms/launchpad-icdi/platform.h16
-rw-r--r--src/platforms/libftdi/jtagtap.c1
-rw-r--r--src/platforms/libftdi/platform.c15
-rw-r--r--src/platforms/libftdi/platform.h5
-rw-r--r--src/platforms/libftdi/swdptap.c2
-rw-r--r--src/platforms/native/platform.c22
-rw-r--r--src/platforms/native/platform.h22
-rw-r--r--src/platforms/stlink/platform.c22
-rw-r--r--src/platforms/stlink/platform.h16
-rw-r--r--src/platforms/stm32/cdcacm.c2
-rw-r--r--src/platforms/stm32/dfu_f1.c5
-rw-r--r--src/platforms/stm32/dfu_f4.c6
-rw-r--r--src/platforms/stm32/dfucore.c2
-rw-r--r--src/platforms/stm32/gdb_if.c2
-rw-r--r--src/platforms/stm32/gpio.h10
-rw-r--r--src/platforms/stm32/jtagtap.c2
-rw-r--r--src/platforms/stm32/traceswo.c5
-rw-r--r--src/platforms/stm32/usbuart.c2
-rw-r--r--src/platforms/swlink/platform.c21
-rw-r--r--src/platforms/swlink/platform.h16
-rw-r--r--src/platforms/tm4c/cdcacm.c2
-rw-r--r--src/platforms/tm4c/gdb_if.c6
-rw-r--r--src/platforms/tm4c/jtagtap.c1
-rw-r--r--src/platforms/tm4c/swdptap.c1
-rw-r--r--src/platforms/tm4c/traceswo.c5
-rw-r--r--src/platforms/tm4c/usbuart.c4
-rw-r--r--src/sam3x.c3
-rw-r--r--src/samd.c4
-rw-r--r--src/stm32f1.c3
-rw-r--r--src/stm32f4.c3
-rw-r--r--src/stm32l1.c3
-rw-r--r--src/target.c2
67 files changed, 167 insertions, 316 deletions
diff --git a/src/adiv5.c b/src/adiv5.c
index 6dcc919..361cd75 100644
--- a/src/adiv5.c
+++ b/src/adiv5.c
@@ -25,15 +25,10 @@
* Currently doesn't use ROM table for introspection, just assumes
* the device is Cortex-M3.
*/
-
-#include <stdio.h>
-#include <stdlib.h>
-
#include "general.h"
#include "jtag_scan.h"
#include "gdb_packet.h"
#include "adiv5.h"
-
#include "target.h"
#ifndef DO_RESET_SEQ
diff --git a/src/adiv5_jtagdp.c b/src/adiv5_jtagdp.c
index fd77a04..8f62a11 100644
--- a/src/adiv5_jtagdp.c
+++ b/src/adiv5_jtagdp.c
@@ -23,14 +23,11 @@
*/
#include "general.h"
-#include "platform.h"
#include "adiv5.h"
#include "jtag_scan.h"
#include "jtagtap.h"
#include "morse.h"
-#include <stdlib.h>
-
#define JTAGDP_ACK_OK 0x02
#define JTAGDP_ACK_WAIT 0x01
diff --git a/src/adiv5_swdp.c b/src/adiv5_swdp.c
index 6bafc91..9df362f 100644
--- a/src/adiv5_swdp.c
+++ b/src/adiv5_swdp.c
@@ -23,17 +23,12 @@
*/
#include "general.h"
-#include "platform.h"
#include "adiv5.h"
-
#include "swdptap.h"
#include "jtagtap.h"
-
#include "command.h"
#include "morse.h"
-#include <stdlib.h>
-
#define SWDP_ACK_OK 0x01
#define SWDP_ACK_WAIT 0x02
#define SWDP_ACK_FAULT 0x04
diff --git a/src/arm7tdmi.c b/src/arm7tdmi.c
index 1c7b443..1721787 100644
--- a/src/arm7tdmi.c
+++ b/src/arm7tdmi.c
@@ -24,14 +24,10 @@
*/
#include "general.h"
-#include "platform.h"
#include "target.h"
#include "jtag_scan.h"
#include "jtagtap.h"
-#include <stdlib.h>
-#include <string.h>
-
/* TODO:
* Skeleton target.
* EmbeddedICE registers, halt/resume target.
diff --git a/src/command.c b/src/command.c
index 7c17864..f271085 100644
--- a/src/command.c
+++ b/src/command.c
@@ -22,18 +22,12 @@
* commands.
*/
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
-
#include "command.h"
#include "gdb_packet.h"
-
#include "jtag_scan.h"
#include "target.h"
#include "morse.h"
-
#include "adiv5.h"
#ifdef PLATFORM_HAS_TRACESWO
diff --git a/src/cortexm.c b/src/cortexm.c
index 12914d3..a016342 100644
--- a/src/cortexm.c
+++ b/src/cortexm.c
@@ -28,11 +28,6 @@
* Issues:
* There are way too many magic numbers used here.
*/
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
#include "general.h"
#include "jtagtap.h"
#include "jtag_scan.h"
@@ -42,6 +37,8 @@
#include "gdb_packet.h"
#include "cortexm.h"
+#include <unistd.h>
+
static char cortexm_driver_str[] = "ARM Cortex-M";
static bool cortexm_vector_catch(target *t, int argc, char *argv[]);
diff --git a/src/crc32.c b/src/crc32.c
index 810a9dd..42d1d48 100644
--- a/src/crc32.c
+++ b/src/crc32.c
@@ -18,7 +18,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "platform.h"
+#include "general.h"
#include "target.h"
#if !defined(STM32F1) && !defined(STM32F4)
diff --git a/src/gdb_main.c b/src/gdb_main.c
index 41ab84a..17ad9a5 100644
--- a/src/gdb_main.c
+++ b/src/gdb_main.c
@@ -24,26 +24,15 @@
* Originally written for GDB 6.8, updated and tested with GDB 7.2.
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <assert.h>
-
-#include "platform.h"
-
#include "general.h"
#include "hex_utils.h"
#include "gdb_if.h"
#include "gdb_packet.h"
#include "gdb_main.h"
-
#include "jtagtap.h"
#include "jtag_scan.h"
#include "adiv5.h"
-
#include "target.h"
-
#include "command.h"
#include "crc32.h"
diff --git a/src/gdb_packet.c b/src/gdb_packet.c
index d43be42..4dc934f 100644
--- a/src/gdb_packet.c
+++ b/src/gdb_packet.c
@@ -22,18 +22,13 @@
* reception and transmission as well as some convenience functions.
*/
-#define _GNU_SOURCE
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <stdarg.h>
-
#include "general.h"
#include "gdb_if.h"
#include "gdb_packet.h"
#include "hex_utils.h"
+#include <stdarg.h>
+
int
gdb_getpacket(unsigned char *packet, int size)
{
diff --git a/src/hex_utils.c b/src/hex_utils.c
index e477281..45382ff 100644
--- a/src/hex_utils.c
+++ b/src/hex_utils.c
@@ -21,9 +21,7 @@
/* Convenience function to convert to/from ascii strings of hex digits.
*/
-#include <stdio.h>
-#include <stdint.h>
-
+#include "general.h"
#include "hex_utils.h"
static char hexdigits[] = "0123456789abcdef";
diff --git a/src/include/adiv5.h b/src/include/adiv5.h
index 0f17119..e0ce9cf 100644
--- a/src/include/adiv5.h
+++ b/src/include/adiv5.h
@@ -21,7 +21,6 @@
#ifndef __ADIV5_H
#define __ADIV5_H
-#include "general.h"
#include "jtag_scan.h"
#include "target.h"
diff --git a/src/include/arm7tdmi.h b/src/include/arm7tdmi.h
index ffcd6e9..fa7d586 100644
--- a/src/include/arm7tdmi.h
+++ b/src/include/arm7tdmi.h
@@ -21,7 +21,6 @@
#ifndef __ARM7TDMI_H
#define __ARM7TDMI_H
-#include "general.h"
#include "jtag_scan.h"
void arm7tdmi_jtag_handler(jtag_dev_t *dev);
diff --git a/src/include/command.h b/src/include/command.h
index 32b0d7b..3910bbb 100644
--- a/src/include/command.h
+++ b/src/include/command.h
@@ -21,7 +21,6 @@
#ifndef __COMMAND_H
#define __COMMAND_H
-#include "general.h"
#include "target.h"
int command_process(target *t, char *cmd);
diff --git a/src/include/cortexm.h b/src/include/cortexm.h
index f1fc07a..1fd77e6 100644
--- a/src/include/cortexm.h
+++ b/src/include/cortexm.h
@@ -1,6 +1,26 @@
+/*
+ * This file is part of the Black Magic Debug project.
+ *
+ * Copyright (C) 2015 Gareth McMullin <gareth@blacksphere.co.nz>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#ifndef __CORTEXM_H
#define __CORTEXM_H
+#include "target.h"
+
/* Private peripheral bus base address */
#define CORTEXM_PPB_BASE 0xE0000000
diff --git a/src/include/crc32.h b/src/include/crc32.h
index 6cc00ea..9966d8d 100644
--- a/src/include/crc32.h
+++ b/src/include/crc32.h
@@ -21,8 +21,6 @@
#ifndef __CRC32_H
#define __CRC32_H
-#include "platform.h"
-
uint32_t crc32_calc(uint32_t crc, uint8_t data);
uint32_t generic_crc32(struct target_s *target, uint32_t base, int len);
diff --git a/src/include/gdb_packet.h b/src/include/gdb_packet.h
index 9f5430f..222b86d 100644
--- a/src/include/gdb_packet.h
+++ b/src/include/gdb_packet.h
@@ -21,8 +21,6 @@
#ifndef __GDB_PACKET_H
#define __GDB_PACKET_H
-#include <string.h>
-
int gdb_getpacket(unsigned char *packet, int size);
void gdb_putpacket(unsigned char *packet, int size);
#define gdb_putpacketz(packet) gdb_putpacket((packet), strlen(packet))
diff --git a/src/include/general.h b/src/include/general.h
index b0721ac..b4e9aeb 100644
--- a/src/include/general.h
+++ b/src/include/general.h
@@ -21,15 +21,21 @@
#ifndef __GENERAL_H
#define __GENERAL_H
+#define _GNU_SOURCE
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <stddef.h>
+
#include "platform.h"
+#include "platform_support.h"
#ifndef DEBUG
#include <stdio.h>
#define DEBUG printf
#endif
-#include <stdint.h>
-#include <stdbool.h>
-
#endif
diff --git a/src/include/jtag_scan.h b/src/include/jtag_scan.h
index b425b95..aa006e7 100644
--- a/src/include/jtag_scan.h
+++ b/src/include/jtag_scan.h
@@ -21,8 +21,6 @@
#ifndef __JTAG_SCAN_H
#define __JTAG_SCAN_H
-#include "general.h"
-
#define JTAG_MAX_DEVS 5
#define JTAG_MAX_IR_LEN 16
diff --git a/src/include/jtagtap.h b/src/include/jtagtap.h
index fd13f2b..0072594 100644
--- a/src/include/jtagtap.h
+++ b/src/include/jtagtap.h
@@ -21,8 +21,6 @@
#ifndef __JTAGTAP_H
#define __JTAGTAP_H
-#include "general.h"
-
/* Note: Signal names are as for the device under test. */
int jtagtap_init(void);
diff --git a/src/include/morse.h b/src/include/morse.h
index ac53893..5ba39b1 100644
--- a/src/include/morse.h
+++ b/src/include/morse.h
@@ -21,8 +21,6 @@
#ifndef __MORSE_H
#define __MORSE_H
-#include <stdbool.h>
-
extern const char *morse_msg;
void morse(const char *msg, char repeat);
diff --git a/src/include/platform_support.h b/src/include/platform_support.h
new file mode 100644
index 0000000..cc88ab6
--- /dev/null
+++ b/src/include/platform_support.h
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the Black Magic Debug project.
+ *
+ * Copyright (C) 2015 Gareth McMullin <gareth@blacksphere.co.nz>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __PLATFORM_SUPPORT_H
+#define __PLATFORM_SUPPORT_H
+
+#ifndef __GENERAL_H
+# error "Include 'general.h' instead"
+#endif
+
+#if defined(LIBFTDI)
+void platform_init(int argc, char **argv);
+#else
+void platform_init(void);
+#endif
+
+const char *platform_target_voltage(void);
+int platform_hwversion(void);
+void platform_delay(uint32_t delay);
+void platform_srst_set_val(bool assert);
+bool platform_target_get_power(void);
+void platform_target_set_power(bool power);
+
+#endif
+
diff --git a/src/include/swdptap.h b/src/include/swdptap.h
index 5bb0545..3263a1d 100644
--- a/src/include/swdptap.h
+++ b/src/include/swdptap.h
@@ -21,8 +21,6 @@
#ifndef __SWDPTAP_H
#define __SWDPTAP_H
-#include "general.h"
-
int swdptap_init(void);
void swdptap_reset(void);
diff --git a/src/include/target.h b/src/include/target.h
index 50f1ebe..0e6d9c2 100644
--- a/src/include/target.h
+++ b/src/include/target.h
@@ -25,8 +25,6 @@
#ifndef __TARGET_H
#define __TARGET_H
-#include "general.h"
-
typedef struct target_s target;
/* The destroy callback function will be called by target_list_free() just
diff --git a/src/jtag_scan.c b/src/jtag_scan.c
index 257e6c4..208a1db 100644
--- a/src/jtag_scan.c
+++ b/src/jtag_scan.c
@@ -22,19 +22,12 @@
* to detect devices on the scan chain and read their IDCODEs.
* It depends on the low-level function provided by the platform's jtagtap.c.
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <assert.h>
#include "general.h"
#include "jtagtap.h"
#include "morse.h"
#include "jtag_scan.h"
-
#include "gdb_packet.h"
-
#include "adiv5.h"
#include "arm7tdmi.h"
diff --git a/src/kinetis.c b/src/kinetis.c
index 393bb18..4b7cf31 100644
--- a/src/kinetis.c
+++ b/src/kinetis.c
@@ -22,9 +22,6 @@
* the XML memory map and Flash memory programming.
*/
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
#include "adiv5.h"
#include "target.h"
diff --git a/src/lmi.c b/src/lmi.c
index a251242..8d409d0 100644
--- a/src/lmi.c
+++ b/src/lmi.c
@@ -27,9 +27,6 @@
* Flash erase is very slow.
*/
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
#include "adiv5.h"
#include "target.h"
diff --git a/src/lpc11xx.c b/src/lpc11xx.c
index ef26e78..d9e918e 100644
--- a/src/lpc11xx.c
+++ b/src/lpc11xx.c
@@ -1,8 +1,19 @@
-
-#include <stdlib.h>
-#include <string.h>
-#include <stddef.h>
-
+/*
+ * This file is part of the Black Magic Debug project.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#include "general.h"
#include "adiv5.h"
#include "target.h"
diff --git a/src/lpc43xx.c b/src/lpc43xx.c
index bfb96f7..3940fed 100644
--- a/src/lpc43xx.c
+++ b/src/lpc43xx.c
@@ -17,11 +17,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include "command.h"
#include "general.h"
+#include "command.h"
#include "adiv5.h"
#include "target.h"
#include "gdb_packet.h"
diff --git a/src/main.c b/src/main.c
index 809d4bf..60db15c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -22,26 +22,22 @@
* protocol loop.
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
+#include "general.h"
#include "gdb_if.h"
#include "gdb_main.h"
#include "jtagtap.h"
#include "jtag_scan.h"
-
#include "target.h"
int
main(int argc, char **argv)
{
#if defined(LIBFTDI)
- assert(platform_init(argc, argv) == 0);
+ platform_init(argc, argv);
#else
(void) argc;
(void) argv;
- assert(platform_init() == 0);
+ platform_init();
#endif
PLATFORM_SET_FATAL_ERROR_RECOVERY();
diff --git a/src/nrf51.c b/src/nrf51.c
index 7305d29..6c1a8b9 100644
--- a/src/nrf51.c
+++ b/src/nrf51.c
@@ -21,9 +21,6 @@
* the device, providing the XML memory map and Flash memory programming.
*/
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
#include "adiv5.h"
#include "target.h"
diff --git a/src/platforms/common/usbuart.h b/src/platforms/common/usbuart.h
index 39f7dcd..51f5702 100644
--- a/src/platforms/common/usbuart.h
+++ b/src/platforms/common/usbuart.h
@@ -22,7 +22,6 @@
#include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/cdc.h>
-#include "general.h"
void usbuart_init(void);
diff --git a/src/platforms/f4discovery/platform.c b/src/platforms/f4discovery/platform.c
index e051564..cf6cdf3 100644
--- a/src/platforms/f4discovery/platform.c
+++ b/src/platforms/f4discovery/platform.c
@@ -22,7 +22,11 @@
* implementation.
*/
-#include "platform.h"
+#include "general.h"
+#include "cdcacm.h"
+#include "usbuart.h"
+#include "morse.h"
+
#include <libopencm3/stm32/f4/rcc.h>
#include <libopencm3/cm3/systick.h>
#include <libopencm3/cm3/scb.h>
@@ -32,16 +36,12 @@
#include <libopencm3/stm32/syscfg.h>
#include <libopencm3/usb/usbd.h>
-#include "jtag_scan.h"
-#include "usbuart.h"
-#include "morse.h"
-
uint8_t running_status;
volatile uint32_t timeout_counter;
jmp_buf fatal_error_jmpbuf;
-int platform_init(void)
+void platform_init(void)
{
/* Check the USER button*/
rcc_peripheral_enable_clock(&RCC_AHB1ENR, RCC_AHB1ENR_IOPAEN);
@@ -86,17 +86,7 @@ int platform_init(void)
systick_counter_enable();
usbuart_init();
-
cdcacm_init();
-
- // Set recovery point
- if (setjmp(fatal_error_jmpbuf)) {
- return 0; // Do nothing on failure
- }
-
- jtag_scan(NULL);
-
- return 0;
}
void platform_delay(uint32_t delay)
diff --git a/src/platforms/f4discovery/platform.h b/src/platforms/f4discovery/platform.h
index 140e8d1..f58205d 100644
--- a/src/platforms/f4discovery/platform.h
+++ b/src/platforms/f4discovery/platform.h
@@ -24,19 +24,12 @@
#ifndef __PLATFORM_H
#define __PLATFORM_H
-#include <stdint.h>
-#include <libopencm3/cm3/common.h>
-#include <libopencm3/stm32/f4/memorymap.h>
-#include <libopencm3/stm32/f4/gpio.h>
-#include <libopencm3/usb/usbd.h>
-
-#include <setjmp.h>
-#include <alloca.h>
-
#include "gdb_packet.h"
#include "gpio.h"
#include "morse.h"
+#include <setjmp.h>
+
#define PLATFORM_HAS_TRACESWO
#define BOARD_IDENT "Black Magic Probe (F4Discovery), (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
#define BOARD_IDENT_DFU "Black Magic (Upgrade) for F4Discovery, (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
@@ -173,9 +166,6 @@ extern jmp_buf fatal_error_jmpbuf;
longjmp(fatal_error_jmpbuf, (error)); \
}
-int platform_init(void);
-const char *platform_target_voltage(void);
-void platform_delay(uint32_t delay);
static inline int platform_hwversion(void)
{
return 0;
diff --git a/src/platforms/f4discovery/usbdfu.c b/src/platforms/f4discovery/usbdfu.c
index 7070ade..6a40295 100644
--- a/src/platforms/f4discovery/usbdfu.c
+++ b/src/platforms/f4discovery/usbdfu.c
@@ -17,14 +17,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <string.h>
+#include "general.h"
+#include "usbdfu.h"
+
#include <libopencm3/cm3/systick.h>
#include <libopencm3/stm32/rcc.h>
#include <libopencm3/stm32/gpio.h>
#include <libopencm3/cm3/scb.h>
-#include "usbdfu.h"
-
void dfu_detach(void)
{
/* USB device must detach, we just reset... */
diff --git a/src/platforms/launchpad-icdi/platform.c b/src/platforms/launchpad-icdi/platform.c
index 1e66e12..0e3fb85 100644
--- a/src/platforms/launchpad-icdi/platform.c
+++ b/src/platforms/launchpad-icdi/platform.c
@@ -1,5 +1,6 @@
-#include "platform.h"
+#include "general.h"
#include "gdb_if.h"
+#include "cdcacm.h"
#include "usbuart.h"
#include <libopencm3/lm4f/rcc.h>
@@ -26,14 +27,14 @@ void sys_tick_handler(void)
trace_tick();
}
-int
+void
platform_init(void)
{
int i;
for(i=0; i<1000000; i++);
rcc_sysclk_config(OSCSRC_MOSC, XTAL_16M, PLL_DIV_80MHZ);
-
+
// Enable all JTAG ports and set pins to output
periph_clock_enable(RCC_GPIOA);
periph_clock_enable(RCC_GPIOB);
@@ -59,10 +60,6 @@ platform_init(void)
usbuart_init();
cdcacm_init();
-
- //jtag_scan(NULL);
-
- return 0;
}
void platform_delay(uint32_t delay)
diff --git a/src/platforms/launchpad-icdi/platform.h b/src/platforms/launchpad-icdi/platform.h
index 8c343a8..5f686f4 100644
--- a/src/platforms/launchpad-icdi/platform.h
+++ b/src/platforms/launchpad-icdi/platform.h
@@ -1,16 +1,13 @@
#ifndef __PLATFORM_H
#define __PLATFORM_H
-#include <stdint.h>
+#include "gdb_packet.h"
#include <setjmp.h>
-#include <alloca.h>
#include <libopencm3/lm4f/gpio.h>
#include <libopencm3/usb/usbd.h>
-#include "gdb_packet.h"
-
#define CDCACM_PACKET_SIZE 64
#define BOARD_IDENT "Black Magic Probe (Launchpad ICDI), (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
#define BOARD_IDENT_DFU "Black Magic (Upgrade) for Launchpad, (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
@@ -110,8 +107,6 @@ extern usbd_driver lm4f_usb_driver;
#define PLATFORM_HAS_TRACESWO
-int platform_init(void);
-
inline static void gpio_set_val(uint32_t port, uint8_t pin, uint8_t val) {
gpio_write(port, pin, val == 0 ? 0 : 0xff);
}
@@ -120,15 +115,6 @@ inline static uint8_t gpio_get(uint32_t port, uint8_t pin) {
return !(gpio_read(port, pin) == 0);
}
-void platform_delay(uint32_t delay);
-const char *platform_target_voltage(void);
-
-/* <cdcacm.c> */
-void cdcacm_init(void);
-/* Returns current usb configuration, or 0 if not configured. */
-int cdcacm_get_config(void);
-int cdcacm_get_dtr(void);
-
#define disconnect_usb() do { usbd_disconnect(usbdev,1); nvic_disable_irq(USB_IRQ);} while(0)
#define setup_vbus_irq()
diff --git a/src/platforms/libftdi/jtagtap.c b/src/platforms/libftdi/jtagtap.c
index 91f6ae2..c9bc876 100644
--- a/src/platforms/libftdi/jtagtap.c
+++ b/src/platforms/libftdi/jtagtap.c
@@ -69,6 +69,7 @@ void jtagtap_reset(void)
void jtagtap_srst(bool assert)
{
+ (void)assert;
platform_buffer_flush();
//ftdi_write_data(ftdic, "\x80\x88\xAB", 3);
//usleep(1000);
diff --git a/src/platforms/libftdi/platform.c b/src/platforms/libftdi/platform.c
index 723efa3..e53f011 100644
--- a/src/platforms/libftdi/platform.c
+++ b/src/platforms/libftdi/platform.c
@@ -17,14 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "platform.h"
+#include "general.h"
#include "gdb_if.h"
-#include "jtag_scan.h"
-#include <stdio.h>
-#include <string.h>
#include <assert.h>
-#include <unistd.h>
struct ftdi_context *ftdic;
@@ -121,7 +117,7 @@ static struct cable_desc_s {
},
};
-int platform_init(int argc, char **argv)
+void platform_init(int argc, char **argv)
{
int err;
int c;
@@ -149,7 +145,7 @@ int platform_init(int argc, char **argv)
if (index == sizeof(cable_desc)/sizeof(cable_desc[0])){
fprintf(stderr, "No cable matching %s found\n",cablename);
- return -1;
+ exit(-1);
}
if (cable_desc[index].dbus_data)
@@ -212,12 +208,7 @@ int platform_init(int argc, char **argv)
}
assert(ftdi_write_data(ftdic, ftdi_init, 9) == 9);
-
assert(gdb_if_init() == 0);
-
- jtag_scan(NULL);
-
- return 0;
}
void platform_buffer_flush(void)
diff --git a/src/platforms/libftdi/platform.h b/src/platforms/libftdi/platform.h
index a95a3f4..135b2e3 100644
--- a/src/platforms/libftdi/platform.h
+++ b/src/platforms/libftdi/platform.h
@@ -21,7 +21,6 @@
#ifndef __PLATFORM_H
#define __PLATFORM_H
-#include <stdint.h>
#include <ftdi.h>
#ifndef WIN32
@@ -42,10 +41,6 @@
extern struct ftdi_context *ftdic;
-int platform_init(int argc, char **argv);
-const char *platform_target_voltage(void);
-void platform_delay(uint32_t delay);
-
void platform_buffer_flush(void);
int platform_buffer_write(const uint8_t *data, int size);
int platform_buffer_read(uint8_t *data, int size);
diff --git a/src/platforms/libftdi/swdptap.c b/src/platforms/libftdi/swdptap.c
index ef350de..eb6e65e 100644
--- a/src/platforms/libftdi/swdptap.c
+++ b/src/platforms/libftdi/swdptap.c
@@ -26,7 +26,7 @@
#include <assert.h>
#include <ftdi.h>
-#include "platform.h"
+#include "general.h"
#include "swdptap.h"
static void swdptap_turnaround(uint8_t dir);
diff --git a/src/platforms/native/platform.c b/src/platforms/native/platform.c
index 3f61f5f..9b39238 100644
--- a/src/platforms/native/platform.c
+++ b/src/platforms/native/platform.c
@@ -22,7 +22,10 @@
* implementation.
*/
-#include "platform.h"
+#include "general.h"
+#include "cdcacm.h"
+#include "usbuart.h"
+#include "morse.h"
#include <libopencm3/stm32/f1/rcc.h>
#include <libopencm3/cm3/systick.h>
@@ -33,11 +36,6 @@
#include <libopencm3/usb/usbd.h>
#include <libopencm3/stm32/f1/adc.h>
-#include "jtag_scan.h"
-#include "cdcacm.h"
-#include "usbuart.h"
-#include "morse.h"
-
uint8_t running_status;
volatile uint32_t timeout_counter;
@@ -62,7 +60,7 @@ int platform_hwversion(void)
return hwversion;
}
-int platform_init(void)
+void platform_init(void)
{
rcc_clock_setup_in_hse_8mhz_out_72mhz();
@@ -136,16 +134,6 @@ int platform_init(void)
cdcacm_init();
usbuart_init();
-
- /* Set recovery point */
- if (setjmp(fatal_error_jmpbuf)) {
- /* Do nothing on failure */
- return 0;
- }
-
- jtag_scan(NULL);
-
- return 0;
}
void platform_srst_set_val(bool assert)
diff --git a/src/platforms/native/platform.h b/src/platforms/native/platform.h
index 321c3f3..5688e60 100644
--- a/src/platforms/native/platform.h
+++ b/src/platforms/native/platform.h
@@ -24,20 +24,12 @@
#ifndef __PLATFORM_H
#define __PLATFORM_H
-#include <stdint.h>
-#include <libopencm3/cm3/common.h>
-#include <libopencm3/stm32/f1/memorymap.h>
-
-#include <libopencm3/stm32/f1/gpio.h>
-#include <libopencm3/usb/usbd.h>
-
-#include <setjmp.h>
-#include <alloca.h>
-
#include "gdb_packet.h"
#include "gpio.h"
#include "morse.h"
+#include <setjmp.h>
+
#define PLATFORM_HAS_TRACESWO
#define PLATFORM_HAS_POWER_SWITCH
#define BOARD_IDENT "Black Magic Probe"
@@ -173,13 +165,6 @@ extern jmp_buf fatal_error_jmpbuf;
longjmp(fatal_error_jmpbuf, (error)); \
} while (0)
-int platform_init(void);
-const char *platform_target_voltage(void);
-int platform_hwversion(void);
-void platform_set_timeout(uint32_t ms);
-bool platform_timeout_expired(void);
-void platform_delay(uint32_t delay);
-
/* Use newlib provided integer only stdio functions */
#define sscanf siscanf
#define sprintf siprintf
@@ -188,9 +173,6 @@ void platform_delay(uint32_t delay);
#define disconnect_usb() gpio_set_mode(USB_PU_PORT, GPIO_MODE_INPUT, 0, USB_PU_PIN);
void assert_boot_pin(void);
void setup_vbus_irq(void);
-void platform_srst_set_val(bool assert);
-bool platform_target_get_power(void);
-void platform_target_set_power(bool power);
#endif
diff --git a/src/platforms/stlink/platform.c b/src/platforms/stlink/platform.c
index 6ef8c77..6194d92 100644
--- a/src/platforms/stlink/platform.c
+++ b/src/platforms/stlink/platform.c
@@ -22,7 +22,10 @@
* implementation.
*/
-#include "platform.h"
+#include "general.h"
+#include "cdcacm.h"
+#include "usbuart.h"
+
#include <libopencm3/stm32/rcc.h>
#include <libopencm3/cm3/systick.h>
#include <libopencm3/cm3/scb.h>
@@ -31,11 +34,6 @@
#include <libopencm3/usb/usbd.h>
#include <libopencm3/stm32/adc.h>
-#include "jtag_scan.h"
-#include <usbuart.h>
-
-#include <ctype.h>
-
uint8_t running_status;
volatile uint32_t timeout_counter;
@@ -68,7 +66,7 @@ int platform_hwversion(void)
return hwversion;
}
-int platform_init(void)
+void platform_init(void)
{
rcc_clock_setup_in_hse_8mhz_out_72mhz();
@@ -119,16 +117,6 @@ int platform_init(void)
SCB_VTOR = 0x2000; /* Relocate interrupt vector table here */
cdcacm_init();
-
- /* Set recovery point */
- if (setjmp(fatal_error_jmpbuf)) {
- /* Do nothing on failure */
- return 0;
- }
-
- jtag_scan(NULL);
-
- return 0;
}
void platform_delay(uint32_t delay)
diff --git a/src/platforms/stlink/platform.h b/src/platforms/stlink/platform.h
index a33ca06..5768817 100644
--- a/src/platforms/stlink/platform.h
+++ b/src/platforms/stlink/platform.h
@@ -24,18 +24,14 @@
#ifndef __PLATFORM_H
#define __PLATFORM_H
-#include <stdint.h>
+#include "gdb_packet.h"
+#include "gpio.h"
+
#include <libopencm3/cm3/common.h>
#include <libopencm3/stm32/f1/memorymap.h>
-
-#include <libopencm3/stm32/f1/gpio.h>
#include <libopencm3/usb/usbd.h>
#include <setjmp.h>
-#include <alloca.h>
-
-#include "gdb_packet.h"
-#include "gpio.h"
#define BOARD_IDENT "Black Magic Probe (STLINK), (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
#define BOARD_IDENT_DFU "Black Magic (Upgrade) for STLink/Discovery, (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
@@ -151,11 +147,6 @@ extern uint16_t led_idle_run;
longjmp(fatal_error_jmpbuf, (error)); \
} while (0)
-int platform_init(void);
-const char *platform_target_voltage(void);
-void platform_delay(uint32_t delay);
-void platform_srst_set_val(bool assert);
-
/* Use newlib provided integer only stdio functions */
#define sscanf siscanf
#define sprintf siprintf
@@ -163,6 +154,7 @@ void platform_srst_set_val(bool assert);
void disconnect_usb(void);
void assert_boot_pin(void);
+void setup_vbus_irq(void);
#endif
diff --git a/src/platforms/stm32/cdcacm.c b/src/platforms/stm32/cdcacm.c
index 074b534..577925a 100644
--- a/src/platforms/stm32/cdcacm.c
+++ b/src/platforms/stm32/cdcacm.c
@@ -33,7 +33,7 @@
#include <libopencm3/usb/dfu.h>
#include <stdlib.h>
-#include "platform.h"
+#include "general.h"
#include "gdb_if.h"
#include "cdcacm.h"
#if defined(PLATFORM_HAS_TRACESWO)
diff --git a/src/platforms/stm32/dfu_f1.c b/src/platforms/stm32/dfu_f1.c
index bb1e274..abbdbe6 100644
--- a/src/platforms/stm32/dfu_f1.c
+++ b/src/platforms/stm32/dfu_f1.c
@@ -16,12 +16,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
-#include "platform.h"
+#include "general.h"
+#include "usbdfu.h"
#include <libopencm3/stm32/f1/flash.h>
#include <libopencm3/cm3/scb.h>
-#include "usbdfu.h"
#define FLASH_OBP_RDP 0x1FFFF800
#define FLASH_OBP_WRP10 0x1FFFF808
diff --git a/src/platforms/stm32/dfu_f4.c b/src/platforms/stm32/dfu_f4.c
index 1065938..2ececa0 100644
--- a/src/platforms/stm32/dfu_f4.c
+++ b/src/platforms/stm32/dfu_f4.c
@@ -16,8 +16,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
-#include "platform.h"
+#include "general.h"
+#include "usbdfu.h"
#if defined(STM32F2)
# include <libopencm3/stm32/f2/flash.h>
@@ -26,8 +26,6 @@
#endif
#include <libopencm3/cm3/scb.h>
-#include "usbdfu.h"
-
static uint32_t sector_addr[] = {
0x8000000, 0x8004000, 0x8008000, 0x800c000,
0x8010000, 0x8020000, 0x8040000, 0x8060000,
diff --git a/src/platforms/stm32/dfucore.c b/src/platforms/stm32/dfucore.c
index 77cef4e..7b733d7 100644
--- a/src/platforms/stm32/dfucore.c
+++ b/src/platforms/stm32/dfucore.c
@@ -17,7 +17,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "platform.h"
+#include "general.h"
#include <string.h>
#if defined(STM32F1)
diff --git a/src/platforms/stm32/gdb_if.c b/src/platforms/stm32/gdb_if.c
index 6cc9084..286c66b 100644
--- a/src/platforms/stm32/gdb_if.c
+++ b/src/platforms/stm32/gdb_if.c
@@ -22,7 +22,7 @@
* Serial Debugging protocol is implemented. This implementation for STM32
* uses the USB CDC-ACM device bulk endpoints to implement the channel.
*/
-#include "platform.h"
+#include "general.h"
#include "cdcacm.h"
#include "gdb_if.h"
diff --git a/src/platforms/stm32/gpio.h b/src/platforms/stm32/gpio.h
index 035f3c9..ee8275e 100644
--- a/src/platforms/stm32/gpio.h
+++ b/src/platforms/stm32/gpio.h
@@ -20,6 +20,16 @@
#ifndef __GPIO_H
#define __GPIO_H
+#include <libopencm3/cm3/common.h>
+
+#ifndef STM32F4
+# include <libopencm3/stm32/f1/memorymap.h>
+# include <libopencm3/stm32/f1/gpio.h>
+#else
+# include <libopencm3/stm32/f4/memorymap.h>
+# include <libopencm3/stm32/f4/gpio.h>
+#endif
+
#define INLINE_GPIO
#define gpio_set_val(port, pin, val) do { \
diff --git a/src/platforms/stm32/jtagtap.c b/src/platforms/stm32/jtagtap.c
index 2d09b84..3c45a81 100644
--- a/src/platforms/stm32/jtagtap.c
+++ b/src/platforms/stm32/jtagtap.c
@@ -23,9 +23,7 @@
#include <stdio.h>
#include "general.h"
-
#include "jtagtap.h"
-#include "platform.h"
int jtagtap_init(void)
{
diff --git a/src/platforms/stm32/traceswo.c b/src/platforms/stm32/traceswo.c
index 29bae8f..a2e704d 100644
--- a/src/platforms/stm32/traceswo.c
+++ b/src/platforms/stm32/traceswo.c
@@ -32,15 +32,12 @@
* The core can then process the buffer to extract the frame.
*/
#include "general.h"
+#include "cdcacm.h"
#include <libopencm3/cm3/nvic.h>
#include <libopencm3/stm32/timer.h>
#include <libopencm3/stm32/f1/rcc.h>
-#include <string.h>
-#include "platform.h"
-#include "cdcacm.h"
-
void traceswo_init(void)
{
TRACE_TIM_CLK_EN();
diff --git a/src/platforms/stm32/usbuart.c b/src/platforms/stm32/usbuart.c
index 970a609..cce2904 100644
--- a/src/platforms/stm32/usbuart.c
+++ b/src/platforms/stm32/usbuart.c
@@ -27,7 +27,7 @@
#include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/cdc.h>
-#include "platform.h"
+#include "general.h"
#include "cdcacm.h"
#define USBUART_TIMER_FREQ_HZ 1000000U /* 1us per tick */
diff --git a/src/platforms/swlink/platform.c b/src/platforms/swlink/platform.c
index 853cbc9..168ba2a 100644
--- a/src/platforms/swlink/platform.c
+++ b/src/platforms/swlink/platform.c
@@ -22,7 +22,10 @@
* implementation.
*/
-#include "platform.h"
+#include "general.h"
+#include "cdcacm.h"
+#include "usbuart.h"
+
#include <libopencm3/stm32/f1/rcc.h>
#include <libopencm3/cm3/systick.h>
#include <libopencm3/cm3/scb.h>
@@ -31,17 +34,12 @@
#include <libopencm3/usb/usbd.h>
#include <libopencm3/stm32/f1/adc.h>
-#include "jtag_scan.h"
-#include <usbuart.h>
-
-#include <ctype.h>
-
uint8_t running_status;
volatile uint32_t timeout_counter;
jmp_buf fatal_error_jmpbuf;
-int platform_init(void)
+void platform_init(void)
{
uint32_t data;
rcc_clock_setup_in_hse_8mhz_out_72mhz();
@@ -98,15 +96,6 @@ int platform_init(void)
SCB_VTOR = 0x2000; // Relocate interrupt vector table here
cdcacm_init();
-
- // Set recovery point
- if (setjmp(fatal_error_jmpbuf)) {
- return 0; // Do nothing on failure
- }
-
- jtag_scan(NULL);
-
- return 0;
}
void platform_delay(uint32_t delay)
diff --git a/src/platforms/swlink/platform.h b/src/platforms/swlink/platform.h
index 26cb7a6..dec5548 100644
--- a/src/platforms/swlink/platform.h
+++ b/src/platforms/swlink/platform.h
@@ -24,19 +24,11 @@
#ifndef __PLATFORM_H
#define __PLATFORM_H
-#include <stdint.h>
-#include <libopencm3/cm3/common.h>
-#include <libopencm3/stm32/f1/memorymap.h>
-
-#include <libopencm3/stm32/f1/gpio.h>
-#include <libopencm3/usb/usbd.h>
-
-#include <setjmp.h>
-#include <alloca.h>
-
#include "gdb_packet.h"
#include "gpio.h"
+#include <setjmp.h>
+
#define BOARD_IDENT "Black Magic Probe (SWLINK), (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
#define BOARD_IDENT_DFU "Black Magic (Upgrade), STM8S Discovery, (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
#define BOARD_IDENT_UPD "Black Magic (DFU Upgrade), STM8S Discovery, (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
@@ -149,10 +141,6 @@ extern jmp_buf fatal_error_jmpbuf;
longjmp(fatal_error_jmpbuf, (error)); \
}
-int platform_init(void);
-const char *platform_target_voltage(void);
-void platform_delay(uint32_t delay);
-
/* Use newlib provided integer only stdio functions */
#define sscanf siscanf
#define sprintf siprintf
diff --git a/src/platforms/tm4c/cdcacm.c b/src/platforms/tm4c/cdcacm.c
index 041d85b..2677ad5 100644
--- a/src/platforms/tm4c/cdcacm.c
+++ b/src/platforms/tm4c/cdcacm.c
@@ -35,7 +35,7 @@
#include <libopencm3/lm4f/usb.h>
#include <stdlib.h>
-#include "platform.h"
+#include "general.h"
#include "gdb_if.h"
#if defined(PLATFORM_HAS_TRACESWO)
#include <traceswo.h>
diff --git a/src/platforms/tm4c/gdb_if.c b/src/platforms/tm4c/gdb_if.c
index b14bbd3..7119638 100644
--- a/src/platforms/tm4c/gdb_if.c
+++ b/src/platforms/tm4c/gdb_if.c
@@ -22,10 +22,12 @@
* Serial Debugging protocol is implemented. This implementation for STM32
* uses the USB CDC-ACM device bulk endpoints to implement the channel.
*/
-#include "platform.h"
-#include <libopencm3/usb/usbd.h>
+#include "general.h"
#include "gdb_if.h"
+#include "cdcacm.h"
+
+#include <libopencm3/usb/usbd.h>
static volatile uint32_t head_out, tail_out;
static volatile uint32_t count_in;
diff --git a/src/platforms/tm4c/jtagtap.c b/src/platforms/tm4c/jtagtap.c
index f340b1e..e0bdd68 100644
--- a/src/platforms/tm4c/jtagtap.c
+++ b/src/platforms/tm4c/jtagtap.c
@@ -1,3 +1,4 @@
+#include "general.h"
#include "jtagtap.h"
int
diff --git a/src/platforms/tm4c/swdptap.c b/src/platforms/tm4c/swdptap.c
index 7004598..058f6ba 100644
--- a/src/platforms/tm4c/swdptap.c
+++ b/src/platforms/tm4c/swdptap.c
@@ -1,5 +1,4 @@
#include "general.h"
-#include "platform.h"
#include "swdptap.h"
static void swdptap_turnaround(uint8_t dir)
diff --git a/src/platforms/tm4c/traceswo.c b/src/platforms/tm4c/traceswo.c
index eb63139..03c6d66 100644
--- a/src/platforms/tm4c/traceswo.c
+++ b/src/platforms/tm4c/traceswo.c
@@ -32,14 +32,9 @@
#include <libopencm3/cm3/nvic.h>
#include <libopencm3/lm4f/rcc.h>
#include <libopencm3/lm4f/nvic.h>
-
#include <libopencm3/lm4f/uart.h>
-
#include <libopencm3/usb/usbd.h>
-#include <string.h>
-#include "platform.h"
-
void traceswo_init(void)
{
periph_clock_enable(RCC_GPIOD);
diff --git a/src/platforms/tm4c/usbuart.c b/src/platforms/tm4c/usbuart.c
index bb769f0..da82198 100644
--- a/src/platforms/tm4c/usbuart.c
+++ b/src/platforms/tm4c/usbuart.c
@@ -19,6 +19,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "general.h"
+#include "cdcacm.h"
#include <libopencm3/cm3/nvic.h>
#include <libopencm3/cm3/scs.h>
@@ -27,8 +29,6 @@
#include <libopencm3/lm4f/rcc.h>
#include <libopencm3/lm4f/uart.h>
-#include <platform.h>
-
#define FIFO_SIZE 128
/* RX Fifo buffer */
diff --git a/src/sam3x.c b/src/sam3x.c
index e6b8f2e..ef99290 100644
--- a/src/sam3x.c
+++ b/src/sam3x.c
@@ -22,9 +22,6 @@
* the device, providing the XML memory map and Flash memory programming.
*/
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
#include "adiv5.h"
#include "target.h"
diff --git a/src/samd.c b/src/samd.c
index b043c50..1a7a553 100644
--- a/src/samd.c
+++ b/src/samd.c
@@ -32,10 +32,6 @@
* particularly Sections 12. DSU and 20. NVMCTRL
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
#include "jtagtap.h"
#include "adiv5.h"
diff --git a/src/stm32f1.c b/src/stm32f1.c
index bce00d3..017196a 100644
--- a/src/stm32f1.c
+++ b/src/stm32f1.c
@@ -29,9 +29,6 @@
* Programming manual - STM32F10xxx Flash memory microcontrollers
*/
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
#include "adiv5.h"
#include "target.h"
diff --git a/src/stm32f4.c b/src/stm32f4.c
index 148c31b..bc3572f 100644
--- a/src/stm32f4.c
+++ b/src/stm32f4.c
@@ -30,9 +30,6 @@
* manual
*/
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
#include "adiv5.h"
#include "target.h"
diff --git a/src/stm32l1.c b/src/stm32l1.c
index 0472885..227f67c 100644
--- a/src/stm32l1.c
+++ b/src/stm32l1.c
@@ -29,9 +29,6 @@
* Flash and EEPROM programming
*/
-#include <stdlib.h>
-#include <string.h>
-
#include "general.h"
#include "adiv5.h"
#include "target.h"
diff --git a/src/target.c b/src/target.c
index 2a68f23..4299a45 100644
--- a/src/target.c
+++ b/src/target.c
@@ -21,8 +21,6 @@
#include "general.h"
#include "target.h"
-#include <stdlib.h>
-
target *target_list = NULL;
bool connect_assert_srst;