131 Commits

Author SHA1 Message Date
Jonathan Bell
c0ff91421a Debugprobe release 2.0 debugprobe-v2.0 2024-03-18 16:37:56 +00:00
Jonathan Bell
b5962e0818 Fix builds for which UART_TX_LED aren't defined 2024-03-18 16:37:56 +00:00
Jonathan Bell
ddc028fe18 cdc_acm: turn on UART_TX LED when sending break signals
Software typically asserts line break for an extended period
(e.g. PuTTY will assert continuously until the next keypress), so
provide feedback via the LED.

Also declare variables used in both tinyusb callback and uart_thread context
as volatile.
2024-03-18 16:01:35 +00:00
Jonathan Bell
af2540b045 cdc_uart: add CTS/RTS configuration options to board_example_config
For high data rate applications it's desirable to use hardware flow control
to prevent characters getting dropped when faced with the vagaries of RTOS
and kernel latencies. Adding PROBE_UART_HWFC enables the UART's CTS/RTS pins,
and SET_LINE_STATE messages no longer affect the RTS pin.
2024-03-18 16:01:35 +00:00
Jonathan Bell
d5047e7ef8 cdc_uart: add break handling
Implement break set/unset and declare the interface as capable of sending
line breaks.
2024-03-18 16:01:35 +00:00
geekman
a7aa0766f0 Make target reset functionality work out-of-the-box (#123)
* Fix up target reset functionality.

- Correct GPIO direction logic error in `probe_assert_reset`
- Remember to de-assert nRESET on deinit

* board_pico_config: use pin 1 for reset

This pin is normally used for UART debug output, but that is
undocumented. Repurpose it as reset output.

Signed-off-by: Sean Cross <sean@xobs.io>

* main: move stdio_uart_init() before DAP_Setup()

When using GP1 as a reset line, this is necessary to overwrite the
stdio function call from reusing the pin as a debug output.

Signed-off-by: Sean Cross <sean@xobs.io>

---------

Signed-off-by: Sean Cross <sean@xobs.io>
Co-authored-by: Sean Cross <sean@xobs.io>
2024-03-18 15:12:46 +00:00
David Lynch
b09854c639 fix: Corrected typo in preprocessor ifdef
* Changed PROBE_UART_RX_LED to PROBE_UART_TX_LED in ifdef to control TX LED
2024-03-18 09:33:57 +00:00
Jonathan Bell
327e15f176 board_debug_probe_config.h - nit 2024-02-05 16:17:46 +00:00
Jonathan Bell
62f4a31335 Update README.md 2024-02-05 16:17:46 +00:00
Jonathan Bell
abf675ca8c More renaming
- Prefix DAP-specific defines with DAP_
- PROBE_ defines refer to config options selected by a board type
2024-02-05 16:17:46 +00:00
Jonathan Bell
d0c03d2564 Rename picoprobe to debugprobe
Picoprobe is a registered trademark. Rename to debugprobe, and make it clear
that the code in this repository is firmware for the Debug Probe.
2024-02-05 16:17:46 +00:00
Jonathan Bell
1267a8c367 DAP: fix atomic command support
Two bugs - ignoring DAP_QueueCommand, and calling DAP_ProcessCommand
instead of DAP_Executecommand
picoprobe-cmsis-v1.1
2024-01-29 10:09:55 +00:00
Jonathan Bell
bdb1bf287d tusb_edpt_handler: macroify 2024-01-25 16:48:07 +00:00
Jonathan Bell
d9a975b24e tusb_edpt_handler - whitespace/indentation 2024-01-25 15:00:31 +00:00
marble
721b69cf5c cdc_uart: add RTS and DTR pins 2023-09-21 10:57:18 +01:00
Jonathan Bell
2658c2c997 cdc_uart: support databits, stopbits and parity setup 2023-09-18 18:45:44 +01:00
Jonathan Bell
e51647492e cdc_uart: cater for Windows driver deficiencies
It's possible for the Windows CDC-ACM driver to ignore the IN endpoint
for long periods of time - multiple frames - if the host application
doesn't consume uart RX data. Boost buffer sizes to compensate.

Also prevent usb_thread from potentially being idle for a tick when
there's work to do.
2023-09-05 10:59:50 +01:00
Jonathan Bell
d13775ee72 Merge branch 'fix_debug' into 'master'
Fix ARM CMSIS-DAP issues

See merge request projectmu/picoprobe!1
2023-08-25 10:13:04 +01:00
Sunaabh Trivedi
58fa7a14cd Added a custom USB endpoint handler to process commands on a packet basis, as opposed to the byte FIFO employed previously. This allows multiple commmands to be framed correctly, so they can be processed sequentially without losing packets.
Suspend DAP thread until the end of the USB callback. This prevents the need for continous polling by DAP thread.
2023-08-24 17:15:47 +01:00
Jonathan Bell
1586ef0caa picoprobe version 1.0.3 picoprobe-cmsis-v1.0.3 2023-08-15 11:48:50 +01:00
Jonathan Bell
0761424821 probe: hook up reset functionality to DAP commands 2023-08-15 11:48:50 +01:00
Jonathan Bell
d47b3082f8 Fix debug prints
- The reset pin must move otherwise uart0 tx is squashed
- Don't preempt printf, it doesn't like it
- Set up the UART by default
2023-08-15 11:48:50 +01:00
P33M
6473166494 usb_descriptors: disable remote wake (#91)
see https://github.com/raspberrypi/picoprobe/issues/71
2023-08-09 13:13:36 +01:00
Luke Wren
3a1887ff06 Merge pull request #90 from raspberrypi/lurch-patch-1
Small README tweaks
2023-06-22 16:17:39 +01:00
Andrew Scheller
13b420d34c Small README tweaks 2023-06-22 15:56:45 +01:00
Roger Wolff
eb494103d4 buildsystem improvements to make it easier to build for debugprobe. (#87)
Merge documentation pull request from @rewolff
2023-06-22 13:50:25 +01:00
P33M
7de418cce3 Merge pull request #89 from raspberrypi/fix-deinit-without-init
Don't call probe_read_mode() in deinit() without matching prior init(), fixes #88
2023-06-18 11:00:24 +01:00
Luke Wren
0746b5a844 Don't call probe_read_mode() in deinit() without matching prior init(), fixes #88 2023-06-17 19:59:52 +01:00
P33M
d04ff3b472 Merge pull request #83 from raspberrypi/pio-program-improvements
PIO program improvements
2023-05-30 10:22:02 +01:00
Luke Wren
57f5569894 Update probe_oen.pio to use the same logic as the new probe.pio.
Fix a couple of compilation issues in the helpers for probe_oen.pio.
2023-05-09 13:36:10 +01:00
Luke Wren
ae5bdb082d Reduce SWCLK frequency from SM/2 to SM/4, to reduce dead cycles.
Also fix divider becoming 0 when extremely high SWCLK frequencies
are requested (this would have been safe but you would get an
extremely slow SWCLK).
2023-05-09 11:29:53 +01:00
Luke Wren
491b96c1d4 Update PIO program to pass read/write commands through FIFO
alongside bit counts. Also, don't return RX data on write commands.
These two changes allow the probe code to return early after
pushing write commands into the FIFO, which improves throughput.
2023-05-09 11:15:12 +01:00
Jonathan Bell
46eb924601 board configs: differentiate the USB product strings 2023-05-02 10:09:01 +01:00
Jonathan Bell
cdc33333c9 picoprobe_config: default should be the Pico, not Debug Probe 2023-05-02 10:00:44 +01:00
Jonathan Bell
c8eb077c6c cdc_uart: avoid compilation warning if UART LEDs not used 2023-02-27 15:07:10 +00:00
Jonathan Bell
fbc4116141 probe: split pioasm and setup code into variant files, and add OEN variant 2023-02-27 15:07:10 +00:00
Jonathan Bell
364adfe1f1 picoprobe_config: split board-related pin setup into separate header files 2023-02-27 15:07:10 +00:00
Jonathan Bell
08ed872793 probe: drop support for PROTO_OPENOCD_CUSTOM
CMSIS-DAP is a complete superset of the Picoprobe protocol, so
now we default to DAPv2 there's no need to keep the downstream
code.

Also make setting up the reset pin conditional and in the correct place.
2023-02-27 15:07:10 +00:00
Jonathan Bell
5a9c6940c4 probe: use a more generic method for direction changes 2023-02-27 15:07:10 +00:00
Jonathan Bell
bb1c547b07 picoprobe: rename to Debug Adapter 2023-02-27 15:07:10 +00:00
Jonathan Bell
724e5de6c8 probe: if we have a separate SWDIO input, use it
For boards with a level-shifter on SWDIO for compatibility with 1.8V VDDIO.

Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
2023-02-27 15:07:10 +00:00
Jonathan Bell
1ca6aa36dd picoprobe: add a USB Connected LED and signal it appropriately
Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
2023-02-27 15:07:10 +00:00
Jonathan Bell
db24224846 picoprobe: use GPIO definitions for the new debug adapter, PCB R2
Limitations:
- Power LED doesn't yet do anything sensible
- The level-shifted SWDIO input isn't utilised by the PIO SM, so only 3.3v I/O

Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
2023-02-27 15:07:10 +00:00
Jonathan Bell
e187e5754b RTOS: reduce DAP polling delay - improves throughput.
Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
2023-02-27 15:07:10 +00:00
Jonathan Bell
a2890561c0 Add DAP and UART LED options. Use a debounce for UART LEDs.
Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
2023-02-27 15:07:10 +00:00
Jonathan Bell
156a33fa01 freeRTOS: shrink heap by half
A 128K reservation on a device with 256K of RAM is a bit demanding.
Shrink to fix a link error in a DebugRel build.
picoprobe-cmsis-v1.02
2023-02-27 14:06:22 +00:00
P33M
3bd58697e6 Merge pull request #69 from raspberrypi/enable_e15_fix
Default TUD_OPT_RP2040_USB_DEVICE_UFRAME_FIX=1
2023-02-22 15:52:36 +00:00
graham sanderson
599ee88582 Default TUD_OPT_RP2040_USB_DEVICE_UFRAME_FIX=1 2023-02-21 16:44:15 -06:00
Jonathan Bell
42d1ff28c8 Fix vendor interface semantics for tinyUSB >= 0.13
Explicit flushing of writes is now required.
2023-01-06 11:48:55 +00:00
P33M
fd445fd8c1 Merge pull request #13 from lurch/patch-1
Use latest upstream version of pico_sdk_import.cmake
2022-11-24 13:34:13 +00:00