Provided by: avr-libc_1.8.0-4.1_all bug

NAME

       boot.h -

SYNOPSIS

   Macros
       #define BOOTLOADER_SECTION   __attribute__ ((section ('.bootloader')))
       #define __COMMON_ASB   RWWSB
       #define __COMMON_ASRE   RWWSRE
       #define BLB12   5
       #define BLB11   4
       #define BLB02   3
       #define BLB01   2
       #define boot_spm_interrupt_enable()   (__SPM_REG |= (uint8_t)_BV(SPMIE))
       #define boot_spm_interrupt_disable()   (__SPM_REG &= (uint8_t)~_BV(SPMIE))
       #define boot_is_spm_interrupt()   (__SPM_REG & (uint8_t)_BV(SPMIE))
       #define boot_rww_busy()   (__SPM_REG & (uint8_t)_BV(__COMMON_ASB))
       #define boot_spm_busy()   (__SPM_REG & (uint8_t)_BV(__SPM_ENABLE))
       #define boot_spm_busy_wait()   do{}while(boot_spm_busy())
       #define __BOOT_PAGE_ERASE   (_BV(__SPM_ENABLE) | _BV(PGERS))
       #define __BOOT_PAGE_WRITE   (_BV(__SPM_ENABLE) | _BV(PGWRT))
       #define __BOOT_PAGE_FILL   _BV(__SPM_ENABLE)
       #define __BOOT_RWW_ENABLE   (_BV(__SPM_ENABLE) | _BV(__COMMON_ASRE))
       #define __boot_page_fill_normal(address, data)
       #define __boot_page_fill_alternate(address, data)
       #define __boot_page_fill_extended(address, data)
       #define __boot_page_erase_normal(address)
       #define __boot_page_erase_alternate(address)
       #define __boot_page_erase_extended(address)
       #define __boot_page_write_normal(address)
       #define __boot_page_write_alternate(address)
       #define __boot_page_write_extended(address)
       #define __boot_rww_enable()
       #define __boot_rww_enable_alternate()
       #define __boot_lock_bits_set(lock_bits)
       #define __boot_lock_bits_set_alternate(lock_bits)
       #define GET_LOW_FUSE_BITS   (0x0000)
       #define GET_LOCK_BITS   (0x0001)
       #define GET_EXTENDED_FUSE_BITS   (0x0002)
       #define GET_HIGH_FUSE_BITS   (0x0003)
       #define boot_lock_fuse_bits_get(address)
       #define __BOOT_SIGROW_READ   (_BV(__SPM_ENABLE) | _BV(SIGRD))
       #define boot_signature_byte_get(addr)
       #define boot_page_fill(address, data)   __boot_page_fill_normal(address, data)
       #define boot_page_erase(address)   __boot_page_erase_normal(address)
       #define boot_page_write(address)   __boot_page_write_normal(address)
       #define boot_rww_enable()   __boot_rww_enable()
       #define boot_lock_bits_set(lock_bits)   __boot_lock_bits_set(lock_bits)
       #define boot_page_fill_safe(address, data)
       #define boot_page_erase_safe(address)
       #define boot_page_write_safe(address)
       #define boot_rww_enable_safe()
       #define boot_lock_bits_set_safe(lock_bits)

