Select one of the symbols to view example projects that use it.
 
Outline
#include <stdarg.h>
#include "sdkconfig.h"
#include "esp_flash.h"
#include "esp_attr.h"
#include "esp_rom_sys.h"
#include "esp_cpu.h"
#include "rom/cache.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "soc/soc_caps.h"
start(void *)
end(void *)
delay_us(void *, uint32_t)
get_temp_buffer_not_supported(void *, size_t, size_t *)
esp_flash_noos_functions
esp_flash_app_disable_os_functions(esp_flash_t *)
Files
loading (1/5)...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/spi_flash/spi_flash_os_func_noos.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #include <stdarg.h> #include "sdkconfig.h" #include "esp_flash.h" #include "esp_attr.h" #include "esp_rom_sys.h" #include "esp_cpu.h" #include "rom/cache.h" #include "hal/cache_hal.h" #include "hal/cache_ll.h" #include "soc/soc_caps.h"10 includes static IRAM_ATTR esp_err_t start(void *arg) { #if SOC_BRANCH_PREDICTOR_SUPPORTED //branch predictor will start cache request as well esp_cpu_branch_prediction_disable();/* ... */ #endif #if CONFIG_IDF_TARGET_ESP32 Cache_Read_Disable(0); Cache_Read_Disable(1);/* ... */ #else cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); #endif return ESP_OK; }{ ... } static IRAM_ATTR esp_err_t end(void *arg) { #if CONFIG_IDF_TARGET_ESP32 Cache_Read_Enable(0); Cache_Read_Enable(1);/* ... */ #else cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); #endif #if SOC_BRANCH_PREDICTOR_SUPPORTED esp_cpu_branch_prediction_enable(); #endif return ESP_OK; }{ ... } static IRAM_ATTR esp_err_t delay_us(void *arg, uint32_t us) { esp_rom_delay_us(us); return ESP_OK; }{ ... } // Currently when the os is not up yet, the caller is supposed to call esp_flash APIs with proper // buffers. IRAM_ATTR void* get_temp_buffer_not_supported(void* arg, size_t reqest_size, size_t* out_size) { return NULL; }{ ... } const DRAM_ATTR esp_flash_os_functions_t esp_flash_noos_functions = { .start = start, .end = end, .delay_us = delay_us, .region_protected = NULL, /* the caller is supposed to call esp_flash_read/esp_flash_write APIs with buffers in DRAM */ .get_temp_buffer = NULL, .release_temp_buffer = NULL, .yield = NULL, }{...}; esp_err_t IRAM_ATTR esp_flash_app_disable_os_functions(esp_flash_t* chip) { chip->os_func = &esp_flash_noos_functions; return ESP_OK; }{ ... }
Details