Commit Graph

1522 Commits

Author SHA1 Message Date
Gareth McMullin 5020d1f05d Move semihosting support to cortexm.c.
Try to implement more syscalls.
2013-05-18 15:33:58 +12:00
Paul Fertser aca421d0bb Basic semihosting support
Implement bare minimum necessary to support console IO.

This works with standard newlib builds and is based on the reference
documentation:
http://infocenter.arm.com/help/topic/com.arm.doc.dui0471c/CHDJHHDI.html

Tested using gcc-arm-none-eabi-4_7-2013q1-20130313 for both
stm32f1-based BMP and stm32f0 target.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-18 15:33:58 +12:00
Gareth McMullin feaf626673 Add support for Atmel SAM3N devices. 2013-05-18 15:32:06 +12:00
Paul Fertser cdaed128c1 stlink: add support for SRST handling
This enables SRST signals in open drain mode for both stlinkv1 and
stlinkv2 hardware platforms.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-14 12:34:53 +12:00
Paul Fertser e0fc21a2a7 adiv5_swdp: allow to connect to a sleeping target by pulling SRST
This patch introduces a new command, "connect_srst [enable|disable]"
which allows to enable special mode in which SRST would be pulled low
before the SWD scan till attaching to a target.

Since on Cortex-Mx the SRST signal doesn't gate JTAG and SWD, it's
possible to connect to a target while holding reset, ask it to stop at
reset vector and only then deassert reset, thus allowing to attach to
the kind of firmware that goes immediately to sleep or disables
debugging by other means early on start.

Tested on an STM32VLDiscovery board with STM32F100 configured to go to
STOP mode and executing WFI in the very beginning of main().

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-14 12:32:44 +12:00
Allen Ibara 510d1c0dc8 Add support for burning flash on lpc4337. 2013-05-14 12:25:13 +12:00
Gareth McMullin 56f44c39d9 nxp: support the lpc1114dip28 by Rickta59 2013-04-27 20:57:20 -07:00
Gareth McMullin e3f3171a33 usbuart: Fix build error and clean up whitespace. 2013-04-27 13:14:22 -07:00
Allen Ibara 43f7e7a3cf Changes to the USBUART to make it less likely to drop characters at higher baud rates.
USB UART seems to work fine at 115.2Kbps or 230.4Kbps, but starts to drop characters
as the data rate goes higher. This commit changes the usbuart ISR to fill a software
FIFO, and adds a low priority timer interrupt to run deferred processing to drain a
FIFO and send USB CDCACM packets, rather than calling the usb send within the UART
ISR.

Tested on native platform, up to 1.5MBps.
2013-04-27 12:56:58 -07:00
Uwe Bonnes f1ea5ed8f9 F4Discovery: Slow Down GPIO access a little, as off-board SWD otherwise needs _very_ good ground connection. 2013-04-23 13:43:43 -07:00
Uwe Bonnes ad151fdca8 F4 Discovery: - Unconditionally use the System Bootloader - Use PC2/4/5/6 Pins for JTAG/SWD to avoid collision with eventual STLink Uart connection - Indicate Bootloader with blue LED 2013-04-23 12:14:18 -07:00
Gareth McMullin 6659d87e9b Remove DFU bootloader self protection.
It can still be enabled by building with -DDFU_SELF_PROTECT
2013-04-16 16:54:52 -07:00
Gareth McMullin 126df7bb35 Allow extra LDFLAGS on command line. Use nano.specs for swlink. 2013-04-16 16:47:38 -07:00
Gareth McMullin 45e02360b7 native: Fix up deprecated warnings. 2013-04-16 12:47:29 -07:00
Gareth McMullin 89b908337d Add missing #includes 2013-04-16 12:36:19 -07:00
Gareth McMullin 67a96410e3 libftdi: Clean up warnings. 2013-04-16 12:33:28 -07:00
Gareth McMullin da448ec1a6 libftdi: Add 'flossjtag' cable. 2013-04-16 12:14:37 -07:00
Uwe Bonnes 6b7babf624 stm32f4: Add option erase command
--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
>From d488dffe4dab4e5188c750489006260745a9e25a Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Mon, 15 Apr 2013 15:26:58 +0200
Subject: stm32f4: Add option erase command
2013-04-15 10:22:17 -07:00
Paul Fertser 9c95f039cf Make code compatible with newlib-nano and use it for stlink
With gcc-arm-none-eabi-4_7-2013q1-20130313 and -O2 I get
   text    data     bss     dec     hex filename
  45744     304    2376   48424    bd28 blackmagic

With -Os the results are even more impressive:
   text    data     bss     dec     hex filename
  37900     304    2376   40580    9e84 blackmagic

