Commit Graph

77 Commits

Author SHA1 Message Date
Nav
020d174a2d Automatic switching form PIC mode to EDBG (AVR) mode, for MPLAB Snap and PICkit 4 tools. 2024-12-30 15:41:52 +00:00
Nav
ab49d10bef Tidying 2024-12-29 04:03:07 +00:00
Nav
cbfbd9f4b8 Applied debug-interface-specific access restrictions for memory and registers 2024-12-07 16:43:16 +00:00
Nav
33ed399337 WCH RISC-V software breakpoints, and a few other bits of refactoring/tidying 2024-12-05 23:09:01 +00:00
Nav
9c1b194af1 Changed all bloom.yaml config keys/values to use snake_casing 2024-11-28 21:44:04 +00:00
Nav
a3ed513b84 Fixed bug in EDBG driver that was resulting in program memory corruption when flashing the target with software breakpoints installed 2024-11-17 18:18:44 +00:00
Nav
5908b74cc1 Ignore duplicate hardware breakpoint insertions 2024-11-17 18:17:27 +00:00
Nav
4147af618b Move away from using const references of std::vector<unsigned char> for target memory buffers. Replaced with std::span<const unsigned char> (via TargetMemoryBufferSpan alias) 2024-11-16 21:49:49 +00:00
Nav
a7ee6cbae2 Refactored page alignment code in EDBG and RISC-V debug translator driver 2024-11-16 19:55:34 +00:00
Nav
7662dec100 Tidying 2024-11-06 20:05:59 +00:00
Nav
285fc41c23 Corrected bug in EDBG driver memory access routines. It was incorrectly using the FUSES memory type when in debug mode (that memory type isn't available in debug mode, only program mode. Was causing a target reset). 2024-11-06 19:46:27 +00:00
Nav
623743995b Made the EDBG CMSIS-DAP command delay optional for all debug tools, and disabled it by default.
The command delay was really choking Bloom's EDBG driver, causing a very noticeable drag on Bloom's performance. It's much faster with the command delay disabled.
There was a good reason for why I introduced this some time ago. Without it, some EDBG debug tools were misbehaving - I remember that for certain. But now, I cannot seem to reproduce these issues. Very odd.
If the issues do reappear, I may have to enable the command delay by default, again, for some debug tools.
For now, if any users experience issues, I'll just suggest they manually enable the command delay via their project config.
Also, I'm not going to document this new config option, as I would prefer the user to approach me if they experience issues as a result of this, so that I'll know if it needs revisiting.
2024-10-27 00:26:06 +01:00
Nav
4160d4259a Corrected bug in EDBG driver, where we weren't waiting for a stopped event when we should have been 2024-10-27 00:02:00 +01:00
Nav
9c1385a048 Deleted TDF documentation (don't have the capacity to maintain it ATM) 2024-10-18 00:01:21 +01:00
Nav
914153077e Corrected memory address/size alignment in EDBG and RISC-V drivers 2024-08-30 19:59:59 +01:00
Nav
2f6238e360 Tidying 2024-08-17 12:44:01 +01:00
Nav
8f7c3bc1be Added postInit() function to debug tool interface, for outputting any debug-tool-specific info after initialisation.
Removed `getFirmwareVersionString()` function
2024-07-23 21:44:15 +01:00
Nav
6cdbfbe950 Massive refactor to accommodate RISC-V targets
- Refactored entire codebase (excluding the Insight component) to accommodate multiple target architectures (no longer specific to AVR)
- Deleted 'generate SVD' GDB monitor command - I will eventually move this functionality to the Bloom website
- Added unit size property to address spaces
- Many other changes which I couldn't be bothered to describe here
2024-07-23 21:14:22 +01:00
Nav
4e837218e5 Corrected use of destroyed objects in EDBG param constructors 2024-06-02 21:33:54 +01:00
Nav
ee20507c2e Corrected debugWire and JTAG HIGH byte parameter values
Additional checks in TDF validation to ensure that the IO memory segment offset has been applied to the relevant registers
2024-06-02 21:29:57 +01:00
Nav
ed54b0e726 Tidying 2024-03-29 16:31:14 +00:00
Nav
779a5ad151 Corrected EEARL/H register address extraction from AVR8 TDFs.
Some other bits of tidying
2024-03-29 16:16:35 +00:00
Nav
b9d537e924 Created EdbgAvr8Session struct and moved EDBG target info to it 2024-03-28 21:10:08 +00:00
Nav
3c8efa60a6 Added EDBG parameter structs with TDF-based initialisation 2024-03-25 18:59:15 +00:00
Nav
75d5124265 Moved TargetRegisterDescriptor struct to separate file 2024-03-09 17:16:29 +00:00
Nav
7e9e28286f Made physical interface enum more generic (moved out of AVR8-specific context) 2024-02-15 21:25:12 +00:00
Nav
084eef1a30 Moved wMaxPacketSize retrieval to Usb::UsbDevice class.
And some other bits of tidying
2023-12-02 19:31:26 +00:00
Nav
516892f7eb Added Microchip namespace to EDBG debug tool classes 2023-11-18 23:50:42 +00:00
Nav
1600888624 Extract debug tool firmware version at startup 2023-11-18 23:15:11 +00:00
Nav
55d3fe76e0 Moved EDBG protocol code to more appropriate directory.
Updated necessary namespaces.
Other bits of tidying.
2023-11-17 22:20:39 +00:00
Nav
5896306f1a Removed redundant 'Bloom' namespace from entire codebase 2023-08-13 15:47:51 +01:00
Nav
ba03833325 Lots of tidying
- Removed generic `avr8` target
- Simplified AVR8 target construction
- Introduced register descriptor IDs
- Simplified GDB register mappings
- Simplified target interface contract
- Other bits of tidying
2023-07-18 23:16:06 +01:00
Nav
1f57ca3f21 Corrected bug with leaving programming mode on Snap and PICkit 4 debug tools 2023-05-08 02:44:03 +01:00
Nav
adcca0079d Check if Microchip hybrid devices (Snap and PICkit 4) are not in AVR mode and report back to the user. 2023-05-07 16:44:15 +01:00
Nav
dfaac9e30f Extract HID report size for EDBG debug tools via HID endpoint descriptor.
Removed hidapi bodge (where we were mimicking the hid_device_ struct, to
obtain the report size via `(hid_device_*)->input_ep_max_packet_size`).
2023-01-14 03:03:10 +00:00
Nav
b2fc7f4953 Corrected bug with XplainedPro debug tool driver adjusting max memory access size in the wrong place 2022-12-11 13:20:41 +00:00
Nav
13cf4eb3a4 Restored memory access soft limit for Xplained Pro debug tool (this got lost in the refactor I did a few weeks/months back) 2022-12-08 21:34:46 +00:00
Nav
f2d09641a1 Tidying 2022-11-16 23:51:07 +00:00
Nav
0d4216fd8f Moved most of the EDBG device code to an abstract base class, to reduce code duplication 2022-10-02 15:29:17 +01:00
Nav
2c6fd25ae4 Tidying EDBG driver code:
- Binned a lot of pointless code
- Simplified many EDBG data structure implementations
- Const-correctness
- Many other bits of tidying
2022-10-01 20:46:56 +01:00
Nav
a5b0097036 Tidying low-level debug tool driver code:
- Use automatic objects for libusb/hidapi resources, where possible (to reduce manual resource management)
- Removed unused/redundant code
- Tidied HidInterface class
- Tidied debug tool initialisation code
- Other bits of tidying
2022-10-01 16:50:57 +01:00
Nav
4956920432 Debug tool driver for the JTAGICE3 2022-05-04 20:06:56 +01:00
Nav
ed5188a2ef EDBG target power management interface for Curiosity Nano debug tool 2022-03-16 17:39:08 +00:00
Nav
c5c622b59d EDBG target power management interface for Xplained Pro debug tool 2022-03-16 17:38:58 +00:00
Nav
78b96ed277 EDBG target power management interface for Xplained Nano debug tool 2022-03-16 17:38:52 +00:00
Nav
55013dfc4a Target power mangement interface for the Xplained Mini evaluation board 2022-03-16 17:14:47 +00:00
Nav
2f031b91a4 Added new EDBG ISP implementation to Power Debugger debug tool 2022-03-09 21:55:34 +00:00
Nav
fbccef6dde Added new EDBG ISP implementation to MPLAB PICkit4 debug tool 2022-03-09 21:55:17 +00:00
Nav
37968584d1 Added new EDBG ISP implementation to Curiosity Nano debug tool 2022-03-09 21:54:58 +00:00
Nav
5e7c518b33 Added new EDBG ISP implementation to Xplained Mini debug tool 2022-03-08 20:45:22 +00:00