diff --git a/components/spi_flash/flash_ops.c b/components/spi_flash/flash_ops.c index 0ecb6866d3..d3b696c96a 100644 --- a/components/spi_flash/flash_ops.c +++ b/components/spi_flash/flash_ops.c @@ -51,6 +51,7 @@ #include "esp_flash.h" #include "esp_attr.h" #include "bootloader_flash.h" +#include "esp_compiler.h" esp_rom_spiflash_result_t IRAM_ATTR spi_flash_write_encrypted_chip(size_t dest_addr, const void *src, size_t size); @@ -254,7 +255,9 @@ static inline void IRAM_ATTR spi_flash_guard_op_unlock(void) static void IRAM_ATTR spi_flash_os_yield(void) { #ifdef CONFIG_SPI_FLASH_YIELD_DURING_ERASE - vTaskDelay(CONFIG_SPI_FLASH_ERASE_YIELD_TICKS); + if (likely(xTaskGetSchedulerState() == taskSCHEDULER_RUNNING)) { + vTaskDelay(CONFIG_SPI_FLASH_ERASE_YIELD_TICKS); + } #endif } diff --git a/components/spi_flash/spi_flash_os_func_app.c b/components/spi_flash/spi_flash_os_func_app.c index c38f405acd..97033d1ab9 100644 --- a/components/spi_flash/spi_flash_os_func_app.c +++ b/components/spi_flash/spi_flash_os_func_app.c @@ -1,16 +1,8 @@ -// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ #include #include //For max/min @@ -24,7 +16,7 @@ #include "hal/spi_types.h" #include "sdkconfig.h" #include "esp_log.h" - +#include "esp_compiler.h" #include "esp_rom_sys.h" #include "driver/spi_common_internal.h" @@ -140,11 +132,13 @@ static IRAM_ATTR esp_err_t spi1_flash_os_check_yield(void *arg, uint32_t chip_st static IRAM_ATTR esp_err_t spi1_flash_os_yield(void *arg, uint32_t* out_status) { + if (likely(xTaskGetSchedulerState() == taskSCHEDULER_RUNNING)) { #ifdef CONFIG_SPI_FLASH_ERASE_YIELD_TICKS - vTaskDelay(CONFIG_SPI_FLASH_ERASE_YIELD_TICKS); + vTaskDelay(CONFIG_SPI_FLASH_ERASE_YIELD_TICKS); #else - vTaskDelay(1); + vTaskDelay(1); #endif + } on_spi1_yielded((spi1_app_func_arg_t*)arg); return ESP_OK; } diff --git a/tools/ci/check_copyright_ignore.txt b/tools/ci/check_copyright_ignore.txt index d70aa24366..e59d6c4da8 100644 --- a/tools/ci/check_copyright_ignore.txt +++ b/tools/ci/check_copyright_ignore.txt @@ -2450,7 +2450,6 @@ components/spi_flash/spi_flash_chip_issi.c components/spi_flash/spi_flash_chip_mxic.c components/spi_flash/spi_flash_chip_mxic_opi.c components/spi_flash/spi_flash_chip_winbond.c -components/spi_flash/spi_flash_os_func_app.c components/spi_flash/spi_flash_os_func_noos.c components/spi_flash/test/test_esp_flash.c components/spi_flash/test/test_flash_encryption.c