Since -Os might lower the debugging speed, do not enable it yet in the
absence of real measurements.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-04-14 11:48:59 -07:00
Paul Fertser 91b481731d stm32f1/stm32f4: fix hardware CRC calculation
This was real-life tested on stm32f1 hardware including computation
for odd-sized ranges.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-04-14 11:35:23 -07:00
Gareth McMullin 7db6e3e00c Revert "Revert "STM32: Use hardware CRC unit""
This reverts commit 58abbf7fc7.
2013-04-14 11:28:46 -07:00
Gareth McMullin 58abbf7fc7 Revert "STM32: Use hardware CRC unit"
This reverts commit 32b909067b.

This CRC routine doesn't work.  The bit order used by the
STM32 CRC unit is reveresed from what GDB uses.
2013-04-04 21:37:51 -07:00
Gareth McMullin 61d464bf09 dfu: Fix warnings. 2013-04-04 20:16:13 -07:00
Gareth McMullin d4411fc51f Removed verison info from USB strings on native platform. 2013-03-31 12:18:11 -07:00
Gareth McMullin 3a70b81cce Add erase_mass command for stm32f4 devices. 2013-03-27 14:10:07 -07:00
Gareth McMullin d7a6f0165e Accept new chip ID for stm32f4 and include flash layout for 2MiB parts.
Thanks to Mike Smith.
2013-03-27 11:24:43 -07:00
Gareth McMullin 87dad080e1 Fix build for f4discovery host. 2013-03-17 10:17:05 +13:00
Gareth McMullin 931cd97f15 Removed stm32_can and usps_f407 platforms. 2013-03-15 20:50:55 +13:00
Uwe Bonnes 486c5de013 swlink: Add missing item to connector layout 2013-03-14 22:56:31 +01:00
Uwe Bonnes 920ced062e SWLINK: Add variant for the STM8S Discovery board 2013-03-12 12:24:10 +01:00
Gareth McMullin e880c553fb Restore trace timer interrupt handler. 2013-03-12 19:14:11 +13:00
Gareth McMullin 7c2e994381 Split out platform specific bootloader parts to separate files. 2013-03-12 19:04:10 +13:00
Gareth McMullin 55f161208d Further split-up of DFU bootloader. 2013-03-12 15:00:15 +13:00
Gareth McMullin 14e5e8b0b6 Separated clean and dirty bootloader sections. 2013-03-12 09:57:28 +13:00
Vegard Storheil Eriksen e8f9d52d2f gdb_if: Fix USB flow control.
The introduction of the double buffering broke USB flow control, causing
loss of data when a new packet arrived with the previous still present in
the double buffer.

