cpu_conf.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Freie Universität Berlin, Hinnerk van Bruinehsen
3  * 2017 RWTH Aachen, Josua Arndt
4  * 2018 Matthew Blue
5  * 2023 Hugues Larrive
6  *
7  * This file is subject to the terms and conditions of the GNU Lesser
8  * General Public License v2.1. See the file LICENSE in the top level
9  * directory for more details.
10  */
11 
12 #pragma once
13 
29 #include "atmega_regs_common.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 #ifndef THREAD_EXTRA_STACKSIZE_PRINTF
36 #define THREAD_EXTRA_STACKSIZE_PRINTF (64)
37 #endif
38 
47 #ifndef THREAD_STACKSIZE_DEFAULT
48 #define THREAD_STACKSIZE_DEFAULT (128)
49 #endif
50 
51 /* keep THREAD_STACKSIZE_IDLE > THREAD_EXTRA_STACKSIZE_PRINTF
52  * to avoid not printing of debug in interrupts
53  */
54 #ifndef THREAD_STACKSIZE_IDLE
55 #if MODULE_XTIMER || MODULE_ZTIMER || MODULE_ZTIMER64
56 /* For AVR no ISR stack is used, hence an IRQ will victimize the stack of
57  * whatever thread happens to be running with the IRQ kicks in. If more than
58  * trivial stuff is needed to be done in ISRs (e.g. when soft timers are used),
59  * the idle stack will overflow.
60  */
61 #define THREAD_STACKSIZE_IDLE (192)
62 #else
63 #define THREAD_STACKSIZE_IDLE (96)
64 #endif
65 #endif
71 #define PUF_SRAM_ATTRIBUTES __attribute__((used, section(".noinit")))
72 
76 #define HAVE_HEAP_STATS
77 
81 #define IRQ_API_INLINED (1)
82 
83 #ifndef DOXYGEN
84 #define HAS_FLASH_UTILS_ARCH 1
85 #endif
86 
87 #ifdef __cplusplus
88 }
89 #endif
90 
CMSIS style register definitions for the atmega family.