diff --git a/os/rt/include/chsys.h b/os/rt/include/chsys.h index 2449ad31c..eead5749e 100644 --- a/os/rt/include/chsys.h +++ b/os/rt/include/chsys.h @@ -52,6 +52,18 @@ /* Derived constants and error checks. */ /*===========================================================================*/ +#if defined(PORT_CORE0_BSS_SECTION) || defined(__DOXYGEN__) +#define CH_SYS_CORE0_ALLOCATE PORT_CORE0_BSS_SECTION +#else +#define CH_SYS_CORE0_ALLOCATE /* Default.*/ +#endif + +#if defined(PORT_CORE1_BSS_SECTION) || defined(__DOXYGEN__) +#define CH_SYS_CORE1_ALLOCATE PORT_CORE1_BSS_SECTION +#else +#define CH_SYS_CORE1_ALLOCATE /* Default.*/ +#endif + /*===========================================================================*/ /* Module data structures and types. */ /*===========================================================================*/ diff --git a/os/rt/src/chsys.c b/os/rt/src/chsys.c index 74013210b..f5e13fd59 100644 --- a/os/rt/src/chsys.c +++ b/os/rt/src/chsys.c @@ -47,12 +47,14 @@ ch_system_t ch_system; /** * @brief Core 0 OS instance. */ +CH_SYS_CORE0_ALLOCATE os_instance_t ch0; #if (CH_CFG_NO_IDLE_THREAD == FALSE) || defined(__DOXYGEN__) /** * @brief Working area for core 0 idle thread. */ +CH_SYS_CORE0_ALLOCATE static THD_WORKING_AREA(ch_c0_idle_thread_wa, PORT_IDLE_THREAD_STACK_SIZE); #if CH_DBG_ENABLE_STACK_CHECK == TRUE @@ -82,12 +84,14 @@ const os_instance_config_t ch_core0_cfg = { /** * @brief Core 1 OS instance. */ +CH_SYS_CORE1_ALLOCATE os_instance_t ch1; #if (CH_CFG_NO_IDLE_THREAD == FALSE) || defined(__DOXYGEN__) /** * @brief Working area for core 1 idle thread. */ +CH_SYS_CORE1_ALLOCATE static THD_WORKING_AREA(ch_c1_idle_thread_wa, PORT_IDLE_THREAD_STACK_SIZE); #endif