Macro Definition Documentation

   #define __boot_lock_bits_set(lock_bits)
       Value:

       (__extension__({                                           \
           uint8_t value = (uint8_t)(~(lock_bits));                   __asm__ __volatile__                                       (                                                              "ldi r30, 1"                                           "ldi r31, 0"                                           "mov r0, %2"                                           "sts %0, %1"                                           "spm"                                                  :                                                          : "i" (_SFR_MEM_ADDR(__SPM_REG)),                            "r" ((uint8_t)(__BOOT_LOCK_BITS_SET)),                     "r" (value)                                              : "r0", "r30", "r31"                                   );                                                     }))

   #define __boot_lock_bits_set_alternate(lock_bits)
       Value:

       (__extension__({                                           \
           uint8_t value = (uint8_t)(~(lock_bits));                   __asm__ __volatile__                                       (                                                              "ldi r30, 1"                                           "ldi r31, 0"                                           "mov r0, %2"                                           "sts %0, %1"                                           "spm"                                                  ".word 0xffff"                                         "nop"                                                  :                                                          : "i" (_SFR_MEM_ADDR(__SPM_REG)),                            "r" ((uint8_t)(__BOOT_LOCK_BITS_SET)),                     "r" (value)                                              : "r0", "r30", "r31"                                   );                                                     }))

   #define __boot_page_erase_alternate(address)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "sts %0, %1"                                 "spm"                                        ".word 0xffff"                               "nop"                                        :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "r" ((uint8_t)(__BOOT_PAGE_ERASE)),              "z" ((uint16_t)(address))                  );                                           }))

   #define __boot_page_erase_extended(address)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "movw r30, %A3"                              "sts  %1, %C3"                               "sts %0, %2"                                 "spm"                                        :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "i" (_SFR_MEM_ADDR(RAMPZ)),                      "r" ((uint8_t)(__BOOT_PAGE_ERASE)),              "r" ((uint32_t)(address))                      : "r30", "r31"                               );                                           }))

   #define __boot_page_erase_normal(address)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "sts %0, %1"                                 "spm"                                        :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "r" ((uint8_t)(__BOOT_PAGE_ERASE)),              "z" ((uint16_t)(address))                  );                                           }))

   #define __boot_page_fill_alternate(address, data)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "movw  r0, %3"                               "sts %0, %1"                                 "spm"                                        ".word 0xffff"                               "nop"                                        "clr  r1"                                    :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "r" ((uint8_t)(__BOOT_PAGE_FILL)),               "z" ((uint16_t)(address)),                       "r" ((uint16_t)(data))                         : "r0"                                       );                                           }))

   #define __boot_page_fill_extended(address, data)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "movw  r0, %4"                               "movw r30, %A3"                              "sts %1, %C3"                                "sts %0, %2"                                 "spm"                                        "clr  r1"                                    :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "i" (_SFR_MEM_ADDR(RAMPZ)),                      "r" ((uint8_t)(__BOOT_PAGE_FILL)),               "r" ((uint32_t)(address)),                       "r" ((uint16_t)(data))                         : "r0", "r30", "r31"                         );                                           }))

   #define __boot_page_fill_normal(address, data)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "movw  r0, %3"                               "sts %0, %1"                                 "spm"                                        "clr  r1"                                    :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "r" ((uint8_t)(__BOOT_PAGE_FILL)),               "z" ((uint16_t)(address)),                       "r" ((uint16_t)(data))                         : "r0"                                       );                                           }))

   #define __boot_page_write_alternate(address)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "sts %0, %1"                                 "spm"                                        ".word 0xffff"                               "nop"                                        :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "r" ((uint8_t)(__BOOT_PAGE_WRITE)),              "z" ((uint16_t)(address))                  );                                           }))

   #define __boot_page_write_extended(address)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "movw r30, %A3"                              "sts %1, %C3"                                "sts %0, %2"                                 "spm"                                        :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "i" (_SFR_MEM_ADDR(RAMPZ)),                      "r" ((uint8_t)(__BOOT_PAGE_WRITE)),              "r" ((uint32_t)(address))                      : "r30", "r31"                               );                                           }))

   #define __boot_page_write_normal(address)
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "sts %0, %1"                                 "spm"                                        :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "r" ((uint8_t)(__BOOT_PAGE_WRITE)),              "z" ((uint16_t)(address))                  );                                           }))

   #define __boot_rww_enable()
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "sts %0, %1"                                 "spm"                                        :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "r" ((uint8_t)(__BOOT_RWW_ENABLE))         );                                           }))

   #define __boot_rww_enable_alternate()
       Value:

       (__extension__({                                     __asm__ __volatile__                             (                                                    "sts %0, %1"                                 "spm"                                        ".word 0xffff"                               "nop"                                        :                                                : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  "r" ((uint8_t)(__BOOT_RWW_ENABLE))         );                                           }))

Author

       Generated automatically by Doxygen for avr-libc from the source code.