| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /*
- * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #pragma once
- #include <stddef.h>
- #include <stdbool.h>
- #include "esp_err.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * @brief Check if the pointer is on PSRAM
- *
- * @param[in] p The pointer to check
- *
- * @return
- * - False: the pointer isn't on PSRAM, or PSRAM isn't initialised successfully
- * - True: the pointer is on PSRAM
- */
- bool esp_psram_check_ptr_addr(const void *p);
- /**
- * @brief Add the initialized PSRAM to the heap allocator.
- *
- * @return
- * - ESP_OK: On success
- * Other error type, see `heap_caps_add_region`.
- */
- esp_err_t esp_psram_extram_add_to_heap_allocator(void);
- /**
- * @brief Reserve a pool of internal memory for specific DMA/internal allocations
- *
- * @param size Size of reserved pool in bytes
- *
- * @return
- * - ESP_OK: On success
- * - ESP_ERR_NO_MEM: When no memory available for pool
- */
- esp_err_t esp_psram_extram_reserve_dma_pool(size_t size);
- /**
- * @brief Memory test for PSRAM. Should be called after PSRAM is initialized and
- * (in case of a dual-core system) the app CPU is online. This test overwrites the
- * memory with crap, so do not call after e.g. the heap allocator has stored important
- * stuff in PSRAM.
- *
- * @return true on success, false on failed memory test
- */
- bool esp_psram_extram_test(void);
- #if CONFIG_IDF_TARGET_ESP32
- /**
- * @brief Force a writeback of the data in the PSRAM cache. This is to be called whenever
- * cache is disabled, because disabling cache on the ESP32 discards the data in the PSRAM
- * cache.
- *
- * This is meant for use from within the SPI flash code.
- */
- void esp_psram_extram_writeback_cache(void);
- #endif
- #ifdef __cplusplus
- }
- #endif
|