mirror of https://github.com/ARMmbed/mbed-os.git
Rework MPU use option
Make the option positively named, and as it is a platform config option make sure it only affects platform code. HAL functions still remain available even if platform is told not to use them.pull/9064/head
parent
2463596779
commit
81acc28c3f
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#if ((__ARM_ARCH_7M__ == 1U) || (__ARM_ARCH_7EM__ == 1U) || (__ARM_ARCH_6M__ == 1U)) && \
|
#if ((__ARM_ARCH_7M__ == 1U) || (__ARM_ARCH_7EM__ == 1U) || (__ARM_ARCH_6M__ == 1U)) && \
|
||||||
defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) && \
|
defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) && \
|
||||||
!defined(MBED_MPU_CUSTOM) && !MBED_CONF_PLATFORM_DISABLE_MPU
|
!defined(MBED_MPU_CUSTOM)
|
||||||
|
|
||||||
#if !DEVICE_MPU
|
#if !DEVICE_MPU
|
||||||
#error "Device has v7m MPU but it is not enabled. Add 'MPU' to device_has in targets.json"
|
#error "Device has v7m MPU but it is not enabled. Add 'MPU' to device_has in targets.json"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#if ((__ARM_ARCH_8M_BASE__ == 1U) || (__ARM_ARCH_8M_MAIN__ == 1U)) && \
|
#if ((__ARM_ARCH_8M_BASE__ == 1U) || (__ARM_ARCH_8M_MAIN__ == 1U)) && \
|
||||||
defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) && \
|
defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) && \
|
||||||
!defined(MBED_MPU_CUSTOM) && !MBED_CONF_PLATFORM_DISABLE_MPU
|
!defined(MBED_MPU_CUSTOM)
|
||||||
|
|
||||||
#if !DEVICE_MPU
|
#if !DEVICE_MPU
|
||||||
#error "Device has v8m MPU but it is not enabled. Add 'MPU' to device_has in targets.json"
|
#error "Device has v8m MPU but it is not enabled. Add 'MPU' to device_has in targets.json"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if DEVICE_MPU && !MBED_CONF_PLATFORM_DISABLE_MPU
|
#if DEVICE_MPU
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \defgroup hal_mpu MPU hal
|
* \defgroup hal_mpu MPU hal
|
||||||
|
|
|
@ -129,9 +129,9 @@
|
||||||
"help": "Setting this to true enables auto-reboot on a fatal error.",
|
"help": "Setting this to true enables auto-reboot on a fatal error.",
|
||||||
"value": false
|
"value": false
|
||||||
},
|
},
|
||||||
"disable-mpu": {
|
"use-mpu": {
|
||||||
"help": "Disable the MPU to save rom.",
|
"help": "Use the MPU if available to fault execution from RAM and writes to ROM. Can be disabled to reduce image size.",
|
||||||
"value": false
|
"value": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"target_overrides": {
|
"target_overrides": {
|
||||||
|
|
|
@ -16,12 +16,11 @@
|
||||||
|
|
||||||
#include "platform/mbed_mpu_mgmt.h"
|
#include "platform/mbed_mpu_mgmt.h"
|
||||||
#include "platform/mbed_critical.h"
|
#include "platform/mbed_critical.h"
|
||||||
#include "platform/mbed_error.h"
|
|
||||||
#include "platform/mbed_assert.h"
|
#include "platform/mbed_assert.h"
|
||||||
#include "hal/mpu_api.h"
|
#include "hal/mpu_api.h"
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
#if DEVICE_MPU && !MBED_CONF_PLATFORM_DISABLE_MPU
|
#if DEVICE_MPU && MBED_CONF_PLATFORM_USE_MPU
|
||||||
|
|
||||||
static uint16_t mem_xn_lock;
|
static uint16_t mem_xn_lock;
|
||||||
static uint16_t mem_wn_lock;
|
static uint16_t mem_wn_lock;
|
||||||
|
|
|
@ -23,16 +23,17 @@
|
||||||
#ifndef MBED_MPU_MGMT_H
|
#ifndef MBED_MPU_MGMT_H
|
||||||
#define MBED_MPU_MGMT_H
|
#define MBED_MPU_MGMT_H
|
||||||
|
|
||||||
#include "hal/sleep_api.h"
|
|
||||||
#include "mbed_toolchain.h"
|
#include "mbed_toolchain.h"
|
||||||
#include "hal/ticker_api.h"
|
#include "hal/mpu_api.h"
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if DEVICE_MPU && !MBED_CONF_PLATFORM_DISABLE_MPU
|
#if (DEVICE_MPU && MBED_CONF_PLATFORM_USE_MPU) || defined(DOXYGEN_ONLY)
|
||||||
|
|
||||||
|
#define mbed_mpu_manager_init() mbed_mpu_init()
|
||||||
|
|
||||||
/** Lock ram execute never mode off
|
/** Lock ram execute never mode off
|
||||||
*
|
*
|
||||||
|
@ -84,6 +85,8 @@ void mbed_mpu_manager_unlock_rom_write(void);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
#define mbed_mpu_manager_init() (void)0
|
||||||
|
|
||||||
#define mbed_mpu_manager_lock_ram_execution() (void)0
|
#define mbed_mpu_manager_lock_ram_execution() (void)0
|
||||||
|
|
||||||
#define mbed_mpu_manager_unlock_ram_execution() (void)0
|
#define mbed_mpu_manager_unlock_ram_execution() (void)0
|
||||||
|
|
|
@ -76,7 +76,7 @@
|
||||||
#include "mbed_toolchain.h"
|
#include "mbed_toolchain.h"
|
||||||
#include "mbed_boot.h"
|
#include "mbed_boot.h"
|
||||||
#include "mbed_error.h"
|
#include "mbed_error.h"
|
||||||
#include "mpu_api.h"
|
#include "mbed_mpu_mgmt.h"
|
||||||
|
|
||||||
int main(void);
|
int main(void);
|
||||||
static void mbed_cpy_nvic(void);
|
static void mbed_cpy_nvic(void);
|
||||||
|
@ -87,7 +87,7 @@ uint32_t mbed_stack_isr_size = 0;
|
||||||
|
|
||||||
void mbed_init(void)
|
void mbed_init(void)
|
||||||
{
|
{
|
||||||
mbed_mpu_init();
|
mbed_mpu_manager_init();
|
||||||
mbed_cpy_nvic();
|
mbed_cpy_nvic();
|
||||||
mbed_sdk_init();
|
mbed_sdk_init();
|
||||||
mbed_rtos_init();
|
mbed_rtos_init();
|
||||||
|
|
Loading…
Reference in New Issue