88 lines
2.8 KiB
C
Executable File
88 lines
2.8 KiB
C
Executable File
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
|
|
****************************************************************************/
|
|
#ifndef LIB_MMON_H
|
|
#define LIB_MMON_H
|
|
|
|
/**
|
|
* @addtogroup LIB
|
|
* @{
|
|
*/
|
|
|
|
#define MMON_PRV_EXEC (0x01)
|
|
#define MMON_PRV_WRITE (0x02)
|
|
#define MMON_PRV_READ (0x04)
|
|
|
|
/**
|
|
* @addtogroup MMON
|
|
* @{
|
|
* This section introduces the memory monitor module's enum, structure, functions and how to use this module.
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief This function is to enable memory range access.
|
|
* @param region The PMP region to configure.
|
|
* @param start is memeory start address.
|
|
* @param size is memory size.
|
|
* @return bool_t is true if pmp configure successfully.
|
|
*/
|
|
bool_t mmon_disable_address_access(uint32_t region,uint32_t start, uint32_t size);
|
|
|
|
/**
|
|
* @brief This function is to disable memory range access.
|
|
* @param start is memeory start address.
|
|
* @param size is memory size.
|
|
* @param privilege is permission required to enable.
|
|
* @return bool_t is true if pmp configure successfully.
|
|
*/
|
|
bool_t mmon_set_address_access(uint32_t start, uint32_t size, uint32_t privilege);
|
|
|
|
/**
|
|
* @brief This function is to config memory range access, support all
|
|
* address-matching mode of the PMP.
|
|
* This function will force clear the original configuration
|
|
*
|
|
* @param region is the PMP region to configure.
|
|
* @param mode is PMP mode to configure.
|
|
* @param start is memeory start address.
|
|
* @param size_end is memory size(PMP_OFF/PMP_NA4/PMP_NAPOT) or
|
|
* memeory end address(PMP_TOR).
|
|
* @param privilege is permission required to enable.
|
|
* @return bool_t is true if pmp configure successfully.
|
|
*/
|
|
bool_t mmon_set_mode_address_access(uint32_t region, enum pmp_address_mode mode,
|
|
uint32_t start, uint32_t size_end,
|
|
uint32_t privilege);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/**
|
|
* @}
|
|
* addtogroup MMON
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
* addtogroup LIB
|
|
*/
|
|
|
|
#endif //LIB_MMON_H
|
|
|