I will not bore you with the trouble I was having with IAR. It is a lot harder than you would think to convert a complex project to a different compiler, but I decided to bite the bullet and convert to GCC. Three hours later, I am still struggling.
The project has several c files and a file for each interrupt service routine, written in assembler.
Here is an example of an ISR:
rjmp Timer1 ; Timer 1 overflow
EXTERN Option, Tilt, Analog, Tilt_state
The EXTERN statement generates an error. These variables are allocated in C and are used to pass data between the ISR and C. What am I doing wrong?
in r16,SREG generates a "must be less than 64" error. A similar error is generated for things like PINC or any I/O reference. What can I do?