Thanks for your tips. I am using ATmega644P and got the same problem. However,
your fix seems to require _AVR_IOMX8_H_, which I do not have. I use the
following method:
For avrx_generatesinglestepinterrupt.S:
The original code segment:
GenerateInterrupt:
#ifdef CS0
# define CS00 CS0 /* Cover mega128 fubar with changed bit names */
#endif
Added this after that:
#ifdef TCCR0B
# define TCCR0 TCCR0B /* Cover register change for atmega48/88/168 and
ATmega164P/324P/644P */
#endif
For avrx_eeprom.S:
#include "avrx.inc"
#ifdef EEPE
# define EEWE EEPE /* Cover register change for atmega48/88/168 and
ATmega164P/324P/644P */
# define EEMWE EEMPE /* Write enable and master write enable */
#endif
This might work better...
- john
--- In avrx@yahoogroups.com, "j_s_connell" <j_s_connell@...> wrote:
>
> Fixed my problem, looks like register naming problem (maybe i have an
> older version of avrx).
>
> To fix added following to avrx_generatesinglestepinterrupt.S:
> after #include "avrx.inc" :
>
> #ifdef _AVR_IOMX8_H_
> # define TCCR0 TCCR0B /* Cover register change for
> atmega48/88/168 */
> #endif
>
> also had to fix avrx_eeprom.S
> after #include "avrx.inc" :
> #ifdef _AVR_IOMX8_H_
> # define EEWE EEPE /* Cover register change for
> atmega48/88/168 */
> # define EEMWE EEMPE /* Write enable and master write
> enable */
> #endif
>
> Now all libraries compile fine!
>
> If this was obvious or i have incorrect avrx files, i apologize.
>
>
> --- In avrx@yahoogroups.com, "j_s_connell" <j_s_connell@> wrote:
> >
> > When compiling for the atmega168 I get this error:
> >
> > if I change the target it assembles fine..
> >
> > what am I missing? (using 2.6f)
> >
> > Assembling: avrx_generatesinglestepinterrupt.S
> > avr-gcc -c -mmcu=atmega168 -I. -x assembler-with-cpp -Wa,-adh
> > lns=avrx_generatesinglestepinterrupt.lst,-gstabs
> > avrx_generatesinglestepinterrup
> > t.S -o avrx_generatesinglestepinterrupt.o
> > avrx_generatesinglestepinterrupt.S: Assembler messages:
> > avrx_generatesinglestepinterrupt.S:39: Error: constant value
> required
> > avrx_generatesinglestepinterrupt.S:39: Error: number must be less
> > than 64
> > avrx_generatesinglestepinterrupt.S:42: Error: constant value
> required
> > avrx_generatesinglestepinterrupt.S:42: Error: number must be less
> > than 64
> > avrx_generatesinglestepinterrupt.S:43: Error: constant value
> required
> > avrx_generatesinglestepinterrupt.S:43: Error: number must be less
> > than 64
> > make: *** [avrx_generatesinglestepinterrupt.o] Error 1
> >
>