C Microkernel Realtime eXecutive
Realtime Operating System for Cortex-M based microcontrollers
Loading...
Searching...
No Matches
application.h
1
#pragma once
2
3
#include <cmrx/sys/runtime.h>
4
#include <conf/kernel.h>
5
#include <arch/application.h>
6
#include <stddef.h>
7
8
#define __APPL_SYMBOL(application, symbol) application ## _ ## symbol
9
10
#define _OS_THREAD_CREATE(application, entrypoint, data, priority, core) \
11
CMRX_THREAD_AUTOCREATE_CONSTRUCTOR(application, entrypoint, data, priority, core)
12
32
#define VTABLE CMRX_VTABLE_SPECIFIER
33
39
#define OS_APPLICATION_MMIO_RANGE(application, from, to)\
40
static void * const __APPL_SYMBOL(application, mmio_start) = (void *) (from);\
41
static void * const __APPL_SYMBOL(application, mmio_end) = (void *) (to);\
42
static void * const __APPL_SYMBOL(application, mmio_2_start) = (void *) 0;\
43
static void * const __APPL_SYMBOL(application, mmio_2_end) = (void *) 0;\
44
_Static_assert(from == 0 || to == 0 || from % (to - from) == 0, "MMIO range not size-aligned")
45
55
#define OS_APPLICATION_MMIO_RANGES(application, from, to, from2, to2)\
56
static void * const __APPL_SYMBOL(application, mmio_start) = (void *) (from);\
57
static void * const __APPL_SYMBOL(application, mmio_end) = (void *) (to);\
58
static void * const __APPL_SYMBOL(application, mmio_2_start) = (void *) (from2);\
59
static void * const __APPL_SYMBOL(application, mmio_2_end) = (void *) (to2);\
60
_Static_assert(from == 0 || to == 0 || from % (to - from) == 0, "MMIO range 1 not size-aligned");\
61
_Static_assert(from == 0 || to == 0 || from2 == 0 || to2 == 0 || from2 % (to2 - from2) == 0, "MMIO range 2 not size-aligned")
62
63
70
#define OS_APPLICATION(application) \
71
CMRX_APPLICATION_INSTANCE_CONSTRUCTOR(application)
72
83
#ifdef CMRX_ARCH_SMP_SUPPORTED
84
#define OS_THREAD_CREATE(application, entrypoint, data, priority, core) \
85
_OS_THREAD_CREATE(application, entrypoint, data, priority, core)
86
#else
87
#define OS_THREAD_CREATE(application, entrypoint, data, priority) \
88
_OS_THREAD_CREATE(application, entrypoint, data, priority, 0)
89
#endif
90
91
include
cmrx
application.h
Generated by
1.9.8