Skip to content

Commit 6b0bb0a

Browse files
committed
Force inline critical_section_{enter,exit}
Otherwise it may end up in flash when we want it to follow the caller's placement (maybe in RAM.)
1 parent 950a68f commit 6b0bb0a

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/common/pico_sync/include/pico/critical_section.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#ifndef _PICO_CRITICAL_SECTION_H
88
#define _PICO_CRITICAL_SECTION_H
99

10+
#include "pico.h"
1011
#include "pico/lock_core.h"
1112

1213
#ifdef __cplusplus
@@ -58,7 +59,7 @@ void critical_section_init_with_lock_num(critical_section_t *crit_sec, uint lock
5859
*
5960
* \param crit_sec Pointer to critical_section structure
6061
*/
61-
static inline void critical_section_enter_blocking(critical_section_t *crit_sec) {
62+
__force_inline static void critical_section_enter_blocking(critical_section_t *crit_sec) {
6263
crit_sec->save = spin_lock_blocking(crit_sec->spin_lock);
6364
}
6465

@@ -67,7 +68,7 @@ static inline void critical_section_enter_blocking(critical_section_t *crit_sec)
6768
*
6869
* \param crit_sec Pointer to critical_section structure
6970
*/
70-
static inline void critical_section_exit(critical_section_t *crit_sec) {
71+
__force_inline static void critical_section_exit(critical_section_t *crit_sec) {
7172
spin_unlock(crit_sec->spin_lock, crit_sec->save);
7273
}
7374

0 commit comments

Comments
 (0)