With this patch the endpoint is kept in NAK until the double buffer is empty.
2013-03-06 20:36:49 +01:00
Gareth McMullin d5be7b7a50 Merge pull request #11 from aibara/master
Another small fix for adiv5, ap_mem_write_bytes double increment analogous to previous fix for ap_mem_read_bytes
2013-02-18 00:51:45 -08:00
Gareth McMullin 99ac73907f Merge pull request #9 from jeffstaley/master
Bug fixes for lpc11xx code
2013-02-18 00:50:50 -08:00
Uwe Bonnes ff8de39774 usbuart: Don't try to send until configured. Enumeration may hang else 2013-02-15 17:55:36 +01:00
Uwe Bonnes dee82a0d4f Document changes between ST-Link V1 and V2 and implement needed changes 2013-02-15 17:39:27 +01:00
Uwe Bonnes f8ea954275 STLINK: Add pointer to Discoveryboard modification instructions 2013-02-11 19:36:22 +01:00
Uwe Bonnes 327ee49a67 usps_f407: add another platform 2013-02-03 14:22:14 +01:00
Uwe Bonnes 31f39339fd stm32/usbdfu.c: Rearrange code to clarify the tasks to be done 2013-02-03 14:14:48 +01:00
Allen Ibara 4d6ae0a1b2 Avoid double increment of dst in adiv5 write bytes function. 2013-01-31 13:39:41 -08:00
Uwe Bonnes b1a942aca3 STM32F0/3: Handle the option bytes 2013-01-30 17:16:44 +01:00
Piotr Esden-Tempski 9819f9d5b3 Corrected the led pin for F3 and F4 discovery boards. Needs proper fixing so that it works on all platforms in the future. 2013-01-28 12:15:50 -08:00
mirage b50b3ffa86 Error in calculating ending sector number. 2013-01-26 11:38:27 +08:00
Uwe Bonnes 96ae3886ff stm32:cdcacm/usbdfu: Print version and build information in the product string 2013-01-25 13:01:57 +01:00
Uwe Bonnes 8415fc829b stm32/cdcacm.c: remove unneeded includes 2013-01-23 17:28:34 +01:00
Uwe Bonnes 32b909067b STM32: Use hardware CRC unit 2013-01-23 16:11:17 +01:00
Uwe Bonnes d868088d78 STM32L1: Add to the list of known JTAG IDs 2013-01-23 00:16:01 +01:00
Uwe Bonnes 6157754201 libftdi: List some know cables and allow to specify cable and serial 2013-01-23 00:16:01 +01:00
Uwe Bonnes ce059cc8ed LIBFTDI: Propagate the command line arguments to platform_init 2013-01-23 00:15:47 +01:00
Uwe Bonnes 73d120577b usbdfu: Write protect the bootloader sector on F4 2013-01-22 19:04:51 +01:00
Uwe Bonnes 09e2d00b8e STM32F4: Add option byte handling 2013-01-22 18:49:11 +01:00
Piotr Esden-Tempski 0a91fc3b30 Updated stlink platform to the new locm3 usb api. 2013-01-21 13:43:37 -08:00
Uwe Bonnes 747cc58c2c STLINK: Unconditionally enable MCO from 8 MHz HSE to PA8 as on original firmware. F3 Discovery has has no quarz for the F3 and needs it. 2013-01-21 12:48:37 +01:00
Uwe Bonnes 8033fb2529 STLINK: Allow to force bootloader by starting with the RESET button pressed 2013-01-21 11:02:44 +01:00
Uwe Bonnes 749fb318e7 gdb_if: Use a doubled buffer scheme for reading data from USB
Needed, as the OTG driver erases the data read after eventually calling the callback
2013-01-21 11:02:44 +01:00
Uwe Bonnes 1fa961841d Product and DFU String now tell the hardware they run on 2013-01-21 11:02:44 +01:00
Uwe Bonnes 04624af4e5 f4discovery: Adapt from the "native" file and add or change code where needed
- stm32_mem.py has problems with erasing the big pages, but dfu-util works
- serial GDB remote server doesn't work. It neither works for the STM32F107,
  so maybe there is a problem with the usbd_f107_driver.
2013-01-21 11:02:44 +01:00
Uwe Bonnes e373619374 stlink: LED is connected to GPIO9. Before LED was associated with the MCO Output. 2013-01-21 11:02:44 +01:00
Uwe Bonnes 8b1ec3151f usbuart, jtagtap, swdptap: Factor out GPIO setup 2013-01-21 11:02:44 +01:00
Uwe Bonnes 7e91f68efa f4discovery: Create a platforms directory for the F4 on the F4 Discovery board 2013-01-21 11:02:44 +01:00
Uwe Bonnes 15d7077115 traceswo: Move (now-constant) traceswo.c to platforms/stm32 2013-01-21 11:02:44 +01:00
Uwe Bonnes 09715e1db8 traceswo: factor out platform dependant parts 2013-01-21 11:02:44 +01:00
Uwe Bonnes 72ca77af53 stm32_can: Changes to get blackmagic to work 2013-01-21 11:02:44 +01:00
Uwe Bonnes 313a24b316 usbdfu: Allow for different, but constant flash page sizes 2013-01-21 11:02:43 +01:00
Uwe Bonnes 1eb9bfc650 platforms/stm32: Move more platform dependencies to platform.h 2013-01-21 11:02:43 +01:00
Uwe Bonnes 30d8aa1eb7 Move (now-constant) cdcacm.c to platforms/stm32 2013-01-21 11:02:43 +01:00
Uwe Bonnes 04415582bd cdcacm: move non-constant parts to platform.[hc] 2013-01-21 11:02:43 +01:00
Uwe Bonnes 533608a2f4 Move usbuart to the stm32 directory 2013-01-21 11:02:43 +01:00
Uwe Bonnes 16ac8e0478 stlink: Add DFU capability 2013-01-21 11:02:43 +01:00
Uwe Bonnes 7188a4a8cb Move usbdfu to platforms/stm32 directory 2013-01-21 11:02:43 +01:00
Uwe Bonnes 67f8176c5b stlink: Add the UART 2013-01-21 11:02:43 +01:00
Uwe Bonnes 35d6adc236 native/usbuart: Move platform dependant parts to platform.h 2013-01-21 11:02:43 +01:00
Uwe Bonnes 16b9c1e83f stlink: Update to current libopencm3 usb api. 2013-01-21 11:02:43 +01:00
Uwe Bonnes ebb48245aa stlink: Use a seperate linker file as stlink has only 64 kByte 2013-01-21 11:02:43 +01:00
mirage 99a23a7e1a As per the lpc11xx manual the stack pointer should be set before IAP
calls are made.  

