Browse Source

Add simpler method for relocating functions to RAM. (#21804)

pull/22545/head
Nick Brassel 5 months ago
committed by GitHub
parent
commit
3a5e4253fc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 0 deletions
  1. +9
    -0
      platforms/arm_atsam/_util.h
  2. +10
    -0
      platforms/avr/_util.h
  3. +9
    -0
      platforms/chibios/_util.h
  4. +4
    -0
      quantum/util.h

+ 9
- 0
platforms/arm_atsam/_util.h View File

@ -0,0 +1,9 @@
// Copyright 2023 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RESIDENT_IN_RAM(funcname) __attribute__((section(".ramfunc." #funcname), noinline)) funcname
#if __has_include_next("_util.h")
# include_next "_util.h"
#endif

+ 10
- 0
platforms/avr/_util.h View File

@ -0,0 +1,10 @@
// Copyright 2023 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// AVR can't actually run anything from RAM, so just no-op the define.
#define RESIDENT_IN_RAM(funcname) funcname
#if __has_include_next("_util.h")
# include_next "_util.h"
#endif

+ 9
- 0
platforms/chibios/_util.h View File

@ -0,0 +1,9 @@
// Copyright 2023 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RESIDENT_IN_RAM(funcname) __attribute__((section(".ram0_init." #funcname), noinline)) funcname
#if __has_include_next("_util.h")
# include_next "_util.h"
#endif

+ 4
- 0
quantum/util.h View File

@ -50,3 +50,7 @@
#if !defined(PACKED)
# define PACKED __attribute__((__packed__))
#endif
#if __has_include("_util.h")
# include "_util.h" /* Include the platform's _util.h */
#endif

Loading…
Cancel
Save