mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
76 lines
1.7 KiB
C
Executable File
76 lines
1.7 KiB
C
Executable File
/**
|
|
******************************************************************************
|
|
* @file mcu_cache.c
|
|
* @brief Implementation of MCU cache-handling functions
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* Copyright (c) 2024 STMicroelectronics.
|
|
* All rights reserved.
|
|
*
|
|
* This software is licensed under terms that can be found in the LICENSE file
|
|
* in the root directory of this software component.
|
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
|
|
#include "mcu_cache.h"
|
|
|
|
int mcu_cache_enable(void)
|
|
{
|
|
SCB_EnableDCache();
|
|
return 0;
|
|
}
|
|
|
|
int mcu_cache_disable(void)
|
|
{
|
|
SCB_DisableDCache();
|
|
return 0;
|
|
}
|
|
|
|
int mcu_cache_invalidate(void)
|
|
{
|
|
if(mcu_cache_enabled()) {
|
|
SCB_InvalidateDCache();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int mcu_cache_clean(void)
|
|
{
|
|
if(mcu_cache_enabled()) {
|
|
SCB_CleanDCache();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int mcu_cache_clean_invalidate(void)
|
|
{
|
|
if(mcu_cache_enabled()) {
|
|
SCB_CleanInvalidateDCache();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int mcu_cache_invalidate_range(uint32_t start_addr, uint32_t end_addr)
|
|
{
|
|
if(mcu_cache_enabled()) {
|
|
SCB_InvalidateDCache_by_Addr((volatile void *)start_addr, (int32_t)(end_addr - start_addr));
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int mcu_cache_clean_range(uint32_t start_addr, uint32_t end_addr) {
|
|
if(mcu_cache_enabled()) {
|
|
SCB_CleanDCache_by_Addr((volatile void *)start_addr, (int32_t)(end_addr - start_addr));
|
|
}
|
|
return 0;
|
|
}
|
|
int mcu_cache_clean_invalidate_range(uint32_t start_addr, uint32_t end_addr) {
|
|
if(mcu_cache_enabled()) {
|
|
SCB_CleanInvalidateDCache_by_Addr((volatile void *)start_addr, (int32_t)(end_addr - start_addr));
|
|
}
|
|
return 0;
|
|
}
|