|
61 | 61 |
|
62 | 62 | #define FLASH_CONFIG_ADDRESS (0x00020000)
|
63 | 63 | #define FLASH_CONFIG_SIZE (0x00000400)
|
64 |
| -#define FLASH_DAL_CFG_SIZE (0x00000400) |
65 | 64 | #define FLASH_INTERFACE_SIZE (128*1024)
|
66 | 65 | #define FLASH_STORAGE_ADDRESS (0x00020400)
|
67 | 66 | #define FLASH_CFG_FILENAME "DATA BIN"
|
@@ -533,6 +532,16 @@ void board_vfs_stream_closed_hook()
|
533 | 532 | PORT_SetPinMux(COMBINED_SENSOR_INT_PORT, COMBINED_SENSOR_INT_PIN, kPORT_PinDisabledOrAnalog);
|
534 | 533 | }
|
535 | 534 |
|
| 535 | +bool vfs_user_magic_file_hook(const vfs_filename_t filename, bool *do_remount) |
| 536 | +{ |
| 537 | + if (!memcmp(filename, "ERASE ACT", sizeof(vfs_filename_t))) { |
| 538 | + // Erase last 128KB flash block |
| 539 | + FLASH_Erase(&g_flash, FLASH_CONFIG_ADDRESS, g_flash.PFlashTotalSize / g_flash.PFlashBlockCount, kFLASH_apiEraseKey); |
| 540 | + } |
| 541 | + |
| 542 | + return false; |
| 543 | +} |
| 544 | + |
536 | 545 | void vfs_user_build_filesystem_hook() {
|
537 | 546 | uint32_t file_size;
|
538 | 547 | error_t status;
|
@@ -935,7 +944,7 @@ static void i2c_write_flash_callback(uint8_t* pData, uint8_t size) {
|
935 | 944 | pI2cCommand->cmdData.data[3] << 0;
|
936 | 945 |
|
937 | 946 | /* Validate file size */
|
938 |
| - if (tempFileSize <= (FLASH_INTERFACE_SIZE - FLASH_CONFIG_SIZE - FLASH_DAL_CFG_SIZE)) { |
| 947 | + if (tempFileSize <= (FLASH_INTERFACE_SIZE - FLASH_CONFIG_SIZE)) { |
939 | 948 | gflashConfig.fileSize = tempFileSize;
|
940 | 949 | tempFileSize = __REV(gflashConfig.fileSize);
|
941 | 950 | i2c_fillBuffer((uint8_t*) pI2cCommand, 0, 1);
|
@@ -996,7 +1005,7 @@ static void i2c_write_flash_callback(uint8_t* pData, uint8_t size) {
|
996 | 1005 | i2c_fillBuffer((uint8_t*) pI2cCommand, 0, 1);
|
997 | 1006 | break;
|
998 | 1007 | case gFlashStorageSize_c:
|
999 |
| - pI2cCommand->cmdData.data[0] = (FLASH_INTERFACE_SIZE - FLASH_CONFIG_SIZE - FLASH_DAL_CFG_SIZE)/1024; |
| 1008 | + pI2cCommand->cmdData.data[0] = (FLASH_INTERFACE_SIZE - FLASH_CONFIG_SIZE)/1024; |
1000 | 1009 | i2c_fillBuffer((uint8_t*) pI2cCommand, 0, 2);
|
1001 | 1010 | break;
|
1002 | 1011 | case gFlashSectorSize_c:
|
|
0 commit comments