In lpc11xx_flash_prepare() and lpc11xx_flash_erase() bug in calculating
the ending sector number.
2013-01-13 09:50:23 +08:00
Gareth McMullin 2a46994b42 Fixed magic numbers for CSW access. 2013-01-11 10:02:34 -08:00
Gareth McMullin ad9c76e97f Update to current libopencm3 usb api. 2013-01-10 22:01:21 -08:00
Allen Ibara 83a06052f1 Don't increment src address twice in ap_mem_read_bytes function. Fixes corrupted thumb disassembly dumps in gdb. 2013-01-10 14:04:17 -08:00
Gareth McMullin 1d16d6c34c Check for 10-bit address over flow when auto-incrementing.
Clean up whitespace.
2012-11-21 09:50:50 +13:00
Vegard Storheil Eriksen 8f04241aa8 Added support for STM32F37x. 2012-11-15 18:36:32 +01:00
Gareth McMullin 2637f072a1 Probe function return bool, true if device identified.
Correctly identify LM3S3748.
2012-11-03 23:53:25 +13:00
Gareth McMullin e1c1162a1a Recognise LPC43xx dual core devices. 2012-11-03 21:33:28 +13:00
Gareth McMullin f526a82773 Move breakpoint packet handler out of main gdb loop.
Use gdb_putpacketz for constant strings.
2012-11-03 20:38:27 +13:00
Gareth McMullin 538f4d41b6 Clean up whitespace. 2012-11-03 19:59:01 +13:00
Gareth McMullin dac1f60dc2 Clean up ancient bad typing and malloc madness. 2012-11-03 19:52:09 +13:00
Gareth McMullin 50b6c623d6 Check for null pointer before decalaring register array. 2012-11-03 19:04:27 +13:00
Gareth McMullin 0990c2224c Allow target attachment to timeout and report failure.
This is needed for if the target device is held in reset.
2012-11-03 16:42:46 +13:00
Vegard Storheil Eriksen faa43fdc92 Added support for STM32L1. 2012-10-25 21:44:26 +02:00
Vegard Storheil Eriksen dddb51ca1c Added support for STM32F0. 2012-10-24 18:08:01 +02:00
Vegard Storheil Eriksen cb41855d91 Added support for STM32F3. 2012-10-23 19:40:23 +02:00
Gareth McMullin 09c0fb5773 Build with libopencm3 as a submodule.
Fix incompatibilities with latest libopencm3.
2012-10-22 18:45:42 +13:00
Gareth McMullin 206237e8dd Fix support for multiple devices on the same jtag chain.
Mask out architecture version in ADIv5 JTAG IDCODE.
2012-09-04 21:50:12 +12:00
Gareth McMullin 358ef32225 Whitespace fixes. 2012-09-04 21:48:49 +12:00
Gareth McMullin 9137c2d058 Add a copy of DEMCR to Cortex-M private data to preserve over 'run'. 2012-08-10 21:07:06 +12:00
Gareth McMullin 234d54c5a5 Correct stepping over programmed breakpoints.
Fixes issue #2.
2012-07-05 22:08:01 +12:00
Gareth McMullin 0433d3d12a cortexm: Moved all static data to the heap. 2012-07-05 21:26:26 +12:00
Gareth McMullin 0c379744e9 cortexm: Poll for S_RESET_ST in DHCSR to detect release from reset. 2012-07-05 20:12:18 +12:00
Gareth McMullin 00c4dbfb11 ADIv5 AP and DP are now allocated on the heap and reference counted.
They are unref'd and free'd automatically when the target list is
destroyed.
2012-07-05 19:23:28 +12:00
Gareth McMullin af1ef670ba libftdi: Fixed delay function. 2012-07-05 19:10:08 +12:00
Gareth McMullin 5dff263078 Add delay after reset request.
Hopefully this fixes problems observed with failing vFlashWrite.
2012-07-01 22:40:43 +12:00
Gareth McMullin d64cec686a Signal on halt is now returned by target_halt_wait().
Fault unwinding is now handled internally in target implementation.
GDB server doesn't need to know about it.
2012-06-30 20:29:08 +12:00
Gareth McMullin 53af978295 Allow user to specify JTAG IR lengths.
This allows the use of devices that shift out values other than 0x01
from IR.
2012-06-30 16:47:23 +12:00
Gareth McMullin 01d0390b54 Fixed build for stlink platform. 2012-06-28 20:49:32 +12:00
Gareth McMullin 22993fb5bd Clear target error on attaching.
Fixes possible lock-up on devices booting from blank flash.
2012-06-28 20:11:53 +12:00
Gareth McMullin 466bb66424 Made cur_target, last_target static in gdb_main.c.
Added target destroy notify mechanism.
2012-06-27 21:26:08 +12:00
Gareth McMullin 4581da2034 Added option byte programming commands for STM32F1. 2012-06-26 21:02:11 +12:00
Gareth McMullin 29b9e103fb Fixed crash on monitor commands with no attached target. 2012-06-26 19:48:50 +12:00
Gareth McMullin 94516329a0 Added 'erase_mass' command for STM32F1 and cleaned up some magic numbers. 2012-06-26 19:42:41 +12:00
Gareth McMullin 0e768664ac Added 'vector_catch' command to control trapped vectors on Cortex-M. 2012-06-25 21:19:09 +12:00
Gareth McMullin b0d41d155a Made SAM3X monitor commands static. 2012-06-25 21:16:20 +12:00
Gareth McMullin 8b7c6bbaba Added monitor commands to set GPNVM bits on SAM3X. 2012-06-24 21:55:22 +12:00
Gareth McMullin 03fdd23e9c Added mechanism for target driver to add new monitor commands. 2012-06-24 21:41:32 +12:00
Gareth McMullin a16123997b Added target.c for common target routines. 2012-06-24 19:08:49 +12:00
Gareth McMullin 8872315e82 Updated lmi, nxp and stm32f4 drivers to use adiv5_target_ap(). 2012-06-24 14:44:02 +12:00
Gareth McMullin cb19164f2f Added flash erase function for Atmel SAM3X. 2012-06-23 21:13:08 +12:00
Gareth McMullin c09cbe8719 First cut at an Atmel SAM3X driver. 2012-06-22 23:13:25 +12:00
Gareth McMullin 33905d7203 Check target error after target specific probes. 2012-06-21 20:54:56 +12:00
Gareth McMullin 6089a66dce Renamed target_flash_write_words to target_flash_write.
Buffer from GDB may not be aligned or integer number of words.
Corrected alignment in in STM32F1 driver.
2012-06-18 20:53:06 +12:00
Gareth McMullin bc7e7d2112 Removed target header files containing a single prototype.
Target probe prototypes are all in target.h now.
2012-06-18 20:27:06 +12:00
Gareth McMullin bc5a6f022b Renamed Cortex-M driver appropriately since it support M0, M3 and M4F. 2012-06-18 19:56:19 +12:00
Gareth McMullin 0599bdc5c4 Cleaned up STM32F1 driver and renamed appropriately. 2012-06-18 19:46:41 +12:00
Gareth McMullin 3a0cc44bbe Cleaned up access to ADIv5 AP in Cortex-M driver. 2012-06-18 19:28:06 +12:00
Gareth McMullin 8920864cb3 Cleaned up access to ADIv5 AP for target. 2012-06-18 19:19:13 +12:00
Gareth McMullin 54f4467c0f Added stlink platform for Discovery boards and ST's ST-Link hardware. 2012-06-10 19:06:37 +12:00
Gareth McMullin 89bcdcc60a Moved stm32 generic platform files out of native platform dir. 2012-06-10 17:34:26 +12:00
Gareth McMullin acff8d4497 Made jtagtap.c and swdptap.c STM32 generic. 2012-06-10 17:08:14 +12:00
Gareth McMullin 8d190cdbb9 Renamed platforms to 'native' and 'libftdi' and moved into 'platforms' dir. 2012-06-10 16:40:07 +12:00
Gareth McMullin c825270561 Indicate UART activity on yellow LED. 2012-06-10 15:45:38 +12:00
Gareth McMullin c1a34f3f59 Removed incorrect directory references in Makefile. 2012-06-10 15:45:38 +12:00
Gareth McMullin eabd4654f9 Use the same LED for run/idle. Reserve spare LED for UART.
Enable AFIO to fix EXTI for USB VBUS detect.
2012-06-10 15:45:38 +12:00
Gareth McMullin c35d0b29b3 Removed a stray printf. 2012-06-03 21:28:39 +12:00
Gareth McMullin bad49dbb90 Added missing stm32/usbuart.h. 2012-05-27 13:02:45 +12:00
Gareth McMullin 6030ff6f26 Separated USB UART interface into separate file. 2012-05-26 22:53:29 +12:00
Gareth McMullin 3dcdc5b26f Improve USB UART handling. Fix interrupt priorities. 2012-05-26 20:57:47 +12:00
Gareth McMullin e533812c32 Use our new USB VID/PID. Thanks OpenMoko, Inc.
DFU now uses the same short serial number as application.
2012-05-26 15:20:23 +12:00
Gareth McMullin 01bf5e6b44 Fixed and cleaned up build for libftdi platform. 2012-05-26 15:05:37 +12:00
Gareth McMullin 8d2c0ff9e5 Report target voltage on scan.
ADC is used on mini hardware, standard hardware reports ok/absent.
2012-05-23 21:44:39 +12:00
Gareth McMullin 40bb74cc81 Detect hardware version. Disable UART on mini h/w under debug. 2012-05-23 20:25:45 +12:00
Gareth McMullin 700f9e6ad1 DFU: Erase option bytes before writing. 2012-05-23 19:31:51 +12:00
Gareth McMullin 241bf765ec DFU: Protect bootloader sectors if needed.
Check address bounds on erase/set address.
2012-05-22 21:47:18 +12:00
Gareth McMullin de49a9a21f Remove dependencies on make clean. 2012-05-19 11:54:22 +12:00
Gareth McMullin 32c1af05de Don't clobber watchpoints used for trace. 2012-05-19 11:53:41 +12:00
Gareth McMullin 38bea69f8a Fixed some issues with trace port capture.
Process last capture even on timeout.  Prevents last bit getting lost.
On timeout, don't allow next edge to resync decoder.
Timeout on 6 bit periods instead of 5.
Set systick interrupt to low priority.
2012-04-29 20:35:19 +12:00
Gareth McMullin 86626085d8 Fixed TRACESWO capture.
'mon traceswo' reports serial number and interface/endpoint no for libusb.
Interrupt priorities set so TIM3 for trace is highest priority.
Increased trace endpoint packet size to 64.
Buffer many trace packets into a single usb packet.  Stall on overflow.
Fixed stop bit detection in TIM3 interrupt handler.
2012-04-22 12:27:18 +12:00
Gareth McMullin b39572e17c Correct jtag port init to not interfere with usb vbus detect. 2012-04-22 12:21:24 +12:00
Gareth McMullin c1e9425725 Cleaned up traceswo capture routine. 2012-04-20 17:56:41 +12:00
Gareth McMullin 21ecbd23ea Added capture of SWO, passed to host over a vendor specific USB interface. 2012-04-18 19:15:44 +12:00
Gareth McMullin c0493ee0e8 Monitor USB VBUS to control D+ pull-up resistor. 2012-03-24 19:25:16 +13:00
Gareth McMullin a43cbf65c9 Report FP registers as feature "org.gnu.gdb.arm.vfp".
This allows GDB to synthesise single precision registers S0-S32.
2012-02-12 14:59:42 +13:00
Gareth McMullin 38d8147774 Added FP register support. 2012-02-12 14:24:54 +13:00
Gareth McMullin a08e0bdd9c Made command handlers static. 2012-02-12 14:24:18 +13:00
Gareth McMullin 35a9e10f49 Accept partial match of monitor commands. 2012-02-12 12:02:50 +13:00
Gareth McMullin 4282244fb4 stm32f4: Fixed chunk padding for flash programming. 2012-02-08 20:43:12 +13:00
Gareth McMullin f5d8bda6e6 Support DFU GET_STATUS request when in application mode. 2012-01-19 21:51:42 +13:00
Piotr Esden-Tempski a7f14e3cc0 Changed the unique id generation to be 8 characters long. This is so Mac OS X uses the the unique id for naming the device file instead of the location. 2012-01-16 22:54:37 -08:00
Gareth McMullin 53ebc6770e Configure CDC ACM packet size in a #define for easy access.
This doesn't work for >64 bytes.  Suspect bug in libopencm3.
2012-01-09 23:15:10 +13:00
Gareth McMullin 7e0de5b86b Inline GPIO functions and optimise for speed.
This gives a modest but measurable performance improvement.
2012-01-08 18:49:58 +13:00
Gareth McMullin 9663274572 Advertise that we accept SET_LINE_CODING and ignore it on GDB interface.
This fixes SetCommState failure on Windows.
2012-01-07 18:46:17 +13:00
Gareth McMullin edaae3957a Use USB Interface Association Descriptors.
This allows windows to see it as a composite device and load different
driver for each interface.
2011-12-29 12:49:47 +13:00
Mike Smith af45139767 Use a single static program buffer rather than allocating several on the stack. 2011-12-26 02:54:44 -08:00
Mike Smith 00651032ad Merge commit '4e0cd081b09d9bd3d444062ca1081fa59c31fc0b'
* commit '4e0cd081b09d9bd3d444062ca1081fa59c31fc0b':
  Improved magic number garbage in cortexm3.c
  Cleaned up debug output on linux build.
  Removed #if LIGHT for unfinished hardware.
  Implement gdb 'qCRC' packet to support 'compare-sections' command.
