Commit Graph

45 Commits

Author SHA1 Message Date
Uwe Bonnes 59e03dea27 Keep TMS floating until scanning.
NRF5x shares nRST with SWDIO and otherwise does not run until scan is done.
2018-06-26 19:50:14 +02:00
Gareth McMullin 0ed66547d5 Fix libopencm3 breakage 2017-09-25 11:17:03 +13:00
Uwe Bonnes ce1ef6e41b stm32: Move rdi handling to common stm32 code. 2017-09-23 16:39:35 +02:00
Gareth McMullin 2eb2f8edd7 Use vector_table symbol for assignment of SCB_VTOR. 2017-06-09 13:07:06 +12:00
Gareth McMullin 633662dbb3 Hold TMS high during reset.
This is a questionable fix for the Kinetis K22F that samples
this pin on release from reset to enable its EzPort which
makes the flash unusable and disables the rest of the micro.
2017-04-21 11:05:07 +12:00
Piotr Esden-Tempski 606b73601c Added TMS/SWDIO direction pin & adjusted SRST sense.
1) This version uses a direction control level shifters. We need to control
the direction of the TMS/SWDIO pin.
2.1) Because we want to support a large voltage range for SRST we use an
external dual MOSFET for asserting and sensing the SRST line. We have
added the hardware version 3 to be handled the same way as version 0.
Meaning using separate pins for assertion and sensing of the SRST line.
2.2) The new SRST sense circuit is inverting, thus we have dedicated
code for hardware version 3 that inverts the SRST status pin on read.
2017-01-06 18:31:55 -08:00
Gareth McMullin 7730d3b198 Don't enable usb uart on v2 when debugging 2016-11-22 12:45:59 +13:00
Gareth McMullin 966f360515 debug: Use semihosting if available or output via usbuart. 2016-09-29 21:31:13 -07:00
Piotr Esden-Tempski 9be5cdb702 BMPM V2 target power control GPIO needs to be an open drain drive.
BMPM V2 uses a biasing resistor for the true switch mosfet circuit.
Because of that the weak pull-up/down of the stm32 is not asserting the
correct gate voltage for the mosfets to fully switch through. Because of
that we need to use open drain configulation of the GPIO instead.
2016-06-06 15:01:37 -07:00
Gareth McMullin cd1d72257f Cleanup of SRST handling.
- Remove connect_assert_srst global.
- Attach functions always release reset.
- Platforms provide a method to poll the reset pin.
- Reset on scan is all internal to command.c
- Reset is released on a failed scan.  Fixes #111
2016-04-19 13:12:16 -07:00
Piotr Esden-Tempski f2650df731 Fixed a hardware version detection glitch.
If you try to read out the GPIO immediately after setting the weak pull
on the pin it is possible that you will not read the correct value on a
floating pin. We need to use a busy wait loop instead of the
platform_delay because the platform timing is not initialized yet. We
also can not initialize the platform_delay code yet because it requires
LED gpio to be configured. A busy wait seems to do the job and is easier
than refactoring the codebase to use the platform_delay function.
2016-04-06 19:20:43 -07:00
Piotr Esden-Tempski b7e5005679 [native] Check for hardware version by pull-up and -down. Print HW Version in mon command.
Until now the native hardware was pulling PB5-7 down and checking if
they were asserted high. BMPMV2b is pulling the pins down instead of
high. The hardware version routine now determines the hardware version
based on the fact if a pin is asserted at all. This means that if a pin
is left floating, the version number bit will be 0, and if the pin is
asserted either high or low the bit will be set to 1. While we were
already at it the "monitor version" command in GDB will now also print
the hardware version number.
2016-02-14 22:49:29 -08:00
Gareth McMullin 68f54a3545 Remove old platform specific error handling macros. 2015-03-22 14:06:56 -07:00
Gareth McMullin 3e466f2d23 Factor out timing routines common to all STM32 targets. 2015-03-02 21:59:04 -08:00
Gareth McMullin b07ffffcee Factor out common cdcacm.c from stm32 and tm4c.
Cleaned up interface to enter bootloader and read serial number.
2015-03-02 10:16:33 -08:00
Gareth McMullin 4d4813de87 Clean up includes everywhere.
All source files include general.h first and before anything else.
This inlcludes platform.h and platform_support.h
No header file needs to include to include any of these, but should include
any others needed for it's own declarations.
2015-03-01 22:16:04 -08:00
Gareth McMullin 476f83b69a Move common USB stuff out of platform header files. 2015-02-28 22:48:26 -08:00
Gareth McMullin 75001a4421 Factor Morse code functions out of platform code. 2015-02-28 22:05:10 -08:00
Gareth McMullin 5d136398e1 Use sensible return convention for platform_target_get_power() 2015-02-28 21:23:24 -08:00
Gareth McMullin a5549d630c Whitespace cleanup. 2014-10-16 13:50:56 -07:00
Gareth McMullin bfe5d1168b Merge pull request #47 from richardeoin/target-power
Added monitor option to toggle target power
2014-07-30 14:19:46 +12:00
Richard Eoin Meadows 42e41edfa1 Target power option is only for versions > 0 2014-05-28 12:33:43 +01:00
Richard Eoin Meadows c9089f5851 Added monitor option to toggle target power 2014-05-28 12:25:48 +01:00
Richard Eoin Meadows 63bce97cbd PLATFORM_FATAL_ERRORs are now caught even when they happen in the
initial JTAG scan that occours during platform_init.

