Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove conditional TBL compilation logic #680

Closed
CDKnightNASA opened this issue May 6, 2020 · 3 comments · Fixed by #1132 or #1150
Closed

remove conditional TBL compilation logic #680

CDKnightNASA opened this issue May 6, 2020 · 3 comments · Fixed by #1132 or #1150
Assignees
Labels
bug deprecate docs This change only affects documentation. enhancement removed
Milestone

Comments

@CDKnightNASA
Copy link
Contributor

Is your feature request related to a problem? Please describe.
With #660 TBL is no longer optional; conditional code/compilation configuration should be removed.

Requester Info
Christopher.D.Knight@nasa.gov

@skliper
Copy link
Contributor

skliper commented May 6, 2020

Also remove the conditional description in the doxygen documentation:

cFE/docs/src/cfe_tbl.dox

Lines 31 to 62 in 8365a0c

/**
\page cfetblugdecouple How To Remove cFE Table Services
It is possible to build the CFE without including Table Services. This is only applicable if
the mission does not intend to use any CFS applications that require CFE type table services, or
if the mission intends to provide custom table services. If CFE Table Services are removed, the
CFE makefile will no longer try to make the Table Services application and the link makefile will
no longer include the Table Services object module in the CFE-CORE. Even if excluded from the build,
the Table Services source and header files will remain in the CFE source tree.
If EXCLUDE_CFE_TBL is defined (typically in the applicable *_platform_config.h file) Executive
services will not load or shut down table services. Note this option does not effect the build
and link of table services.
To remove table services from the build completely, remove "tbl" from the CFE_CORE_MODULES
in the cfe/fsw/cfe-core CMakeLists.txt directory (note this option also needs EXCLUDE_CFE_TBL defined
or executive services will try to load it).
Removing Table Services reduces the size of the CFE-CORE load file and also reduces the amount
of RAM memory required to load the cFE. Each development environment will have unique savings.
The numbers from an example default linux build are as follows:
Size of core cFE binary load file with Table Services: 963K
Size of core cFE binary load file w/o building Table services: 871K
RAM used after loading cFE with Table Services: 153K
RAM used after loading cFE w/o loading Table Services: 144M
Next: \ref cfetblugfaq <BR>
Prev: \ref cfetblugprocreset <BR>
Up To: \ref cfetblovr
**/

@skliper skliper added this to the 7.0.0 milestone May 6, 2020
@jphickey
Copy link
Contributor

Note - as part of fixing #950 I'm rearranging some of the cleanup logic, and the call to CFE_TBL_CleanUpApp() is currently conditional on EXCLUDE_CFE_TBL. I'd like to drop the #ifdef here as part of my upcoming change.

Here is the #ifdef I want to remove:

#ifndef EXCLUDE_CFE_TBL
CFE_TBL_CleanUpApp(AppId);
#endif

There are two other places it appears in cfe_es_objtab.c which would still need to be cleaned up, assuming we go through with this for 7.0

@skliper
Copy link
Contributor

skliper commented Nov 3, 2020

Note if we update to the services being modules, tbl removal/customization comes almost for free (still need to remove all the EXCLUDE_CFE_TBL occurrences). Could just make non-ops for the few calls that do exist, or customize/replace whatever is desired and replace the core module. Related to #972.

skliper added a commit to skliper/cFE that referenced this issue Jan 26, 2021
@skliper skliper self-assigned this Jan 26, 2021
skliper added a commit to skliper/cFE that referenced this issue Jan 27, 2021
@astrogeco astrogeco added bug deprecate docs This change only affects documentation. removed labels Feb 4, 2021
astrogeco added a commit that referenced this issue Feb 4, 2021
Fix #680, Remove table service exclusion logic
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug deprecate docs This change only affects documentation. enhancement removed
Projects
None yet
4 participants