I'm currently in the process of having to port a large project from ICCAVR known as the imagecraft IDE to Atmel Studio 7.0 and have had great difficulty trying to get the Atmel build of the project working on the custom board. I've followed the documentation of the code ports I need to do as shown in the link below with the interrupts and the flash memory but it's still failing. The MCU I'm using is an 8 bit ATMEGA2561. 

ICC to Atmel Porting guide: https://www.nongnu.org/avr-libc/user-manual/porting.html

These are the following things I've tried to get the Atmel version of the build working

  • Used ICCAVR header files in Atmel Studio
  • Rewritten interrupts from ICCAVR to Atmel Studio as required from the documentation
  • Used Atmel header files in Atmel Studio (#include , #include ) for the port

I can visually show what is happening with the help of these two videos I have posted on here. The first one is the custom board with the ICCAVR build loaded on the MCU. It just does one beep with the piezo buzzer and goes through the void main() code as proven with the UART debugging printouts. 

ICCAVR Build Video: https://www.youtube.com/watch?v=G58d3CC0AB4&feature=youtu.be

The second video is the custom board with the Atmel studio build, where the piezo buzzer just continuously keeps beeping until I pull the battery out of the board. No UART debugging printouts get down. 

Atmel Studio Build Video: https://www.youtube.com/watch?v=vPUr4qzoOQI&feature=youtu.be

I have been struggling for 4 days now with multiple attempts to port the project code and am have very little luck. 

  • \$\begingroup\$ Please post your code, or at least the part that is failing. Too hard to debug for you without that. \$\endgroup\$ Mar 5, 2020 at 16:08

1 Answer 1


Atmel Studio uses the GCC toolchain and GNU make. Presumably ICCAVR is using a different toolchain. Your options appear to be:

  1. Keep the ICCAVR toolchain and integrate it into Atmel Studio if you can get the HEX and ELF files required for programming and debugging.
  2. Migrate to the GCC toolchain in which case take it slow, move one module across at a time and test each module as thoroughly as possible in isolation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.