ICARUS OS (Intelligent Cooperative Architecture for Real-time Unified Systems) 0.1.0
Preemptive Real-Time Operating System for ARM Cortex-M7
Loading...
Searching...
No Matches
Kernel Configuration

Core kernel parameters. More...

Macros

#define ICARUS_MAX_TASKS   128
 Maximum number of concurrent tasks.
 
#define ICARUS_MAX_SEMAPHORES   64
 Maximum number of semaphores.
 
#define ICARUS_MAX_MESSAGE_QUEUES   64
 Maximum number of message queues (pipes)
 
#define ICARUS_MAX_MESSAGE_BYTES   512
 Maximum bytes per message pipe buffer.
 
#define ICARUS_STACK_WORDS   512
 Stack size per task in 32-bit words.
 
#define ICARUS_DATA_WORDS   512
 Data region size per task in 32-bit words.
 
#define ICARUS_TICKS_PER_TASK   50
 Number of SysTick interrupts per task time slice.
 
#define ICARUS_MAX_TASK_NAME_LEN   32
 Maximum length of task name string (including null terminator)
 

Detailed Description

Core kernel parameters.

Macro Definition Documentation

◆ ICARUS_DATA_WORDS

#define ICARUS_DATA_WORDS   512

Data region size per task in 32-bit words.

Note
512 words = 2KB per task Must be even for 8-byte alignment (ARM ABI requirement)

Definition at line 91 of file config.h.

◆ ICARUS_MAX_MESSAGE_BYTES

#define ICARUS_MAX_MESSAGE_BYTES   512

Maximum bytes per message pipe buffer.

Note
Widened to 512 to support Software Bus and CFDP PDU routing. Each pipe uses this as the static buffer size regardless of the capacity set at pipe_init() time.

Definition at line 76 of file config.h.

◆ ICARUS_MAX_MESSAGE_QUEUES

#define ICARUS_MAX_MESSAGE_QUEUES   64

Maximum number of message queues (pipes)

Note
Each pipe uses ~140 bytes in DTCM 64 pipes = ~9KB DTCM usage

Definition at line 68 of file config.h.

◆ ICARUS_MAX_SEMAPHORES

#define ICARUS_MAX_SEMAPHORES   64

Maximum number of semaphores.

Note
Each semaphore uses 16 bytes in DTCM 64 semaphores = 1KB DTCM usage

Definition at line 61 of file config.h.

◆ ICARUS_MAX_TASK_NAME_LEN

#define ICARUS_MAX_TASK_NAME_LEN   32

Maximum length of task name string (including null terminator)

Definition at line 102 of file config.h.

◆ ICARUS_MAX_TASKS

#define ICARUS_MAX_TASKS   128

Maximum number of concurrent tasks.

Note
Each task requires STACK_WORDS * 4 bytes of stack memory With MAX_TASKS=128 and STACK_WORDS=512: 256KB stack pool
See also
STM32H750 has 512KB RAM_D1 available for stacks

Definition at line 54 of file config.h.

◆ ICARUS_STACK_WORDS

#define ICARUS_STACK_WORDS   512

Stack size per task in 32-bit words.

Note
256 words = 1KB per task 512 words = 2KB per task (increased for printf with floats) Must be even for 8-byte alignment (ARM ABI requirement)

Definition at line 84 of file config.h.

◆ ICARUS_TICKS_PER_TASK

#define ICARUS_TICKS_PER_TASK   50

Number of SysTick interrupts per task time slice.

Note
At 1ms SysTick, 50 = 50ms time slice

Definition at line 97 of file config.h.