cpu_conf.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2014 Freie Universität Berlin, Hinnerk van Bruinehsen
3  * SPDX-FileCopyrightText: 2017 RWTH Aachen, Josua Arndt
4  * SPDX-FileCopyrightText: 2018 Matthew Blue
5  * SPDX-FileCopyrightText: 2023 Hugues Larrive
6  * SPDX-License-Identifier: LGPL-2.1-only
7  */
8 
9 #pragma once
10 
26 #include "atmega_regs_common.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 #ifndef THREAD_EXTRA_STACKSIZE_PRINTF
33 #define THREAD_EXTRA_STACKSIZE_PRINTF (64)
34 #endif
35 
44 #ifndef THREAD_STACKSIZE_DEFAULT
45 #define THREAD_STACKSIZE_DEFAULT (128)
46 #endif
47 
48 /* keep THREAD_STACKSIZE_IDLE > THREAD_EXTRA_STACKSIZE_PRINTF
49  * to avoid not printing of debug in interrupts
50  */
51 #ifndef THREAD_STACKSIZE_IDLE
52 #if MODULE_XTIMER || MODULE_ZTIMER || MODULE_ZTIMER64
53 /* For AVR no ISR stack is used, hence an IRQ will victimize the stack of
54  * whatever thread happens to be running with the IRQ kicks in. If more than
55  * trivial stuff is needed to be done in ISRs (e.g. when soft timers are used),
56  * the idle stack will overflow.
57  */
58 #define THREAD_STACKSIZE_IDLE (192)
59 #else
60 #define THREAD_STACKSIZE_IDLE (96)
61 #endif
62 #endif
68 #define PUF_SRAM_ATTRIBUTES __attribute__((used, section(".noinit")))
69 
73 #define HAVE_HEAP_STATS
74 
78 #define IRQ_API_INLINED (1)
79 
80 #ifndef DOXYGEN
81 #define HAS_FLASH_UTILS_ARCH 1
82 #endif
83 
84 #ifdef __cplusplus
85 }
86 #endif
87 
CMSIS style register definitions for the atmega family.