avrdudes / avarice

AVaRICE is a program for interfacing the Atmel JTAG ICE to GDB to allow users to debug their embedded AVR target.
GNU General Public License v2.0
35 stars 11 forks source link

added updi support and test devices #101

Open Florin-Popescu opened 1 year ago

Florin-Popescu commented 1 year ago

Hello!

I was very happy to see that avarice is now on github. And thanks to @maxgerhardt and Joerg for pushing me to upstream my changes.

This PR contains my changes for UPDI support for the newer AVR families. This is very similar to existing PDI but:

I discovered how to implement this mostly from Microchip EDBG-based Tools Protocols. I tried to keep a log for future reference on how I did this in the README of my fork from the old svn repo, in case anyone is curious. Hopefully Microchip will update their documentation if newer protocols emerge.

To use avarice in updi mode, passing the new argument -u or --updi is required. This argument was added to the already available protocols, and is mutually exclusive with the others, like -w, -x and probably others which default to JTAG.

I've added device descriptors supporting this new UPDI protocol for ATmega3208, 4808 and 4809. These can be used to test the implementation, or as models for supporting other UPDI devices. I'm preparing a different PR with the rest of the devices that I or other contributors added support for and tested on my fork, but they are not all necessarily UPDI related.

Any feedback is appreciated. I've just implemented something which works for me and haven't tested thoroughly or haven't bothered making the code "pretty".

Florin-Popescu commented 1 year ago

Any news on merging this?

maxgerhardt commented 1 year ago

Sorry I've been hung up on other projects, I'd love taking a look at this soon.