AVR Libc Home Page |  | AVR Libc Development Pages
Main Page | User Manual | Library Reference | FAQ | Alphabetical Index | Example Projects

# <avr/io.h>: AVR device-specific IO definitions

     #include <avr/io.h>

This header file includes the apropriate IO definitions for the device that has been specified by the `-mmcu=` compiler command-line switch. This is done by diverting to the appropriate file `<avr/io` XXXX`.h>` which should never be included directly. Some register names common to all AVR devices are defined directly within `<avr/common.h>`, which is included in `<avr/io.h>`, but most of the details come from the respective include file.

Note that this file always includes the following files:

        #include <avr/sfr_defs.h>
        #include <avr/portpins.h>
        #include <avr/common.h>
        #include <avr/version.h>

See <avr/sfr_defs.h>: Special function registers for more details about that header file.

Included are definitions of the IO register set and their respective bit values as specified in the Atmel documentation. Note that inconsistencies in naming conventions, so even identical functions sometimes get different names on different devices.

Also included are the specific names useable for interrupt function definitions as documented here.

Finally, the following macros are defined:

- RAMEND
  The last on-chip RAM address.
- XRAMEND
  The last possible RAM location that is addressable. This is equal to RAMEND for devices that do not allow for external RAM. For devices that allow external RAM, this will larger than RAMEND.
- E2END
  The last EEPROM address.
- FLASHEND
  The last byte address in the Flash program space.
- SPM_PAGESIZE
  For devices with bootloader support, the flash pagesize (in bytes) to be used for the `SPM` instruction.
- E2PAGESIZE
  The size of the EEPROM page.

Automatically generated by Doxygen 1.5.6 on 4 Dec 2008.