Subversion Repositories HomeAutomation

Rev

Rev 361 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. #ifndef FLASH_H_
  2. #define FLASH_H_
  3.  
  4. #define BOOTLOADER __attribute__ ((section (".bootloader")))
  5. #define FLASH_CODE __attribute__ ((section (".flash_code")))
  6.  
  7. //---------------------------------------------------------------------------
  8. // Function prototypes for flash modifying functions
  9.  
  10. // Only flash_flush_buffer uses the spm instruction and has to be in the
  11. // .bootloader section, but there is room for the other functions which
  12. // would otherwise use space in .text.
  13. void flash_init(uint8_t* buf) BOOTLOADER;
  14. void flash_write_word(uint16_t addr, uint16_t word) BOOTLOADER;
  15. void flash_flush_buffer(void) BOOTLOADER;
  16. // Tell gcc that flash_copy_data never returns, so it can be further optimized.
  17. void flash_copy_data(uint16_t src, uint16_t dst, uint16_t len) __attribute__ ((noreturn)) FLASH_CODE;
  18.  
  19. #endif /*FLASH_H_*/
  20.