FYI - I just ported FreeRTOS to the ATMega2561. I had previously ported it to the ATMega128 and figured this port would be simple. What I didn’t realize is that these newer processors push 3 bytes onto the stack for a Call subroutine. That means that pxPortInitialiseStack() in port.c has to be modified to put an extra byte on the stack for each task. This took a bit of debugging since I hadn’t read the entire 449 page manual.