Part V: Kernel Configuration
This chapter details the available configuration options, covering system parameters, scheduling settings, memory protection, interrupt handling, and enabled services. QuantumRT settings are defined at compile-time and must be adjusted before building the kernel. Developers can:
Enable or disable kernel features (e.g., FPU support, caching).
Adjust system parameters (e.g., thread limits, total memory allocated for thread stacks).
Define memory protection settings (e.g., MPU regions).
Configuration Options
Configuration options for generic ARM Cortex-M3 microcontrollers.
Allows configuring processor core, MPU, FPU, System Timer, scheduler, interrupt handling, IPC and kernel.
- Copyright
Copyright (c) 2025 TNX Software Ltd. All rights reserved. Licensed under the terms of the QuantumRT Kernel License. the LICENSE file in the root of this package for details.
Defines
-
QRT_CFG_CPU_CORE
Options:
QRT_CPU_CORTEX_M0P
QRT_CPU_CORTEX_M3
QRT_CPU_CORTEX_M4
QRT_CPU_CORTEX_M7
QRT_CPU_CORTEX_M23
QRT_CPU_CORTEX_M33
QRT_CPU_CORTEX_M35P
QRT_CPU_CORTEX_M52
QRT_CPU_CORTEX_M55
QRT_CPU_CORTEX_M85
-
QRT_CFG_ICACHE_ENABLE
Enable instruction cache (if supported by CPU core)
Options:
0: Instruction cache disabled
1: Instruction cache enabled
-
QRT_CFG_DCACHE_ENABLE
Enable data cache (if supported by CPU core)
Options:
0: Data cache disabled
1: Data cache enabled
-
QRT_CFG_THREAD_LIMIT
Maximum number of threads.
-
QRT_CFG_CLEANUP_LIMIT
Maximum cleanup handlers per thread.
-
QRT_CFG_STACK_POOL_SIZE
Total stack pool size in bytes.
-
QRT_CFG_THREAD_STACK_DEFAULT
Default thread stack size in bytes.
-
QRT_CFG_THREAD_STACK_LIMIT_CHECK
Enable stack limit checking for threads (ARMv8-M only)
Options:
0: Stack limit checking disabled
1: Stack limit checking enabled
-
QRT_CFG_THREAD_NAME_ENABLE
Enable thread naming support.
Options:
0: Thread naming disabled
1: Thread naming enabled
-
QRT_CFG_SCHED_TIME_SLICE
Default time slice in milliseconds.
-
QRT_CFG_IDLE_STACK_SIZE
Idle thread stack size in bytes.
-
QRT_CFG_IDLE_SLEEP_ENABLE
Enable sleep mode in idle thread.
Options:
0: Sleep disabled (most clock signals stopped)
1: Sleep enabled (CPU enters sleep mode when idle)
-
QRT_CFG_IDLE_DEEP_SLEEP_ENABLE
Enable deep sleep mode in idle thread. Overrides configuration option QRT_CFG_IDLE_SLEEP_ENABLE.
Options:
0: Deep sleep disabled (all clock signals stopped)
1: Deep sleep enabled (CPU enters deep sleep mode when idle)
-
QRT_CFG_ATOMIC_DISABLE_IRQ
Atomic operation method.
Options:
0: Use LDREX/STREX instructions for atomic operations
1: Disable interrupts for atomic operations
-
QRT_CFG_MPU_ENABLE
Enable Memory Protection Unit support.
Options:
0: MPU disabled (all memory accessible)
1: MPU enabled (enforces memory access restrictions)
-
QRT_CFG_MPU_ENTRIES
Number of MPU regions to configure.
-
QRT_CFG_TZ_SECURE_WORLD
TrustZone configuration (ARMv8-M only)
Options:
0: Running in Non-Secure World
1: Running in Secure World
-
QRT_CFG_SEMAPHORE_ENABLE
Enable semaphore support.
Options:
0: Semaphores disabled
1: Semaphores enabled
-
QRT_CFG_MUTEX_ENABLE
Enable mutex support.
Options:
0: Mutexes disabled
1: Mutexes enabled
-
QRT_CFG_MUTEX_LIST_SIZE
Maximum mutexes a thread can hold simultaneously.
-
QRT_CFG_MESSAGE_QUEUE_ENABLE
Enable message queue support.
Options:
0: Message queues disabled
1: Message queues enabled
-
QRT_CFG_MESSAGE_QUEUE_LIMIT
Maximum number of message queues.
-
QRT_CFG_MESSAGE_QUEUE_NAME_LIMIT
Maximum message queue name length.
-
QRT_CFG_TIMER_ENABLE
Enable software timer support.
Options:
0: Software timers disabled
1: Software timers enabled
-
QRT_CFG_TIMER_LIMIT
Maximum number of software timers.
-
QRT_CFG_ERRNO_ENABLE
Enable errno support.
Options:
0: errno disabled
1: errno enabled
-
QRT_CFG_DEFER_ENABLE
Enable deferred calls.
Options:
0: Deferred calls disabled
1: Deferred calls enabled
-
QRT_CFG_DEFER_LIMIT
Maximum number of deferred interrupt calls.
-
QRT_CFG_SYSCALL_EXT_ENABLE
Enable System Call Extension support (requires MPU)
Options:
0: System Call Extensions disabled
1: System Call Extensions enabled
-
QRT_CFG_SYSCALL_EXT_LIMIT
Maximum number of registered System Call Extensions.
-
QRT_CFG_KERNEL_HEAP_SIZE
Kernel heap size in bytes.
-
QRT_CFG_FPU_ENABLE
Enable Floating-Point Unit support.
Options:
0: FPU disabled (no floating-point support)
1: FPU enabled (floating-point operations supported)
-
QRT_CFG_FPU_STACK_ENABLE
Enable FPU context stacking.
Options:
0: Never save FPU context (single-thread FPU use only)
1: Save FPU context on context switches (multi-thread FPU support)