From aff7a7ebce4dd0655b6c47a12eb51a41b9248f0a Mon Sep 17 00:00:00 2001 From: Ogneyar Date: Fri, 27 Sep 2024 14:01:45 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BD=D1=8F=D1=82=D0=B8=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D1=89=D0=B8=D1=82=D1=8B=20=D0=BE=D1=82=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bootloader.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/bootloader.c b/src/bootloader.c index 395b290..9626720 100644 --- a/src/bootloader.c +++ b/src/bootloader.c @@ -404,13 +404,12 @@ void SPIFI_Init() HAL_SPIFI_Reset(&spifi); /* В Winbond для выставления QE используется команда 0x01 в 1-м бите 2го статус регистра. */ + uint8_t sreg1 = HAL_SPIFI_W25_ReadSREG(&spifi, W25_SREG1); + if (sreg1 > 0x03) sreg1 = 0; // снятие защиты от записи (protection bits) uint8_t sreg2 = HAL_SPIFI_W25_ReadSREG(&spifi, W25_SREG2); - if (!(sreg2 & (1 << 1))) - { - uint8_t sreg1 = HAL_SPIFI_W25_ReadSREG(&spifi, W25_SREG1); - HAL_SPIFI_W25_WriteSREG(&spifi, sreg1, sreg2 | (1 << 1)); // ? HAL_SPIFI_W25_QuadEnable(&spifi); - } - + if (!(sreg2 & 0x02)) sreg2 |= 0x02; // установка бита QE (quad enable) + HAL_SPIFI_W25_WriteSREG(&spifi, sreg1, sreg2); + #if CHIP_MODE == 1 /* Переключение флеш-памяти в режим QPI, когда весь обмен четырёхпроводной */ const uint32_t cmd_qpi_enable =