139 Commits

Author SHA1 Message Date
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
Uwe Bonnes
ce059cc8ed LIBFTDI: Propagate the command line arguments to platform_init 2013-01-23 00:15:47 +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
15d7077115 traceswo: Move (now-constant) traceswo.c to platforms/stm32 2013-01-21 11:02:44 +01:00
Uwe Bonnes
533608a2f4 Move usbuart to the stm32 directory 2013-01-21 11:02:43 +01:00
Gareth McMullin
2a46994b42 Fixed magic numbers for CSW access. 2013-01-11 10:02:34 -08: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
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
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
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
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
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
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
c09cbe8719 First cut at an Atmel SAM3X driver. 2012-06-22 23:13:25 +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
8920864cb3 Cleaned up access to ADIv5 AP for target. 2012-06-18 19:19:13 +12:00
Gareth McMullin
38d8147774 Added FP register support. 2012-02-12 14:24:54 +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
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
c7c31d2502 Implement gdb 'qCRC' packet to support 'compare-sections' command. 2011-12-17 21:46:22 +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
Gareth McMullin
c9ea16312b Added more ARM7TDMI functions. Still not usable. 2011-03-12 21:03:42 +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
32cabac0f3 Stack is now unwound on hardfault. 2011-02-21 20:57:56 +13:00
Gareth McMullin
406617a2a4 Import of working source tree. 2011-02-04 20:23:52 +13:00