Commit Graph

317 Commits

Author SHA1 Message Date
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