PyAVRdbg
A GDB RSP server for AVR debuggers supported by Microchips pymcuprog
Install / Use
/learn @stemnic/PyAVRdbgREADME
pyAVRdbg
An attempt of making a gdb rsp server for AVR debuggers with pymcuprog primarily for the new UPDI devices but other protocols supported by pymcuprog can easily be made to work.
Current Features
- Stepping
- Memory manipulation (viewing and modifying variables)
- Hardware and software breakpoints
- Reading Registers (including SREG, Stack pointer and program counter)*
*Writing is possible it is just not implemented yet.
Install/Dependencies
- avr-gdb
- Recommend using the latest version. If you are compiling it I would looking at the arch community repos buildfile
- Windows users might want to use wsl
- libusb might be required as a seperate install
- pip3 install --user pymcuprog
- Some form for C++ compiler if you are running python versions higher than 3.6 since pymcuprog needs to compile package with Cython
- Windows:
- VC++ 2015.3 v14.00 (v140) installed through Visual Studio
- Windows:
- Some form for C++ compiler if you are running python versions higher than 3.6 since pymcuprog needs to compile package with Cython
Usage
Debugger server
- Ensure debugger/kit is connected
- Modify main.py with device name see supported devices and ip or port defines if applicable
- start main.py
GDB
avr-gdb (wellNamed).elf- (gdb)
target remote IP:Port
Currently Supported Devices
These are all the currently supported devices per 03.06.2020. This list is wholly dependent on pymcuprog's device support since this RSP server only uses general library calls in pymcuprog. As mentioned before ISP devices might also be supported in the future. | Protocol | Device Name | |:--------:|:-----------:| | UPDI | atmega4808* | | | atmega4809 | | | attiny416* | | | attiny817* | | |attiny1607*| | |attiny1627*| | |attiny3217*| | |avr128da28*| | |avr128da48| | |avr128db48*|
*Devices are untested but will most likely work.
Thanks
A huge thanks to Microchip for making pymcuprog available
Some useful links for referance for development
- https://www.embecosm.com/appnotes/ean4/embecosm-howto-rsp-server-ean4-issue-2.html#id3033520
- https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_toc.html
- https://onlinedocs.microchip.com/pr/GUID-33422CDF-8B41-417C-9C31-E4521ADAE9B4-en-US-2/index.html
- https://github.com/mbedmicro/pyOCD/tree/master/pyocd
- https://developer.apple.com/library/archive/documentation/DeveloperTools/gdb/gdb/gdb_33.html
- http://ww1.microchip.com/downloads/en/DeviceDoc/50002630A.pdf
Related Skills
openhue
340.5kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
340.5kElevenLabs text-to-speech with mac-style say UX.
weather
340.5kGet current weather and forecasts via wttr.in or Open-Meteo
tweakcc
1.5kCustomize Claude Code's system prompts, create custom toolsets, input pattern highlighters, themes/thinking verbs/spinners, customize input box & user message styling, support AGENTS.md, unlock private/unreleased features, and much more. Supports both native/npm installs on all platforms.
