Skip to content

Instantly share code, notes, and snippets.

@goncalor
Last active February 14, 2024 02:50
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save goncalor/51e1c8038cc058b4379552477255b4e1 to your computer and use it in GitHub Desktop.
Save goncalor/51e1c8038cc058b4379552477255b4e1 to your computer and use it in GitHub Desktop.
How to add support for ATmega328PB to avr-gcc and avrdude

Adding support for ATmega328PB to avr-gcc and avrdude

avr-gcc

  1. Download ATmega's support pack from Microchip's website

  2. Unzip the relevant files

     unzip -j Atmel.ATmega_DFP.x.y.zzz.atpack \
     gcc/dev/atmega328pb/avr5/crtatmega328pb.o \
     gcc/dev/atmega328pb/avr5/libatmega328pb.a \
     include/avr/iom328pb.h
    
  3. Place the .o and .a files in /usr/avr/lib/avr5/

  4. Place the .h file in /usr/avr/include/avr/

  5. Add the following to /usr/avr/include/avr/io.h

     #elif defined (__AVR_ATmega328PB__) || defined (__AVR_ATmega328__)
     #  include <avr/iom328pb.h>
    

All set. Ready to compile.

avrdude

Add the following to /etc/avrdude.conf, right below the definition for ATmega328P.

part parent "m328"
	id          = "m328pb";
	desc        = "ATmega328PB";
	signature   = 0x1e 0x95 0x16;

	ocdrev      = 1;
;

Happy flashing!

@sauttefk
Copy link

sauttefk commented Dec 8, 2021

@samego176667 you are wrong!
when doing as described, you get exactly 3 files and it is clearly written where to put them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment