C Microkernel Realtime eXecutive
Realtime Operating System for Cortex-M based microcontrollers
Loading...
Searching...
No Matches
application.h
1
#pragma once
2
3
/* ARM Cortex-M specific way to define something a vtable */
4
#define CMRX_VTABLE_SPECIFIER __attribute__((section(".vtable."))) const
5
6
/* File intentionally left blank */
7
#define CMRX_APPLICATION_INSTANCE_ATTRIBUTES __attribute__((used, section(".applications") ))
8
#define CMRX_THREAD_AUTOCREATE_ATTRIBUTES __attribute__((used, section(".thread_create") ))
9
10
#define CMRX_APPLICATION_INSTANCE_CONSTRUCTOR(application) \
11
extern void * __APPL_SYMBOL(application, data_start);\
12
extern void * __APPL_SYMBOL(application, data_end);\
13
extern void * __APPL_SYMBOL(application, bss_start);\
14
extern void * __APPL_SYMBOL(application, bss_end);\
15
extern void * __APPL_SYMBOL(application, vtable_start);\
16
extern void * __APPL_SYMBOL(application, vtable_end);\
17
extern void * __APPL_SYMBOL(application, __mmio_start);\
18
extern void * __APPL_SYMBOL(application, __mmio_end);\
19
extern void * __APPL_SYMBOL(application, shared_start);\
20
extern void * __APPL_SYMBOL(application, shared_end);\
21
\
22
CMRX_APPLICATION_INSTANCE_ATTRIBUTES const struct OS_process_definition_t __APPL_SYMBOL(application, instance) = {\
23
{\
24
{ &__APPL_SYMBOL(application, data_start), &__APPL_SYMBOL(application, data_end) },\
25
{ &__APPL_SYMBOL(application, bss_start), &__APPL_SYMBOL(application, bss_end) },\
26
{ __APPL_SYMBOL(application, mmio_start), __APPL_SYMBOL(application, mmio_end) },\
27
{ __APPL_SYMBOL(application, mmio_2_start), __APPL_SYMBOL(application, mmio_2_end) },\
28
{ &__APPL_SYMBOL(application, shared_start), &__APPL_SYMBOL(application, shared_end) }\
29
},\
30
{ &__APPL_SYMBOL(application, vtable_start), &__APPL_SYMBOL(application, vtable_end) }\
31
}
32
33
#define CMRX_THREAD_AUTOCREATE_CONSTRUCTOR(application, entrypoint, data, priority, core) \
34
CMRX_THREAD_AUTOCREATE_ATTRIBUTES const struct OS_thread_create_t __APPL_SYMBOL(application, thread_create_ ## entrypoint) = {\
35
&__APPL_SYMBOL(application, instance),\
36
entrypoint,\
37
data,\
38
priority,\
39
core\
40
}
src
os
arch
arm
cmsis
arch
application.h
Generated by
1.9.8