11#include "stm32h7xx_hal.h"
27#define BSP_ITCM_BASE 0x00000000UL
28#define BSP_ITCM_SIZE (64 * 1024)
31#define BSP_DTCM_BASE 0x20000000UL
32#define BSP_DTCM_SIZE (128 * 1024)
35#define BSP_DTCM_OBC_BASE 0x20010000UL
36#define BSP_DTCM_OBC_SIZE (64 * 1024)
38#define BSP_RAM_D1_BASE 0x24000000UL
39#define BSP_RAM_D1_SIZE (512 * 1024)
42#define BSP_RAM_D2_BASE 0x30000000UL
43#define BSP_RAM_D2_SIZE (288 * 1024)
46#define BSP_RAM_D3_BASE 0x38000000UL
47#define BSP_RAM_D3_SIZE (64 * 1024)
50#define BSP_FLASH_BASE 0x08000000UL
51#define BSP_FLASH_SIZE (128 * 1024)
54#define BSP_QSPI_BASE 0x90000000UL
55#define BSP_QSPI_SIZE (8 * 1024 * 1024)
58#define BSP_PERIPH_BASE 0x40000000
59#define BSP_PERIPH_SIZE (512 * 1024 * 1024)
64#define MPU_REGION_ITCM_BASE MPU_REGION_NUMBER0
65#define MPU_REGION_QSPI_FLASH MPU_REGION_NUMBER1
66#define MPU_REGION_FLASH MPU_REGION_NUMBER2
67#define MPU_REGION_DTCM_OBC MPU_REGION_NUMBER3
68#define MPU_REGION_TASK_DATA MPU_REGION_NUMBER4
69#define MPU_REGION_DTCM MPU_REGION_NUMBER5
70#define MPU_REGION_RAM_D1 MPU_REGION_NUMBER6
71#define MPU_REGION_PERIPH MPU_REGION_NUMBER7
78#define BYTES_TO_MPU_SIZE(bytes) ( \
79 (bytes) == 32 ? MPU_REGION_SIZE_32B : \
80 (bytes) == 64 ? MPU_REGION_SIZE_64B : \
81 (bytes) == 128 ? MPU_REGION_SIZE_128B : \
82 (bytes) == 256 ? MPU_REGION_SIZE_256B : \
83 (bytes) == 512 ? MPU_REGION_SIZE_512B : \
84 (bytes) == 1024 ? MPU_REGION_SIZE_1KB : \
85 (bytes) == 2048 ? MPU_REGION_SIZE_2KB : \
86 (bytes) == 4096 ? MPU_REGION_SIZE_4KB : \
87 (bytes) == 8192 ? MPU_REGION_SIZE_8KB : \
88 (bytes) == 16384 ? MPU_REGION_SIZE_16KB : \
89 (bytes) == 32768 ? MPU_REGION_SIZE_32KB : \
90 (bytes) == 65536 ? MPU_REGION_SIZE_64KB : \
91 (bytes) == 131072 ? MPU_REGION_SIZE_128KB : \
92 (bytes) == 262144 ? MPU_REGION_SIZE_256KB : \
93 (bytes) == 524288 ? MPU_REGION_SIZE_512KB : \
100#define TASK_DATA_SIZE_BYTES ((ICARUS_DATA_WORDS) * 4u)
101#define TASK_DATA_SIZE_MPU MPU_REGION_SIZE_2KB
103#ifndef SKIP_STATIC_ASSERTS
105 "TASK_DATA_SIZE_BYTES changed — update TASK_DATA_SIZE_MPU");
ICARUS OS Configuration Header.
void MPU_ConfigureTaskData(uint32_t task_data_base)
Configure MPU Region 4 for current task's data region.
void MPU_Config(void)
Configure Memory Protection Unit regions.
#define TASK_DATA_SIZE_BYTES
Task data region size for MPU configuration.