Loading...
Searching...
No Matches
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
27#ifndef CPU_CONF_H
28#define CPU_CONF_H
29
30#include "atmega_regs_common.h"
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36#ifndef THREAD_EXTRA_STACKSIZE_PRINTF
37#define THREAD_EXTRA_STACKSIZE_PRINTF (64)
38#endif
39
48#ifndef THREAD_STACKSIZE_DEFAULT
49#define THREAD_STACKSIZE_DEFAULT (128)
50#endif
51
52/* keep THREAD_STACKSIZE_IDLE > THREAD_EXTRA_STACKSIZE_PRINTF
53 * to avoid not printing of debug in interrupts
54 */
55#ifndef THREAD_STACKSIZE_IDLE
56#if MODULE_XTIMER || MODULE_ZTIMER || MODULE_ZTIMER64
57/* For AVR no ISR stack is used, hence an IRQ will victimize the stack of
58 * whatever thread happens to be running with the IRQ kicks in. If more than
59 * trivial stuff is needed to be done in ISRs (e.g. when soft timers are used),
60 * the idle stack will overflow.
61 */
62#define THREAD_STACKSIZE_IDLE (192)
63#else
64#define THREAD_STACKSIZE_IDLE (96)
65#endif
66#endif
72#define PUF_SRAM_ATTRIBUTES __attribute__((used, section(".noinit")))
73
77#define HAVE_HEAP_STATS
78
82#define IRQ_API_INLINED (1)
83
84#ifndef DOXYGEN
85#define HAS_FLASH_UTILS_ARCH 1
86#endif
87
88#ifdef __cplusplus
89}
90#endif
91
92#endif /* CPU_CONF_H */
CMSIS style register definitions for the atmega family.