123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef IAP_H
- #define IAP_H
- #define IAP_LOCATION 0x1fff1ff1
- typedef void ( *IAP )( uint32_t *, uint32_t * );
- typedef enum {ERR_OK = 0, ERR_HW, ERR_FS, ERR_FILEHD, ERR_FILECHK, ERR_FLASHHD, ERR_FLASHCRC, ERR_FLASHPREP, ERR_FLASHERASE, ERR_FLASH} FLASH_RES;
- typedef enum
- {
- /* 0*/ CMD_SUCCESS = 0,
- /* 1*/ INVALID_COMMAND,
- /* 2*/ SRC_ADDR_ERROR,
- /* 3*/ DST_ADDR_ERROR,
- /* 4*/ SRC_ADDR_NOT_MAPPED,
- /* 5*/ DST_ADDR_NOT_MAPPED,
- /* 6*/ COUNT_ERROR,
- /* 7*/ INVALID_SECTOR,
- /* 8*/ SECTOR_NOT_BLANK,
- /* 9*/ SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION,
- /*10*/ COMPARE_ERROR,
- /*11*/ BUSY
- } IAP_RES;
- #define FW_MAGIC (0x44534E53)
- typedef struct
- {
- uint32_t magic;
- uint32_t version;
- uint32_t size;
- uint32_t crc;
- uint32_t crcc;
- } sd2snes_fw_header;
- uint32_t calc_flash_crc( uint32_t start, uint32_t end );
- void test_iap( void );
- FLASH_RES check_flash( void );
- FLASH_RES flash_file( uint8_t *filename );
- #endif
|