Index: configure.in =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/configure.in,v retrieving revision 1.57 diff -u -r1.57 configure.in --- configure.in 10 Dec 2002 05:58:19 -0000 1.57 +++ configure.in 12 Dec 2002 17:33:47 -0000 @@ -292,13 +292,14 @@ AVR_CRT_TINY='' AVR_CRT_MEGA='' AVR_CRT_OTHER='' +avrlib_defines='-D__COMPILING_AVR_LIBC__' avrlib_cflags='' avrlib_asflags='' DOCSDIR='' if test -z "${with_multisubdir}"; then dnl default build directory -> avr1 and avr2 avrlib_cflags="-mmcu=avr2 ${avrlib_opt_space}" - avrlib_asflags='-mmcu=at90s8515' + avrlib_asflags='-mmcu=avr2' AVR_CRT_AT90='crts1200.o crts2313.o crts2323.o crts2333.o crts2343.o \\\ crts4414.o crts4433.o crts4434.o crts8515.o crts8535.o \\\ crtc8534.o' @@ -312,15 +313,15 @@ else case $with_multisubdir in avr3) avrlib_cflags=${avrlib_opt_speed} - avrlib_asflags='-mmcu=atmega103' + avrlib_asflags='-mmcu=avr3' AVR_CRT_MEGA='crtm103.o' ;; avr4) avrlib_cflags=${avrlib_opt_space} - avrlib_asflags='-mmcu=atmega8' + avrlib_asflags='-mmcu=avr4' AVR_CRT_MEGA='crtm8.o crtm8515.o crtm8535.o # crtm83.o crtm85.o' ;; avr5) avrlib_cflags=${avrlib_opt_speed} - avrlib_asflags='-mmcu=atmega161' + avrlib_asflags='-mmcu=avr5' AVR_CRT_MEGA='crtm161.o crtm162.o crtm163.o crtm169.o crtm323.o crtm128.o crtm16.o crtm32.o crtm64.o' AVR_CRT_OTHER='crtat94k.o' ;; @@ -329,9 +330,9 @@ esac fi -AVRLIB_CFLAGS="-g -Wall -W -Wstrict-prototypes ${avrlib_cflags}" +AVRLIB_CFLAGS="-g -Wall -W -Wstrict-prototypes ${avrlib_defines} ${avrlib_cflags}" AC_SUBST(AVRLIB_CFLAGS) -AVRLIB_ASFLAGS="-x assembler-with-cpp -Wa,-gstabs ${avrlib_asflags}" +AVRLIB_ASFLAGS="-x assembler-with-cpp -Wa,-gstabs ${avrlib_defines} ${avrlib_asflags}" AC_SUBST(AVRLIB_ASFLAGS) AVR_CRT_ASFLAGS='-x assembler-with-cpp -Wa,-gstabs' AC_SUBST(AVR_CRT_ASFLAGS) Index: include/avr/eeprom.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/eeprom.h,v retrieving revision 1.6 diff -u -r1.6 eeprom.h --- include/avr/eeprom.h 12 Dec 2002 11:41:01 -0000 1.6 +++ include/avr/eeprom.h 12 Dec 2002 17:33:47 -0000 @@ -55,7 +55,12 @@ is ready to be accessed. Since this may cause long delays if a write operation is still pending, time-critical applications should first poll the EEPROM e. g. using eeprom_is_ready() before - attempting any actual I/O. */ + attempting any actual I/O. + + \note This library will \e not work with the ATmega169 since this + device has the EEPROM IO ports at different locations! + +*/ /** \name avr-libc declarations */ Index: include/avr/io.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io.h,v retrieving revision 1.5 diff -u -r1.5 io.h --- include/avr/io.h 12 Dec 2002 11:41:01 -0000 1.5 +++ include/avr/io.h 12 Dec 2002 17:33:47 -0000 @@ -30,9 +30,13 @@ This header file includes the apropriate IO definitions for the device that has been specified by the -mmcu= compiler - command-line switch. + command-line switch. This is done by diverting to the appropriate + file <avr/ioXXXX.h> which should + never be included directly. Some register names common to all + AVR devices are defined directly within <avr/io.h>, + but most of the details come from the respective include file. - Note that each of these files always includes + Note that this file always includes \code #include \endcode See \ref avr_sfr for the details. @@ -69,6 +73,77 @@ #ifndef _AVR_IO_H_ #define _AVR_IO_H_ +#include + +/* + * Registers common to all AVR devices. + */ + +#if __AVR_ARCH__ != 1 +/* + * AVR architecture 1 has no RAM, thus no stack pointer. + * + * All other archs do have a stack pointer. Some devices have only + * less than 256 bytes of possible RAM locations (128 Bytes of SRAM + * and no option for external RAM), thus SPH is officially "reserved" + * for them. We catch this case below after including the + * device-specific ioXXXX.h file, by examining XRAMEND, and + * #undef-ining SP and SPH in that case. + */ +/* Stack Pointer */ +#define SP _SFR_IO16(0x3D) +#define SPL _SFR_IO8(0x3D) +#define SPH _SFR_IO8(0x3E) +#endif /* #if __AVR_ARCH__ != 1 */ + +/* Status REGister */ +#define SREG _SFR_IO8(0x3F) + +/* Status Register - SREG */ +#define SREG_I 7 +#define SREG_T 6 +#define SREG_H 5 +#define SREG_S 4 +#define SREG_V 3 +#define SREG_N 2 +#define SREG_Z 1 +#define SREG_C 0 + +/* Pointer definition */ +#if __AVR_ARCH__ != 1 +/* avr1 has only the Z pointer */ +#define XL r26 +#define XH r27 +#define YL r28 +#define YH r29 +#endif /* #if __AVR_ARCH__ != 1 */ +#define ZL r30 +#define ZH r31 + +/* + * Only few devices come without EEPROM. In order to assemble the + * EEPROM library components without defining a specific device, we + * keep the EEPROM-related definitions here, and catch the devices + * without EEPROM (E2END == 0) below. Obviously, the EEPROM library + * functions will not work for them. ;-) + */ +/* EEPROM Control Register */ +#define EECR _SFR_IO8(0x1C) + +/* EEPROM Data Register */ +#define EEDR _SFR_IO8(0x1D) + +/* EEPROM Address Register */ +#define EEAR _SFR_IO16(0x1E) +#define EEARL _SFR_IO8(0x1E) +#define EEARH _SFR_IO8(0x1F) + +/* EEPROM Control Register */ +#define EERIE 3 +#define EEMWE 2 +#define EEWE 1 +#define EERE 0 + #if defined (__AVR_AT94K__) # include #elif defined (__AVR_AT76C711__) @@ -123,7 +198,7 @@ # include #elif defined (__AVR_AT90S2313__) # include - /* the following only supported for assembler programs */ +/* avr1: the following only supported for assembler programs */ #elif defined (__AVR_ATtiny28__) # include #elif defined (__AVR_AT90S1200__) @@ -135,8 +210,35 @@ #elif defined (__AVR_ATtiny11__) # include #else -# warning "device type not defined" -/* # include */ +# if !defined(__COMPILING_AVR_LIBC__) +# warning "device type not defined" +# endif +#endif + +#if __AVR_ARCH__ != 1 +# if XRAMEND < 0x100 && !defined(__COMPILING_AVR_LIBC__) +# undef SP +# undef SPH +# endif +#endif + +#if E2END == 0 && !defined(__COMPILING_AVR_LIBC__) +# undef EECR +# undef EEDR +# undef EEARL +# undef EEMWE +# undef EEWE +# undef EERE +#endif +#if E2END < 0x100 && !defined(__COMPILING_AVR_LIBC__) +# undef EEAR +# if E2END > 0 +# define EEAR _SFR_IO8(0x1E) +# endif +# undef EEARH +#endif +#if !defined(SIG_EEPROM_READY) +# undef EERIE #endif #endif /* _AVR_IO_H_ */ Index: include/avr/io1200.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io1200.h,v retrieving revision 1.3 diff -u -r1.3 io1200.h --- include/avr/io1200.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io1200.h 12 Dec 2002 17:33:47 -0000 @@ -46,8 +46,6 @@ # warning "MCU not supported by the C compiler" #endif -#include - /* I/O registers */ /* 0x00..0x07 reserved */ @@ -69,9 +67,7 @@ /* 0x19..0x1B reserved */ -#define EECR _SFR_IO8(0x1C) -#define EEDR _SFR_IO8(0x1D) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* 0x1F..0x20 reserved */ @@ -101,7 +97,7 @@ /* 0x3C..0x3E reserved */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ Index: include/avr/io2313.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io2313.h,v retrieving revision 1.3 diff -u -r1.3 io2313.h --- include/avr/io2313.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io2313.h 12 Dec 2002 17:33:47 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Analog Comparator Control and Status Register */ @@ -79,15 +77,7 @@ /* Data Register, Port B */ #define PORTB _SFR_IO8(0x18) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -134,12 +124,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO8(0x3D) -#define SPL _SFR_IO8(0x3D) +/* 0x3C..0x3D SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -301,14 +288,6 @@ #define ACIC 2 #define ACIS1 1 #define ACIS0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0xDF Index: include/avr/io2323.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io2323.h,v retrieving revision 1.3 diff -u -r1.3 io2323.h --- include/avr/io2323.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io2323.h 12 Dec 2002 17:33:47 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Input Pins, Port B */ @@ -55,15 +53,7 @@ /* Data Register, Port B */ #define PORTB _SFR_IO8(0x18) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register Low */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -92,12 +82,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO8(0x3D) -#define SPL _SFR_IO8(0x3D) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -136,11 +123,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PB2 = SCK/T0 PB1 = MISO/INT0 @@ -161,14 +143,6 @@ #define PINB2 2 #define PINB1 1 #define PINB0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0xDF Index: include/avr/io2333.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io2333.h,v retrieving revision 1.3 diff -u -r1.3 io2333.h --- include/avr/io2333.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io2333.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* UART Baud Rate Register high */ @@ -109,15 +107,7 @@ /* Data Register, Port B */ #define PORTB _SFR_IO8(0x18) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -167,14 +157,6 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) - -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) - /* Interrupt vectors */ #define SIG_INTERRUPT0 _VECTOR(1) @@ -257,12 +239,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* SPI Control Register */ #define SPIE 7 #define SPE 6 @@ -398,14 +374,6 @@ #define PIND2 2 #define PIND1 1 #define PIND0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0xDF /*Last On-Chip SRAM location*/ Index: include/avr/io2343.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io2343.h,v retrieving revision 1.3 diff -u -r1.3 io2343.h --- include/avr/io2343.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io2343.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Input Pins, Port B */ @@ -55,15 +53,7 @@ /* Data Register, Port B */ #define PORTB _SFR_IO8(0x18) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register Low */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -92,12 +82,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO8(0x3D) -#define SPL _SFR_IO8(0x3D) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -136,11 +123,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PB3 = CLOCK PB2 = SCK/T0 @@ -168,14 +150,6 @@ #define PINB2 2 #define PINB1 1 #define PINB0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0xDF Index: include/avr/io4414.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io4414.h,v retrieving revision 1.3 diff -u -r1.3 io4414.h --- include/avr/io4414.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io4414.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Analog Comparator Control and Status Register */ @@ -106,16 +104,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -167,13 +156,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3C..0x3D SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -256,11 +241,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Data Register, Port A */ #define PA7 7 #define PA6 6 @@ -420,14 +400,6 @@ #define ACIC 2 #define ACIS1 1 #define ACIS0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0x15F /* Last On-Chip SRAM Location */ Index: include/avr/io4433.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io4433.h,v retrieving revision 1.3 diff -u -r1.3 io4433.h --- include/avr/io4433.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io4433.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* UART Baud Rate Register high */ @@ -109,15 +107,7 @@ /* Data Register, Port B */ #define PORTB _SFR_IO8(0x18) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -167,13 +157,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -257,12 +243,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* SPI Control Register */ #define SPIE 7 #define SPE 6 @@ -398,14 +378,6 @@ #define PIND2 2 #define PIND1 1 #define PIND0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0xDF /*Last On-Chip SRAM location*/ Index: include/avr/io4434.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io4434.h,v retrieving revision 1.3 diff -u -r1.3 io4434.h --- include/avr/io4434.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io4434.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* ADC Data register */ @@ -117,16 +115,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -193,13 +182,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -308,12 +293,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Data Register, Port A */ #define PA7 7 #define PA6 6 @@ -488,14 +467,6 @@ #define ADPS2 2 #define ADPS1 1 #define ADPS0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0x15F /*Last On-Chip SRAM location*/ Index: include/avr/io76c711.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io76c711.h,v retrieving revision 1.3 diff -u -r1.3 io76c711.h --- include/avr/io76c711.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io76c711.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* 0x00-0x0C reserved */ @@ -119,10 +117,9 @@ /* 0x3A-0x3C reserved */ -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) -#define SREG _SFR_IO8(0x3F) +/* 0x3D..0x3E SP */ +/* 0x3F SREG */ /* Interrupt vectors */ @@ -467,14 +464,6 @@ #define USB_DMA_EAD 0x108 #define USB_DMA_PLT 0x109 #define USB_DMA_EN 0x10A - -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x07FF Index: include/avr/io8515.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io8515.h,v retrieving revision 1.3 diff -u -r1.3 io8515.h --- include/avr/io8515.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io8515.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Analog Comparator Control and Status Register */ @@ -106,16 +104,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -167,13 +156,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -256,11 +241,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Data Register, Port A */ #define PA7 7 #define PA6 6 @@ -420,14 +400,6 @@ #define ACIC 2 #define ACIS1 1 #define ACIS0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0x25F /* Last On-Chip SRAM Location */ Index: include/avr/io8534.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io8534.h,v retrieving revision 1.3 diff -u -r1.3 io8534.h --- include/avr/io8534.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io8534.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* 0x00..0x03 reserved */ @@ -72,16 +70,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* 0x20..0x2B reserved */ @@ -122,13 +111,9 @@ /* 0x3C reserved */ -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -179,12 +164,6 @@ #define CS11 1 #define CS10 0 -/* EECR */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PORTA */ #define PA7 7 #define PA6 6 @@ -204,14 +183,6 @@ #define DDA2 2 #define DDA1 1 #define DDA0 0 - -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x15F Index: include/avr/io8535.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/io8535.h,v retrieving revision 1.3 diff -u -r1.3 io8535.h --- include/avr/io8535.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/io8535.h 12 Dec 2002 17:33:48 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* ADC Data register */ @@ -117,16 +115,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -193,13 +182,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -308,12 +293,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Data Register, Port A */ #define PA7 7 #define PA6 6 @@ -488,14 +467,6 @@ #define ADPS2 2 #define ADPS1 1 #define ADPS0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0x25F /*Last On-Chip SRAM location*/ Index: include/avr/ioat94k.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/ioat94k.h,v retrieving revision 1.3 diff -u -r1.3 ioat94k.h --- include/avr/ioat94k.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/ioat94k.h 12 Dec 2002 17:33:49 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* UART1 Baud Rate Register */ @@ -199,13 +197,9 @@ /* 0x3C reserved */ -/* Stack Pointer */ -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) - -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3D..0x3E SP */ +/* 0x3F SREG */ /* Interrupt vectors */ @@ -249,14 +243,6 @@ /* Bit numbers - XXX not here yet */ -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 - /* Last memory addresses - depending on configuration, it is possible to have 20K-32K of program memory and 4K-16K of data memory @@ -265,6 +251,10 @@ #ifndef RAMEND #define RAMEND 0x0FFF +#endif + +#ifndef XRAMEND +#define XRAMEND RAMEND #endif #define E2END 0 Index: include/avr/iom103.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom103.h,v retrieving revision 1.3 diff -u -r1.3 iom103.h --- include/avr/iom103.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iom103.h 12 Dec 2002 17:33:49 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Input Pins, Port F */ @@ -123,16 +121,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -211,14 +200,9 @@ /* XDIV Divide control register */ #define XDIV _SFR_IO8(0x3C) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) - -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3D..0x3E SP */ +/* 0x3F SREG */ /* Interrupt vectors */ @@ -369,12 +353,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Data Register, Port A */ #define PA7 7 #define PA6 6 @@ -569,14 +547,6 @@ #define MUX2 2 #define MUX1 1 #define MUX0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0x0FFF /*Last On-Chip SRAM Location*/ Index: include/avr/iom128.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom128.h,v retrieving revision 1.7 diff -u -r1.7 iom128.h --- include/avr/iom128.h 12 Dec 2002 11:41:01 -0000 1.7 +++ include/avr/iom128.h 12 Dec 2002 17:33:49 -0000 @@ -45,8 +45,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Input Pins, Port F */ @@ -134,16 +132,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* Special Function I/O Register */ #define SFIOR _SFR_IO8(0x20) @@ -229,13 +218,9 @@ /* XDIV Divide control register */ #define XDIV _SFR_IO8(0x3C) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Extended I/O registers */ @@ -693,12 +678,6 @@ #define PSR0 1 #define PSR321 0 -/* EEPROM Control Register - EECR */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Port Data Register (generic) */ #define PORT7 7 #define PORT6 6 @@ -729,16 +708,6 @@ #define PIN1 1 #define PIN0 0 -/* Status Register - SREG */ -#define SREG_I 7 -#define SREG_T 6 -#define SREG_H 5 -#define SREG_S 4 -#define SREG_V 3 -#define SREG_N 2 -#define SREG_Z 1 -#define SREG_C 0 - /* SPI Status Register - SPSR */ #define SPIF 7 #define WCOL 6 @@ -1072,14 +1041,6 @@ #define PING2 2 #define PING1 1 #define PING0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0x10FF /* Last On-Chip SRAM Location */ Index: include/avr/iom16.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom16.h,v retrieving revision 1.3 diff -u -r1.3 iom16.h --- include/avr/iom16.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iom16.h 12 Dec 2002 17:33:49 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */ @@ -96,12 +94,7 @@ #define DDRA _SFR_IO8(0x1A) #define PORTA _SFR_IO8(0x1B) -/* EEPROM */ -#define EECR _SFR_IO8(0x1C) -#define EEDR _SFR_IO8(0x1D) -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ #define UCSRC _SFR_IO8(0x20) #define UBRRH _SFR_IO8(0x20) @@ -155,10 +148,9 @@ #define OCR0 _SFR_IO8(0x3C) -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) -#define SREG _SFR_IO8(0x3F) +/* 0x3D..0x3E SP */ + +/* 0x3F SREG */ /* Interrupt vectors */ @@ -350,14 +342,6 @@ #define UCSZ0 1 #define UCPOL 0 -/* EECR */ -/* bits 7-4 reserved */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - - /* PORTA */ #define PA7 7 #define PA6 6 @@ -542,14 +526,6 @@ #define MUX2 2 #define MUX1 1 #define MUX0 0 - -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x45F Index: include/avr/iom161.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom161.h,v retrieving revision 1.3 diff -u -r1.3 iom161.h --- include/avr/iom161.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iom161.h 12 Dec 2002 17:33:49 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* UART1 Baud Rate Register */ @@ -125,16 +123,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* UART Baud Register HIgh */ #define UBRRH _SFR_IO8(0x20) @@ -218,13 +207,9 @@ /* 0x3C reserved */ -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -364,12 +349,6 @@ #define WDP1 1 #define WDP0 0 -/* EECR */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PORTA */ #define PA7 7 #define PA6 6 @@ -576,14 +555,6 @@ #define ACIC 2 #define ACIS1 1 #define ACIS0 0 - -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x45F Index: include/avr/iom162.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom162.h,v retrieving revision 1.3 diff -u -r1.3 iom162.h --- include/avr/iom162.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iom162.h 12 Dec 2002 17:33:49 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* Memory mapped I/O registers */ /* Timer/Counter3 Control Register A */ @@ -90,9 +88,8 @@ /* Standard I/O registers */ -#define SREG _SFR_IO8(0x3F) /* Status Register */ -#define SPH _SFR_IO8(0x3E) /* Stack Pointer High Byte */ -#define SPL _SFR_IO8(0x3D) /* Stack Pointer High Byte */ +/* 0x3F SREG */ +/* 0x3D..0x3E SP */ #define UBRR1H _SFR_IO8(0x3C) /* USART 1 Baud Rate Register High Byte, Shared with UCSR1C */ #define UCSR1C _SFR_IO8(0x3C) /* USART 1 Control and Status Register, Shared with UBRR1H */ #define GICR _SFR_IO8(0x3B) /* General Interrupt Control Register */ @@ -128,11 +125,7 @@ #define WDTCR _SFR_IO8(0x21) /* Watchdow Timer Control Register */ #define UBRR0H _SFR_IO8(0x20) /* USART 0 Baud-Rate Register High Byte, Shared with UCSR0C */ #define UCSR0C _SFR_IO8(0x20) /* USART 0 Control and Status Register C, Shared with UBRR0H */ -#define EEARH _SFR_IO8(0x1F) /* EEPROM Address Register High Byte */ -#define EEARL _SFR_IO8(0x1E) /* EEPROM Address Register Low Byte */ -#define EEAR _SFR_IO16(0x1E) /* EEPROM Address Register */ -#define EEDR _SFR_IO8(0x1D) /* EEPROM Data Register */ -#define EECR _SFR_IO8(0x1C) /* EEPROM Control REgister */ +/* 0x1C..0x1F EEPROM */ #define PORTA _SFR_IO8(0x1B) /* Port A */ #define DDRA _SFR_IO8(0x1A) /* Port A Data Direction Register */ #define PINA _SFR_IO8(0x19) /* Port A Pin Register */ @@ -278,10 +271,6 @@ -/* SREG bit definitions */ -/* Not written, set using other mechanisms. */ - - /* SPH bit definitions */ #define SP15 15 @@ -813,16 +802,6 @@ #define UCSZ12 2 #define RXB81 1 #define TXB81 0 - - -/* Pointer registers (same for all AVR devices so far) */ - -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Last memory addresses */ Index: include/avr/iom163.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom163.h,v retrieving revision 1.4 diff -u -r1.4 iom163.h --- include/avr/iom163.h 12 Dec 2002 11:41:01 -0000 1.4 +++ include/avr/iom163.h 12 Dec 2002 17:33:50 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ #define TWBR _SFR_IO8(0x00) @@ -92,12 +90,7 @@ #define DDRA _SFR_IO8(0x1A) #define PORTA _SFR_IO8(0x1B) -/* EEPROM */ -#define EECR _SFR_IO8(0x1C) -#define EEDR _SFR_IO8(0x1D) -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ #define UBRRH _SFR_IO8(0x20) @@ -149,11 +142,9 @@ /* 0x3C reserved */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) -#define SREG _SFR_IO8(0x3F) +/* 0x3D..0x3E SP */ +/* 0x3F SREG */ /* Interrupt vectors */ @@ -307,13 +298,6 @@ #define WDP1 1 #define WDP0 0 -/* EECR */ -/* bits 7-4 reserved */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PA7-PA0 = ADC7-ADC0 */ /* PORTA */ #define PA7 7 @@ -528,14 +512,6 @@ #define MUX2 2 #define MUX1 1 #define MUX0 0 - -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x45F Index: include/avr/iom169.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom169.h,v retrieving revision 1.5 diff -u -r1.5 iom169.h --- include/avr/iom169.h 12 Dec 2002 11:41:01 -0000 1.5 +++ include/avr/iom169.h 12 Dec 2002 17:33:50 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Port A */ @@ -99,12 +97,17 @@ /* General Purpose I/O Register 0 */ #define GPIOR0 _SFR_IO8(0x1E) +#undef EECR /* EEPROM Control Register */ #define EECR _SFR_IO8(0x1F) +#undef EEDR /* EEPROM Data Register */ #define EEDR _SFR_IO8(0x20) +#undef EEAR +#undef EEARL +#undef EEARH /* EEPROM Address Register */ #define EEAR _SFR_IO16(0x21) #define EEARL _SFR_IO8(0x21) @@ -155,14 +158,6 @@ /* Store Program Memory Control and Status Register */ #define SPMCSR _SFR_IO8(0x37) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) - -/* Status Register */ -#define SREG _SFR_IO8(0x3F) - /* Watchdog Timer Control Register */ #define WDTCR _SFR_MEM8(0x60) @@ -637,12 +632,6 @@ #define PCIE0 6 #define INT0 0 -/* EECR */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* GTCCR */ #define TSM 7 #define PSR2 1 @@ -958,16 +947,9 @@ #define SEG1 1 #define SEG0 0 -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 - /* Last memory addresses */ #define RAMEND 0x4FF +#define XRAMEND 0x4FF #define E2END 0x1FF #define FLASHEND 0x3FFF Index: include/avr/iom32.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom32.h,v retrieving revision 1.2 diff -u -r1.2 iom32.h --- include/avr/iom32.h 12 Dec 2002 11:41:01 -0000 1.2 +++ include/avr/iom32.h 12 Dec 2002 17:33:50 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */ @@ -94,12 +92,7 @@ #define DDRA _SFR_IO8(0x1A) #define PORTA _SFR_IO8(0x1B) -/* EEPROM */ -#define EECR _SFR_IO8(0x1C) -#define EEDR _SFR_IO8(0x1D) -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ #define UBRRH _SFR_IO8(0x20) #define UCSRC UBRRH @@ -155,11 +148,9 @@ #define OCR0 _SFR_IO8(0x3C) -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) -#define SREG _SFR_IO8(0x3F) +/* 0x3D..0x3E SP */ +/* 0x3F SREG */ /* Interrupt vectors */ @@ -345,13 +336,6 @@ #define WDP1 1 #define WDP0 0 -/* EECR */ -/* bits 7-4 reserved */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PA7-PA0 = ADC7-ADC0 */ /* PORTA */ #define PA7 7 @@ -577,16 +561,9 @@ #define MUX1 1 #define MUX0 0 -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 - /* Last memory addresses */ #define RAMEND 0x85F +#define XRAMEND 0x85F #define E2END 0x3FF #define FLASHEND 0x7FFF Index: include/avr/iom323.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom323.h,v retrieving revision 1.4 diff -u -r1.4 iom323.h --- include/avr/iom323.h 12 Dec 2002 11:41:01 -0000 1.4 +++ include/avr/iom323.h 12 Dec 2002 17:33:50 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */ @@ -94,12 +92,7 @@ #define DDRA _SFR_IO8(0x1A) #define PORTA _SFR_IO8(0x1B) -/* EEPROM */ -#define EECR _SFR_IO8(0x1C) -#define EEDR _SFR_IO8(0x1D) -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ #define UBRRH _SFR_IO8(0x20) #define UCSRC UBRRH @@ -154,11 +147,9 @@ #define OCR0 _SFR_IO8(0x3C) -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) -#define SREG _SFR_IO8(0x3F) +/* 0x3D..0x3E SP */ +/* 0x3F SREG */ /* Interrupt vectors */ @@ -328,13 +319,6 @@ #define WDP1 1 #define WDP0 0 -/* EECR */ -/* bits 7-4 reserved */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PA7-PA0 = ADC7-ADC0 */ /* PORTA */ #define PA7 7 @@ -565,14 +549,6 @@ #define MUX2 2 #define MUX1 1 #define MUX0 0 - -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x85F Index: include/avr/iom64.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom64.h,v retrieving revision 1.2 diff -u -r1.2 iom64.h --- include/avr/iom64.h 12 Dec 2002 11:41:01 -0000 1.2 +++ include/avr/iom64.h 12 Dec 2002 17:33:50 -0000 @@ -45,8 +45,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Input Pins, Port F */ @@ -134,16 +132,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* Special Function I/O Register */ #define SFIOR _SFR_IO8(0x20) @@ -226,13 +215,9 @@ /* XDIV Divide control register */ #define XDIV _SFR_IO8(0x3C) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Extended I/O registers */ @@ -689,12 +674,6 @@ #define PSR0 1 #define PSR321 0 -/* EEPROM Control Register - EECR */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Port Data Register (generic) */ #define PORT7 7 #define PORT6 6 @@ -725,16 +704,6 @@ #define PIN1 1 #define PIN0 0 -/* Status Register - SREG */ -#define SREG_I 7 -#define SREG_T 6 -#define SREG_H 5 -#define SREG_S 4 -#define SREG_V 3 -#define SREG_N 2 -#define SREG_Z 1 -#define SREG_C 0 - /* SPI Status Register - SPSR */ #define SPIF 7 #define WCOL 6 @@ -1073,14 +1042,6 @@ #define PING2 2 #define PING1 1 #define PING0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0x10FF /* Last On-Chip SRAM Location */ Index: include/avr/iom8.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom8.h,v retrieving revision 1.5 diff -u -r1.5 iom8.h --- include/avr/iom8.h 12 Dec 2002 11:41:01 -0000 1.5 +++ include/avr/iom8.h 12 Dec 2002 17:33:50 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */ @@ -90,12 +88,7 @@ #define DDRB _SFR_IO8(0x17) #define PORTB _SFR_IO8(0x18) -/* EEPROM */ -#define EECR _SFR_IO8(0x1C) -#define EEDR _SFR_IO8(0x1D) -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ #define UCSRC _SFR_IO8(0x20) #define UBRRH _SFR_IO8(0x20) @@ -148,10 +141,9 @@ /* 0x3C reserved (OCR0?) */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) -#define SREG _SFR_IO8(0x3F) +/* 0x3D..0x3E SP */ + +/* 0x3F SREG */ /* Interrupt vectors */ @@ -337,13 +329,6 @@ #define UCSZ0 1 #define UCPOL 0 -/* EECR */ -/* bits 7-4 reserved */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PORTB */ #define PB7 7 #define PB6 6 @@ -495,14 +480,6 @@ #define MUX2 2 #define MUX1 1 #define MUX0 0 - -/* Pointer registers (same for all AVR devices so far) */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x45F Index: include/avr/iom8515.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom8515.h,v retrieving revision 1.2 diff -u -r1.2 iom8515.h --- include/avr/iom8515.h 12 Dec 2002 11:41:01 -0000 1.2 +++ include/avr/iom8515.h 12 Dec 2002 17:33:50 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Oscillator Calibration Register */ @@ -118,16 +116,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* USART Baud Rate Register HI */ /* USART Control and Status Register C */ @@ -199,13 +188,9 @@ /* General Interrupt Control Register */ #define GICR _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -350,12 +335,6 @@ #define UCSZ0 1 #define UCPOL 0 -/* EEPROM Control Register */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Data Register, Port A */ #define PA7 7 #define PA6 6 @@ -535,14 +514,6 @@ #define PINE2 2 #define PINE1 1 #define PINE0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0x25F /* Last On-Chip SRAM Location */ Index: include/avr/iom8535.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iom8535.h,v retrieving revision 1.2 diff -u -r1.2 iom8535.h --- include/avr/iom8535.h 12 Dec 2002 11:41:01 -0000 1.2 +++ include/avr/iom8535.h 12 Dec 2002 17:33:51 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */ @@ -124,16 +122,7 @@ /* Data Register, Port A */ #define PORTA _SFR_IO8(0x1B) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO16(0x1E) -#define EEARL _SFR_IO8(0x1E) -#define EEARH _SFR_IO8(0x1F) +/* 0x1C..0x1F EEPROM */ /* USART Baud Rate Register HI */ /* USART Control and Status Register C */ @@ -220,13 +209,9 @@ /* Timer/Counter 0 Output Compare Register */ #define OCR0 _SFR_IO8(0x3C) -/* Stack Pointer */ -#define SP _SFR_IO16(0x3D) -#define SPL _SFR_IO8(0x3D) -#define SPH _SFR_IO8(0x3E) +/* 0x3D..0x3E SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -396,12 +381,6 @@ #define UCSZ0 1 #define UCPOL 0 -/* EEPROM Control Register */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Data Register, Port A */ #define PA7 7 #define PA6 6 @@ -599,16 +578,9 @@ #define TWPS1 1 #define TWPS0 0 -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 - /* Constants */ #define RAMEND 0x25F /* Last On-Chip SRAM Location */ +#define XRAMEND 0x25F #define E2END 0x1FF #define FLASHEND 0x1FFF Index: include/avr/iotn11.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iotn11.h,v retrieving revision 1.3 diff -u -r1.3 iotn11.h --- include/avr/iotn11.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iotn11.h 12 Dec 2002 17:33:51 -0000 @@ -46,8 +46,6 @@ # warning "MCU not supported by the C compiler" #endif -#include - /* I/O registers */ /* 0x00..0x07 reserved */ @@ -101,9 +99,7 @@ /* 0x3C..0x3E reserved */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) - +/* 0x3F SREG */ /* Interrupt vectors */ @@ -186,9 +182,6 @@ #define ACIE 3 #define ACIS1 1 #define ACIS0 0 - -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x1F Index: include/avr/iotn12.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iotn12.h,v retrieving revision 1.3 diff -u -r1.3 iotn12.h --- include/avr/iotn12.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iotn12.h 12 Dec 2002 17:33:51 -0000 @@ -46,8 +46,6 @@ # warning "MCU not supported by the C compiler" #endif -#include - /* I/O registers */ /* 0x00..0x07 reserved */ @@ -68,15 +66,7 @@ /* 0x19..0x1B reserved */ -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* 0x1F..0x20 reserved */ @@ -116,8 +106,7 @@ /* 0x3C..0x3E reserved */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -164,12 +153,6 @@ #define WDP1 1 #define WDP0 0 -/* EECR */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PB5 = RESET# PB4 = XTAL2 @@ -210,9 +193,6 @@ #define ACIE 3 #define ACIS1 1 #define ACIS0 0 - -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x1F Index: include/avr/iotn15.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iotn15.h,v retrieving revision 1.3 diff -u -r1.3 iotn15.h --- include/avr/iotn15.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iotn15.h 12 Dec 2002 17:33:51 -0000 @@ -72,15 +72,7 @@ /* 0x19..0x1B reserved */ -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* 0x1F..0x20 reserved */ @@ -126,8 +118,7 @@ /* 0x3C..0x3E reserved */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -203,12 +194,6 @@ #define WDP1 1 #define WDP0 0 -/* EECR */ -#define EERIE 3 -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PB5 = RESET# / ADC0 PB4 = ADC3 @@ -266,9 +251,6 @@ #define ADPS2 2 #define ADPS1 1 #define ADPS0 0 - -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x1F Index: include/avr/iotn22.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iotn22.h,v retrieving revision 1.3 diff -u -r1.3 iotn22.h --- include/avr/iotn22.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iotn22.h 12 Dec 2002 17:33:51 -0000 @@ -42,8 +42,6 @@ # error "Attempt to include more than one file." #endif -#include - /* I/O registers */ /* Input Pins, Port B */ @@ -55,15 +53,7 @@ /* Data Register, Port B */ #define PORTB _SFR_IO8(0x18) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register Low */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -92,12 +82,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO8(0x3D) -#define SPL _SFR_IO8(0x3D) +/* 0x3D SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -136,11 +123,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* PB2 = SCK/T0 PB1 = MISO/INT0 @@ -167,14 +149,6 @@ #define PINB2 2 #define PINB1 1 #define PINB0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0xDF Index: include/avr/iotn26.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iotn26.h,v retrieving revision 1.2 diff -u -r1.2 iotn26.h --- include/avr/iotn26.h 12 Dec 2002 11:41:01 -0000 1.2 +++ include/avr/iotn26.h 12 Dec 2002 17:33:51 -0000 @@ -42,8 +42,6 @@ #ifndef _AVR_IOTN26_H_ #define _AVR_IOTN26_H_ 1 -#include - /* I/O registers */ /* Input Pins, Port A */ @@ -64,15 +62,7 @@ /* Data Register, Port B */ #define PORTB _SFR_IO8(0x18) -/* EEPROM Control Register */ -#define EECR _SFR_IO8(0x1C) - -/* EEPROM Data Register */ -#define EEDR _SFR_IO8(0x1D) - -/* EEPROM Address Register Low */ -#define EEAR _SFR_IO8(0x1E) -#define EEARL _SFR_IO8(0x1E) +/* 0x1C..0x1E EEPROM */ /* Watchdog Timer Control Register */ #define WDTCR _SFR_IO8(0x21) @@ -119,12 +109,9 @@ /* General Interrupt MaSK register */ #define GIMSK _SFR_IO8(0x3B) -/* Stack Pointer */ -#define SP _SFR_IO8(0x3D) -#define SPL _SFR_IO8(0x3D) +/* 0x3D SP */ -/* Status REGister */ -#define SREG _SFR_IO8(0x3F) +/* 0x3F SREG */ /* Interrupt vectors */ @@ -172,11 +159,6 @@ #define WDP1 1 #define WDP0 0 -/* EEPROM Control Register */ -#define EEMWE 2 -#define EEWE 1 -#define EERE 0 - /* Data Register, Port A */ #define PA7 7 #define PA6 6 @@ -236,14 +218,6 @@ #define PINB2 2 #define PINB1 1 #define PINB0 0 - -/* Pointer definition */ -#define XL r26 -#define XH r27 -#define YL r28 -#define YH r29 -#define ZL r30 -#define ZH r31 /* Constants */ #define RAMEND 0xDF Index: include/avr/iotn28.h =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/include/avr/iotn28.h,v retrieving revision 1.3 diff -u -r1.3 iotn28.h --- include/avr/iotn28.h 12 Dec 2002 11:41:01 -0000 1.3 +++ include/avr/iotn28.h 12 Dec 2002 17:33:51 -0000 @@ -46,8 +46,6 @@ # warning "MCU not supported by the C compiler" #endif -#include - /* I/O registers */ #define OSCCAL _SFR_IO8(0x00) @@ -84,8 +82,7 @@ /* 0x1C..0x3E reserved */ -#define SREG _SFR_IO8(0x3F) - +/* 0x3F SREG */ /* Interrupt vectors */ @@ -230,9 +227,6 @@ #define ACIE 3 #define ACIS1 1 #define ACIS0 0 - -#define ZL r30 -#define ZH r31 /* Last memory addresses */ #define RAMEND 0x1F Index: libc/stdlib/malloc.c =================================================================== RCS file: /home/cvs/avr-libc/avr-libc/libc/stdlib/malloc.c,v retrieving revision 1.5 diff -u -r1.5 malloc.c --- libc/stdlib/malloc.c 30 Sep 2002 19:03:48 -0000 1.5 +++ libc/stdlib/malloc.c 12 Dec 2002 17:33:51 -0000 @@ -28,7 +28,7 @@ #include -#include +#include #ifndef __AVR__ @@ -69,7 +69,7 @@ extern char __heap_start; extern char __heap_end; -#define STACK_POINTER() ((char *)_SFR_IO16(0x3D)) +#define STACK_POINTER() ((char *)SP) #endif /* MALLOC_TEST */