2011-12-26 02:47:38 -08:00
Mike Smith bc4c87e45b Add support for Cortex-M0, and specifically for the NXP LPC11xx devices. 2011-12-26 02:34:45 -08:00
Gareth McMullin 4e0cd081b0 Improved magic number garbage in cortexm3.c 2011-12-18 17:46:36 +13:00
Gareth McMullin a73f06c147 Cleaned up debug output on linux build. 2011-12-18 17:01:10 +13:00
Gareth McMullin 8061205260 Removed #if LIGHT for unfinished hardware. 2011-12-18 16:43:02 +13:00
Gareth McMullin c7c31d2502 Implement gdb 'qCRC' packet to support 'compare-sections' command. 2011-12-17 21:46:22 +13:00
Mike Smith 2653222d08 Tweak the flash uploader to handle unaligned start and end pointers,
padding with all-1s so that overlapping data is preserved.
2011-12-14 23:41:40 -08:00
Mike Smith bba42ff6c9 Merge branch 'master' of git://github.com/gsmcmullin/blackmagic 2011-12-14 23:10:53 -08:00
Gareth McMullin 45eee497d0 stm32f4: Improve behaviour when a section doesn't end on a word boundary.
This may not be an acceptable fix.  It may be possible for the linker
to place another section on the remainder of the offending work.
2011-12-14 22:59:42 +13:00
Gareth McMullin c5b4022ed8 Default to DTR=1 if no request received.
This is needed on Mac where opening the port doesn't assert DTR.
Thanks to Mike Smith.
2011-12-07 20:57:10 +13:00
Mike Smith c9860e7716 Make it possible to build with libopencm3 installed in a nonstandard location 2011-12-05 23:01:24 -08:00
Gareth McMullin 61cfbf16c6 Fixed flash stub for STM32F2 and STM32F4.
Added JTAG idcodes for these devices.
2011-12-02 21:55:14 +13:00
Gareth McMullin 540573bc18 Fixed qSupported resonse. 2011-11-26 17:04:48 +13:00
Mike Smith ffda30f393 Add support for a more comprehensive target description, including the additional v7m registers.
This doesn't work with vanilla gdb, as for reasons unknown said vanilla gdb doesn't support XML target descriptions queried from the remote.

