From f06a43a7eab34bbe15b0af461e5e9aaa67c4f79f Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Tue, 4 Jun 2019 14:16:40 +0000 Subject: [PATCH] Improved OSLIB initialization. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12826 27425a3e-05d8-49a3-a47f-9c15f0e5edd8 --- os/nil/src/ch.c | 18 +++--------------- os/oslib/include/chlib.h | 22 ++++++++++++++++++++++ os/rt/src/chsys.c | 10 +--------- readme.txt | 1 + 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/os/nil/src/ch.c b/os/nil/src/ch.c index 0d2c1aa79..3d0f74eb8 100644 --- a/os/nil/src/ch.c +++ b/os/nil/src/ch.c @@ -274,24 +274,12 @@ void chDbgCheckClassS(void) { void chSysInit(void) { const thread_config_t *tcp; + /* Optional library modules.*/ + _oslib_init(); + /* Architecture layer initialization.*/ port_init(); - /* Memory core initialization, if enabled.*/ -#if CH_CFG_USE_MEMCORE == TRUE - _core_init(); -#endif - - /* Heap initialization, if enabled.*/ -#if CH_CFG_USE_HEAP == TRUE - _heap_init(); -#endif - - /* Factory initialization, if enabled.*/ -#if CH_CFG_USE_FACTORY == TRUE - _factory_init(); -#endif - /* System initialization hook.*/ CH_CFG_SYSTEM_INIT_HOOK(); diff --git a/os/oslib/include/chlib.h b/os/oslib/include/chlib.h index b092ba56e..d8cd6a313 100644 --- a/os/oslib/include/chlib.h +++ b/os/oslib/include/chlib.h @@ -212,6 +212,28 @@ #include "chpipes.h" #include "chfactory.h" +/*===========================================================================*/ +/* Module inline functions. */ +/*===========================================================================*/ + +/** + * @brief Initialization of all library modules. + * + * @notapi + */ +static inline void _oslib_init(void) { + +#if CH_CFG_USE_MEMCORE == TRUE + _core_init(); +#endif +#if CH_CFG_USE_HEAP == TRUE + _heap_init(); +#endif +#if CH_CFG_USE_FACTORY == TRUE + _factory_init(); +#endif +} + #endif /* CHLIB_H */ /** @} */ diff --git a/os/rt/src/chsys.c b/os/rt/src/chsys.c index 346a8ba78..0a65cba29 100644 --- a/os/rt/src/chsys.c +++ b/os/rt/src/chsys.c @@ -102,6 +102,7 @@ void chSysInit(void) { _scheduler_init(); _vt_init(); _trace_init(); + _oslib_init(); #if CH_DBG_SYSTEM_STATE_CHECK == TRUE ch.dbg.isr_cnt = (cnt_t)0; @@ -110,15 +111,6 @@ void chSysInit(void) { #if CH_CFG_USE_TM == TRUE _tm_init(); #endif -#if CH_CFG_USE_MEMCORE == TRUE - _core_init(); -#endif -#if CH_CFG_USE_HEAP == TRUE - _heap_init(); -#endif -#if CH_CFG_USE_FACTORY == TRUE - _factory_init(); -#endif #if CH_DBG_STATISTICS == TRUE _stats_init(); #endif diff --git a/readme.txt b/readme.txt index 385ba7e8a..21b9becfc 100644 --- a/readme.txt +++ b/readme.txt @@ -74,6 +74,7 @@ ***************************************************************************** *** Next *** +- LIB: Improved OSLIB initialization. - NEW: Lots of style fixes thanks to the new tool. - NEW: Code style checker tool added. - NEW: Added and embedded flash driver model in HAL. Added an implementation