#endif\r
\r
/* Defines: */\r
- #define FLASH_BASE 0x00800000\r
- #define EPPROM_BASE 0x008C0000\r
- #define FUSE_BASE 0x008F0020\r
- #define DATAMEM_BASE 0x01000000\r
- #define PROD_SIGNATURE_BASE 0x008E0200\r
- #define USER_SIGNATURE_BASE 0x008E0400\r
+ #define NVM_BUSY_TIMEOUT_MS 200\r
\r
#define NVM_REG_ADDR0 0x00\r
#define NVM_REG_ADDR1 0x01\r
#define NVM_CMD_NOOP 0x00\r
#define NVM_CMD_CHIPERASE 0x40\r
#define NVM_CMD_READNVM 0x43\r
- #define NVM_CMD_LOADFLASHBUFF 0x23\r
- #define NVM_CMD_ERASEFLASHBUFF 0x26\r
+ #define NVM_CMD_LOADFLASHPAGEBUFF 0x23\r
+ #define NVM_CMD_ERASEFLASHPAGEBUFF 0x26\r
#define NVM_CMD_ERASEFLASHPAGE 0x2B\r
#define NVM_CMD_FLASHPAGEWRITE 0x2E\r
#define NVM_CMD_ERASEWRITEFLASH 0x2F\r
#define NVM_CMD_READEEPROM 0x06\r
\r
/* Function Prototypes: */\r
- void NVMTarget_SendNVMRegAddress(uint8_t Register);\r
- void NVMTarget_SendAddress(uint32_t AbsoluteAddress);\r
- bool NVMTarget_WaitWhileNVMBusBusy(void);\r
- void NVMTarget_WaitWhileNVMControllerBusy(void);\r
- uint32_t NVMTarget_GetMemoryCRC(uint8_t MemoryCommand);\r
- void NVMTarget_ReadMemory(uint32_t ReadAddress, uint8_t* ReadBuffer, uint16_t ReadSize);\r
+ void NVMTarget_SendNVMRegAddress(uint8_t Register);\r
+ void NVMTarget_SendAddress(uint32_t AbsoluteAddress);\r
+ bool NVMTarget_WaitWhileNVMControllerBusy(void);\r
+ bool NVMTarget_GetMemoryCRC(uint8_t CRCCommand, uint32_t* CRCDest);\r
+ bool NVMTarget_ReadMemory(uint32_t ReadAddress, uint8_t* ReadBuffer, uint16_t ReadSize);\r
+ bool NVMTarget_WriteByteMemory(uint8_t WriteCommand, uint32_t WriteAddress, uint8_t* WriteBuffer,\r
+ uint16_t WriteSize);\r
+ bool NVMTarget_WritePageMemory(uint8_t WriteBuffCommand, uint8_t EraseBuffCommand, uint8_t WritePageCommand,\r
+ uint8_t PageMode, uint32_t WriteAddress, uint8_t* WriteBuffer, uint16_t WriteSize);\r
+ bool NVMTarget_EraseMemory(uint8_t EraseCommand, uint32_t Address);\r
\r
#endif\r