|
|
@@ -539,6 +539,24 @@ static void MainTask(void *pvParameters)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //prevent the bit 3 of CFG3x from being 1.
|
|
|
+ result = sfud_read_register(sflash, 0x00800004, &status, SFUD_CMD_READ_REGISTER_INFINEON);
|
|
|
+ if (result != SFUD_SUCCESS) {
|
|
|
+ printf("sfud read CFR3N status register fail\n");
|
|
|
+ vTaskDelete(NULL);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //printf("CFR3N status:0x%x.\n", status);
|
|
|
+ if (status & (1 << 3)) {
|
|
|
+ status &= ~(1 << 3); //forceclear
|
|
|
+ result = sfud_write_register(sflash, 0x00000004, status, SFUD_CMD_WRITE_REGISTER_INFINEON);
|
|
|
+ if (result != SFUD_SUCCESS) {
|
|
|
+ printf("sfud write CFR3N status register fail\n");
|
|
|
+ vTaskDelete(NULL);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/* 为了兼容其它型号的nor flash,将dummy cycle由原默认值 8 配置为 4 (非易失)*/
|
|
|
//read CFRV2
|
|
|
result = sfud_read_register(sflash, 0x00000003, &status, SFUD_CMD_READ_REGISTER_INFINEON);
|