Previously any fatal errors that occoured during this scan caused a
hardfault.
2014-05-28 12:10:26 +01:00
Gareth McMullin 72ae78a185 Updated libopencm3. Fixes broken bootloader, issue #43. 2014-05-08 11:02:35 -07:00
Frantisek Burian 12aeaad441 [locm3] Use the new clock-enabling mechanisms in locm3. 2014-02-13 18:21:16 +01:00
Frantisek Burian 8014d434de Update to the newest libopencm3 2014-01-04 17:29:54 +01:00
Gareth McMullin 8835df1822 Merge remote-tracking branch 'origin/usbuart_highrate' 2013-12-04 16:16:08 +13:00
Michael Tharp c395c6f73a Configure SRST output as open-drain for BMP Mini hardware 2013-10-05 13:14:03 +08:00
Marc Singer 40820a2354 Added internal pull-up to PWR_BR.
o Prevent probe from inadvertently powering target.  If PWR_BR is
  allowed to float, the gate on Q1 (blackmagic_mini) will tend to be
  close enough to zero to turn the transistor on.  We activate the
  internal pull-up on this IO pin to force the transistor off.
2013-10-05 13:14:03 +08:00
BuFran c28350f242 FIX: u{8,16,32} -> uint{8,16,32}_t to be compatible with new library
The use of u8, u16, u32 has been deprecated in libopencm3.
Update it with standard uint8_t, uint16_t, uint32_t types
2013-10-05 12:23:23 +08:00
Gareth McMullin 27a86e244f native: Enable hard SRST signal. 2013-06-19 19:21:49 +12:00
Gareth McMullin 8c877d6dfa Fix trailing whitespace everywhere. 2013-06-17 15:53:32 +12: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
Gareth McMullin 45e02360b7 native: Fix up deprecated warnings. 2013-04-16 12:47:29 -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
Uwe Bonnes 04415582bd cdcacm: move non-constant parts to platform.[hc] 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
Gareth McMullin ad9c76e97f Update to current libopencm3 usb api. 2013-01-10 22:01:21 -08: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 5dff263078 Add delay after reset request.
Hopefully this fixes problems observed with failing vFlashWrite.
2012-07-01 22:40:43 +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 54f4467c0f Added stlink platform for Discovery boards and ST's ST-Link hardware. 2012-06-10 19:06:37 +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
Renamed from src/stm32/platform.c (Browse further)