Nexus Embedded Platform 0.1.0
Statically assembled reusable embedded mechanisms
Loading...
Searching...
No Matches
freertos_mpu.h
Go to the documentation of this file.
1
6#ifndef NEXUS_OS_FREERTOS_MPU_H
7#define NEXUS_OS_FREERTOS_MPU_H
8
9#include "FreeRTOS.h"
10#include "nexus/core/status.h"
12#include "task.h"
13
14#if configENABLE_MPU != 1 || portUSING_MPU_WRAPPERS != 1
15#error "MPU task lifecycle requires an explicit maintained MPU kernel profile"
16#endif
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
27
34
41typedef struct {
42 StaticTask_t control;
43 TaskHandle_t handle;
45
55typedef struct {
56 TaskFunction_t entry;
57 void* context;
59 const char* name;
60 StackType_t* stack;
62 UBaseType_t priority;
66
79 const nx_freertos_mpu_config_t* config)
80 PRIVILEGED_FUNCTION;
81
92
93#ifdef __cplusplus
94}
95#endif
96
97#endif /* NEXUS_OS_FREERTOS_MPU_H */
nx_freertos_mpu_access_t
User data is nonexecuting normal RAM with only these permissions.
@ NX_FREERTOS_MPU_READ_ONLY
@ NX_FREERTOS_MPU_READ_WRITE
nx_result_t nx_freertos_mpu_task_delete(nx_freertos_mpu_task_t *task)
Delete another isolated task after external users quiesce.
nx_result_t nx_freertos_mpu_task_start(nx_freertos_mpu_task_t *task, const nx_freertos_mpu_config_t *config)
Create an unprivileged task from exact caller-owned storage.
Narrow pointer-free services for MPU-isolated user tasks.
Small vendor-independent result vocabulary.
nx_result_t
Operation result; success at submission means admission only.
Definition status.h:21
Immutable creation inputs, borrowed for this call only.
const nx_freertos_mpu_region_t * regions
A caller-selected exact region, copied during task creation.
nx_freertos_mpu_access_t access
Complete caller-owned protected task metadata.