diff --git a/Include/system/flash.h b/Include/system/flash.h new file mode 100644 --- /dev/null +++ b/Include/system/flash.h @@ -0,0 +1,46 @@ +#ifndef flash_h +#define flash_h + + + +// Flash Structure +typedef struct +{ + uint16_t Blank; + uint32_t readings[128]; + +}flash_t; +extern flash_t Flash; + + +// Flash States +enum flash_type +{ + Flash_blank = 1, + Flash_good_cksum = 2, + Flash_bad_cksum = 3, + Flash_error = 4, + Flash_default_value = 5, + Flash_write = 6 +}; + + +typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus; + +#define PageSize ((uint16_t)0x400) +//#define ENDADDR 0x0801FFFF // Medium density +#define ENDADDR 0x0807FFFF // High density + + +//------------------------------------------------------------------------------ +// Prototypes +//------------------------------------------------------------------------------ +void init_FLASH(void); +void flash_load(uint8_t flash_test); +void flash_erase(void); +void flash_read(void); +void flash_write(void); +void flash_checksum(void); + + +#endif // flash_h