Add code to the fault unwinder to deal with the stack alignment fixup and FP registers.  Avoid saving/restoring registers that don't get trashed.
2011-11-25 17:07:46 -08:00
Mike Smith 8babb37472 Add a prototype for the F4 probe routine to silence a warning 2011-11-25 17:04:47 -08:00
Mike Smith fa7ae87e25 Mention the CCM (CPU-only RAM) in the F4. 2011-11-25 17:04:23 -08:00
Gareth McMullin f06bded8dd linux: Set SO_REUSEADDR on gdb server socket.
Renamed HOST environment variable to PROBE_HOST.

Thanks to Michael Smith for the patch.
2011-11-25 22:55:07 +13:00
Gareth McMullin d73ac40ef1 Added preliminary support for the STM32F4. 2011-11-12 19:15:52 +13:00
Gareth McMullin 7b13bae8dc Don't send anything on USB if not configured or DTR is released. 2011-11-12 13:46:16 +13:00
Gareth McMullin 33e1352c34 Merge branch 'master' of github.com:gsmcmullin/blackmagic 2011-10-30 13:43:33 +13:00
Gareth McMullin d85a399559 Updated to build with new libopenstm32 with f1/f2 split. 2011-10-30 13:42:27 +13:00
Gareth McMullin adabaa7592 Halt and detach target if host releases DTR.
Port reads 0x04 (EOF) when DTR is released.  GDB loop detaches from
target if EOF is read.
Fixes bug 3307433.
2011-07-02 20:47:39 +12:00
Gareth McMullin bd779aa618 Defined and used register definitions for DWT. 2011-04-27 21:57:35 +12:00
Gareth McMullin 40eeb1788b Defined and used register names for flash beakpoints. 2011-04-27 21:57:35 +12:00
Gareth McMullin be91386c0a Minor changes to allow a build for Windows hosts with libftdi. 2011-03-29 20:01:15 +13:00
Gareth McMullin c9ea16312b Added more ARM7TDMI functions. Still not usable. 2011-03-12 21:03:42 +13:00
Gareth McMullin c062e60059 cm3_reset polls for reset to complete. cm3_fault_unwind checks FORCED in HFSR. 2011-03-12 13:57:32 +13:00
Gareth McMullin 4c75ac524b Started halt/resume for ARM7TDMI. 2011-03-11 00:02:08 +13:00
Gareth McMullin fcdbf8efc8 Added a skeleton of an ARM7TDMI driver. No support yet. 2011-03-09 19:03:41 +13:00
Gareth McMullin a6f2117d1d Further cleanup of adiv5* 2011-03-08 22:15:35 +13:00
Gareth McMullin b8462dd1f2 Removed useless abstraction of low-level AP access functions. 2011-03-07 07:12:14 +13:00
Gareth McMullin 91815f2d23 Cleaned up some magic numbers in adiv5* 2011-03-05 23:43:03 +13:00
Gareth McMullin a139aae479 Cleaned up more magic numbers in cortexm3.c 2011-03-02 21:34:36 +13:00
Gareth McMullin c648d7c9e2 Cleaned out some magic numbers in cortexm3.c 2011-03-02 19:28:47 +13:00
Gareth McMullin c43e392f8c cm3_fault_unwind: Adjust stack pointer after reading registers. 2011-02-23 18:14:44 +13:00
Gareth McMullin c9774944de Removed debugging output in cm3_fault_unwind(). 2011-02-21 21:04:57 +13:00
Gareth McMullin 32cabac0f3 Stack is now unwound on hardfault. 2011-02-21 20:57:56 +13:00
Gareth McMullin 0dfdc25bb2 Added git info to version output.
Fixed memory leak in SWD mode.
2011-02-18 13:50:21 +13:00
Gareth McMullin 660e861725 Force SRST high. Hopefully fixes target getting stuck in reset. 2011-02-17 18:00:03 +13:00
Piotr Esden-Tempski e28edc0899 Removed redundant linker parameters. 2011-02-16 20:47:56 -08:00
Piotr Esden-Tempski c8d1b8d0cc Cleaned up CFLAGS and LDFLAGS as well as targets to use the correct flags. Now blackmagic will compile also on a multilib compiler. 2011-02-16 20:24:26 -08:00
Gareth McMullin b36242d021 CDC-ACM now asserts DCD to allow opening tty devs in BSD/MacOS.
Cleaned up compiler warnings.
2011-02-17 15:06:27 +13:00
Gareth McMullin f08914ec1f Fixed DFU_DETACH request handling when usb-uart is excluded. 2011-02-16 09:04:06 +13:00
Gareth McMullin f9a7cd9c6e Fixed interface number of DFU when UART isn't included. 2011-02-12 22:24:37 +13:00
Gareth McMullin df5c3d06d5 Added extra ACM interface for serial emulation using USART1. 2011-02-12 22:06:53 +13:00
Gareth McMullin f293cc4bc1 Improved Linux/libftdi platform support.
Tested with Floss-JTAG.  SWD working.
2011-02-10 15:24:54 +13:00
Gareth McMullin d1cf80db33 Updated README, added HACKING. 2011-02-09 16:56:42 +13:00
Gareth McMullin 8628babbb0 Linux jtagtap and swdptap now clean up before re-initialising. 2011-02-07 13:38:13 +13:00
Gareth McMullin 5cc8ff5404 Made Linux jtagtap_init() more verbose on errors. 2011-02-07 13:08:45 +13:00
Piotr Esden-Tempski bb0981b22f Changed CFLAGS and LDFLAGS setting to allow exporting of additional parameters in the calling shell. 2011-02-06 15:09:07 -08:00
Gareth McMullin 79182edc44 Replaced some binary constants with hex. 2011-02-07 12:01:29 +13:00
Gareth McMullin a6f84018f6 Fixed debug output of Linux swdptap_bit_in() 2011-02-07 11:32:30 +13:00
Gareth McMullin 5d747a52ce Restored old Linux platform and added untested SWDP support. 2011-02-07 11:00:10 +13:00
Gareth McMullin c8ef57a7b5 Removed rotten and broken LMI flash algorithm. 2011-02-07 08:45:52 +13:00
Gareth McMullin 981a906898 Changed some uint32_t to unsigned long to remove warnings. 2011-02-07 08:32:33 +13:00
Gareth McMullin 5788445ab2 Changed to use sprintf/sscanf by default.
Overridden by STM32 platform.h to use newling siprintf/siscanf.
2011-02-06 19:36:01 +13:00
Gareth McMullin 202de4f703 Fixed 'mon version' to show license as GPLv3+. 2011-02-05 15:12:24 +13:00
Gareth McMullin d0a1c7f4df Fixed configuration of JTAG signals. 2011-02-05 12:24:13 +13:00
Gareth McMullin 406617a2a4 Import of working source tree. 2011-02-04 20:23:52 +13:00