Loading...
Searching...
No Matches
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
25
26#include "atmega_regs_common.h"
27
28#ifdef __cplusplus
29extern "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
64
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.