X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Favr%2Fdrv%2Fflash_avr.h;h=ecbe1b772cccda9f8e038b10b13eaa75e0e27e5f;hb=911d2706a86d326786bfe721dcc3d63aeade7f28;hp=5115d10befde2431238b2b82c6808b5401ce028d;hpb=e2f204cc87c855c1bca96b96b9ebb71397a818b9;p=bertos.git diff --git a/bertos/cpu/avr/drv/flash_avr.h b/bertos/cpu/avr/drv/flash_avr.h index 5115d10b..ecbe1b77 100644 --- a/bertos/cpu/avr/drv/flash_avr.h +++ b/bertos/cpu/avr/drv/flash_avr.h @@ -30,60 +30,78 @@ * * --> * - * \brief Self programming routines (interface). - * - * \version $Id$ * \author Francesco Sacchi * \author Daniele Basile + * + * \brief AVR Internal flash read/write driver. + * + * */ -#ifndef DRV_FLASH_AVR_H -#define DRV_FLASH_AVR_H +#ifndef FLASH_AT91_H +#define FLASH_AT91_H + +#include #include -#include +#include + +#include + + +#define FLASH_PAGE_SIZE SPM_PAGESIZE /** * Definition of type for avr flash module. */ -typedef uint16_t avr_page_t; +typedef uint16_t page_t; +/* Forward declaration */ +struct Flash; /** * FlashAvr KFile context structure. + * DEPREACTED STRUCTURE! + * Use Flash instead + * + * \{ */ -typedef struct KFileFlashAvr +typedef struct FlashAvr { - KFile fd; ///< File descriptor. - /** - * Current buffered page. - */ - avr_page_t curr_page; + * File descriptor. + */ + KFile fd; + /** + * Flag for checking if current page is modified. + */ + bool page_dirty; -} KFileFlashAvr; - + /** + * Current buffered page. + */ + page_t curr_page; + /** + * Temporary buffer cointaing data block to + * write on flash. + */ + uint8_t page_buf[SPM_PAGESIZE]; +} FlashAvr; +/* \} */ -/** - * ID for FlashAvr - */ -#define KFT_FLASHAVR MAKE_ID('F', 'L', 'A', 'V') +void flash_hw_init(struct Flash *fd); /** - * Convert + ASSERT from generic KFile to KFileFlashAvr. + * WARNING! + * This function is DEPRECADED! + * use the flash module instead. */ -INLINE KFileFlashAvr * KFILEFLASHAVR(KFile *fd) +INLINE void flash_avr_init(struct FlashAvr *fd) { - ASSERT(fd->_type == KFT_FLASHAVR); - return (KFileFlashAvr *)fd; + flash_hw_init((struct Flash *)fd); } - -void flash_avr_init(struct KFileFlashAvr *fd); - - - #endif /* DRV_FLASH_AVR_H */