Skip to content

Commit 0b90217

Browse files
authored
Merge pull request #2098 from nasa/integration-candidate
cFE Integration candidate: Caelum-rc4_dev9
2 parents 81416f8 + c3840ad commit 0b90217

11 files changed

+309
-147
lines changed

.github/workflows/build-documentation.yml

+27-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
checkout-and-cache:
2424
name: Custom checkout and cache for cFS documents
2525
needs: checks-for-duplicates
26-
if: ${{ needs.checks-for-duplicates.outputs.should_skip != 'true' }}
26+
if: ${{ needs.checks-for-duplicates.outputs.should_skip != 'true' || contains(github.ref, 'main') }}
2727
runs-on: ubuntu-latest
2828

2929
steps:
@@ -53,7 +53,7 @@ jobs:
5353
target: "[\"cfe-usersguide\"]"
5454
cache-key: cfs-doc-${{ github.run_number }}
5555
buildpdf: ${{ github.event_name == 'push' && contains(github.ref, 'main')}}
56-
deploy: ${{ github.event_name == 'push' && contains(github.ref, 'main')}}
56+
deploy: false # Note can't use cache with deploy, deploy in following job instead
5757

5858
build-mission-doc:
5959
needs: checkout-and-cache
@@ -65,3 +65,28 @@ jobs:
6565
cache-key: cfs-doc-${{ github.run_number }}
6666
deploy: false
6767
buildpdf: false # No need for mission pdf within cFE, done at bundle level
68+
69+
deploy-documentation:
70+
needs: build-cfe-usersguide
71+
if: ${{ github.event_name == 'push' && contains(github.ref, 'main')}}
72+
name: Deploy documentation to gh-pages
73+
runs-on: ubuntu-latest
74+
75+
steps:
76+
- uses: actions/checkout@v2
77+
78+
- uses: actions/download-artifact@v3
79+
80+
- name: Display structure of downloaded files
81+
run: ls -R
82+
83+
- name: Move pdfs to deployment directory
84+
run: mkdir deploy; mv */*.pdf deploy
85+
86+
- name: Deploy to GitHub
87+
uses: JamesIves/github-pages-deploy-action@3.7.1
88+
with:
89+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
90+
BRANCH: gh-pages
91+
FOLDER: deploy
92+
SINGLE_COMMIT: true

README.md

+10
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,16 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob
1010

1111
## Changelog
1212

13+
### Development Build: v7.0.0-rc4+dev127
14+
15+
- Update RTEMS toolchain files
16+
- Add support for fractional seconds in epoch
17+
- Add truncation warning suppression flags
18+
- Deploy docs from local workflow on main branch push
19+
- Remove redundant word in App Developers Guide
20+
- UT updates for alternate time configuration
21+
- See <https://github.com/nasa/cFE/pull/2098> and <https://github.com/nasa/cFS/pull/471>
22+
1323
### Development Build: v7.0.0-rc4+dev110
1424

1525
- Only increment SB InternalErrorCounter on errors

cmake/sample_defs/arch_build_custom.cmake

+10-8
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@
2626
# and uses the same warning options that are applied at the mission level.
2727
#
2828
add_compile_options(
29-
-std=c99 # Target the C99 standard (without gcc extensions)
30-
-pedantic # Issue all the warnings demanded by strict ISO C
31-
-Wall # Warn about most questionable operations
32-
-Wstrict-prototypes # Warn about missing prototypes
33-
-Wwrite-strings # Warn if not treating string literals as "const"
34-
-Wpointer-arith # Warn about suspicious pointer operations
35-
-Wcast-align # Warn about casts that increase alignment requirements
36-
-Werror # Treat warnings as errors (code should be clean)
29+
-std=c99 # Target the C99 standard (without gcc extensions)
30+
-pedantic # Issue all the warnings demanded by strict ISO C
31+
-Wall # Warn about most questionable operations
32+
-Wstrict-prototypes # Warn about missing prototypes
33+
-Wwrite-strings # Warn if not treating string literals as "const"
34+
-Wpointer-arith # Warn about suspicious pointer operations
35+
-Wcast-align # Warn about casts that increase alignment requirements
36+
-Werror # Treat warnings as errors (code should be clean)
37+
-Wno-format-truncation # Inhibit printf-style format truncation warnings
38+
-Wno-stringop-truncation # Inhibit string operation truncation warnings
3739
)
3840

cmake/sample_defs/sample_mission_cfg.h

+2
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,14 @@
180180
** Hour - 0 to 23
181181
** Minute - 0 to 59
182182
** Second - 0 to 59
183+
** Micros - 0 to 999999
183184
*/
184185
#define CFE_MISSION_TIME_EPOCH_YEAR 1980
185186
#define CFE_MISSION_TIME_EPOCH_DAY 1
186187
#define CFE_MISSION_TIME_EPOCH_HOUR 0
187188
#define CFE_MISSION_TIME_EPOCH_MINUTE 0
188189
#define CFE_MISSION_TIME_EPOCH_SECOND 0
190+
#define CFE_MISSION_TIME_EPOCH_MICROS 0
189191

190192
/**
191193
** \cfetimecfg Time File System Factor

cmake/sample_defs/toolchain-i686-rtems4.11.cmake

+48-31
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,63 @@ set(CMAKE_SYSTEM_NAME RTEMS)
1414
set(CMAKE_SYSTEM_PROCESSOR i386)
1515
set(CMAKE_SYSTEM_VERSION 4.11)
1616

17+
# The RTEMS BSP that will be used for this build
18+
set(RTEMS_BSP "pc686")
19+
20+
# these settings are specific to cFE/OSAL and determines which
21+
# abstraction layers are built when using this toolchain
22+
SET(CFE_SYSTEM_PSPNAME pc-rtems)
23+
SET(OSAL_SYSTEM_BSPTYPE pc-rtems)
24+
SET(OSAL_SYSTEM_OSTYPE rtems)
25+
26+
# This is for version specific RTEMS ifdefs needed by the OSAL and PSP
27+
ADD_DEFINITIONS(-DOS_RTEMS_4_DEPRECATED)
28+
29+
# RTEMS_DYNAMIC_LOAD definition:
30+
# - Set to FALSE for platforms that create a RTEMS executable and link it
31+
# to the cFE core.
32+
# - Set to TRUE for platforms that expect the cFE core to to be dynamically
33+
# loaded into an existing runtime image.
34+
# This is tied to the OSAL-BSP and PSP implementation so generally cannot
35+
# be switched on a specific OSAL/PSP platform without modifications.
36+
set(RTEMS_DYNAMIC_LOAD FALSE)
37+
38+
set(RTEMS_BSP_C_FLAGS "-march=i686 -mtune=i686 -fno-common")
39+
set(RTEMS_BSP_CXX_FLAGS ${RTEMS_BSP_C_FLAGS})
40+
set(RTEMS_BSP_SPECS_FLAGS "-specs bsp_specs")
41+
42+
# This define is deprecated and will be removed
43+
ADD_DEFINITIONS(-D_RTEMS_411_)
44+
45+
# Info regarding the RELOCADDR:
46+
#+--------------------------------------------------------------------------+
47+
#| Set the value of RELOCADDR to the address where you want your image to
48+
#| load. If you'll be using GRUB to load the images it will have to be >=
49+
#| 0x100000 (1024K). If you are using NetBoot to load the images it can be
50+
#| >= 0x10000 (64K) AND <= 0x97C00 (607K) OR >= 0x100000 (1024K). The memory
51+
#| top is of course another limit. Make sure there is enough space before the
52+
#| upper memory limits for the image and the memory allocated by it to fit.
53+
#| Make sure the value you choose is aligned to 4 bytes.
54+
#+--------------------------------------------------------------------------+
55+
set(RTEMS_RELOCADDR 0x00100000)
56+
57+
# Exception handling is very iffy. These two options disable eh_frame creation.
58+
set(CMAKE_C_COMPILE_OPTIONS_PIC -fno-exceptions -fno-asynchronous-unwind-tables)
59+
60+
#+---------------------------------------------------------------------------+
61+
#| Common RTEMS toolchain statements
62+
#+---------------------------------------------------------------------------+
1763
# The TOOLS and BSP are allowed to be installed in different locations.
1864
# If the README was followed they will both be installed under $HOME
1965
# By default it is assumed the BSP is installed to the same directory as the tools
20-
SET(RTEMS_TOOLS_PREFIX "$ENV{HOME}/rtems-${CMAKE_SYSTEM_VERSION}" CACHE PATH
66+
SET(RTEMS_TOOLS_PREFIX "$ENV{HOME}/rtems-${CMAKE_SYSTEM_VERSION}" CACHE PATH
2167
"RTEMS tools install directory")
22-
SET(RTEMS_BSP_PREFIX "${RTEMS_TOOLS_PREFIX}" CACHE PATH
68+
SET(RTEMS_BSP_PREFIX "${RTEMS_TOOLS_PREFIX}" CACHE PATH
2369
"RTEMS BSP install directory")
2470

25-
# The BSP that will be used for this build
26-
set(RTEMS_BSP "pc686")
27-
2871
# specify the cross compiler - adjust accord to compiler installation
29-
# This uses the compiler-wrapper toolchain that buildroot produces
3072
SET(SDKHOSTBINDIR "${RTEMS_TOOLS_PREFIX}/bin")
3173
set(TARGETPREFIX "${CMAKE_SYSTEM_PROCESSOR}-rtems${CMAKE_SYSTEM_VERSION}-")
32-
set(RTEMS_BSP_C_FLAGS "-march=i686 -mtune=i686 -fno-common")
33-
set(RTEMS_BSP_CXX_FLAGS ${RTEMS_BSP_C_FLAGS})
3474

3575
SET(CMAKE_C_COMPILER "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}gcc")
3676
SET(CMAKE_CXX_COMPILER "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}g++")
@@ -42,9 +82,6 @@ SET(CMAKE_AR "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}ar")
4282
SET(CMAKE_OBJDUMP "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}objdump")
4383
SET(CMAKE_OBJCOPY "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}objcopy")
4484

45-
# Exception handling is very iffy. These two options disable eh_frame creation.
46-
set(CMAKE_C_COMPILE_OPTIONS_PIC -fno-exceptions -fno-asynchronous-unwind-tables)
47-
4885
# search for programs in the build host directories
4986
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
5087

@@ -53,23 +90,3 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
5390
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
5491

5592
SET(CMAKE_PREFIX_PATH /)
56-
57-
# these settings are specific to cFE/OSAL and determines which
58-
# abstraction layers are built when using this toolchain
59-
SET(CFE_SYSTEM_PSPNAME pc-rtems)
60-
SET(OSAL_SYSTEM_BSPTYPE pc-rtems)
61-
SET(OSAL_SYSTEM_OSTYPE rtems)
62-
63-
# Info regarding the RELOCADDR:
64-
#+--------------------------------------------------------------------------+
65-
#| Set the value of RELOCADDR to the address where you want your image to
66-
#| load. If you'll be using GRUB to load the images it will have to be >=
67-
#| 0x100000 (1024K). If you are using NetBoot to load the images it can be
68-
#| >= 0x10000 (64K) AND <= 0x97C00 (607K) OR >= 0x100000 (1024K). The memory
69-
#| top is of course another limit. Make sure there is enough space before the
70-
#| upper memory limits for the image and the memory allocated by it to fit.
71-
#| Make sure the value you choose is aligned to 4 bytes.
72-
#+--------------------------------------------------------------------------+
73-
set(RTEMS_RELOCADDR 0x00100000)
74-
75-

cmake/sample_defs/toolchain-i686-rtems5.cmake

+52-39
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,67 @@ set(CMAKE_SYSTEM_NAME RTEMS)
1414
set(CMAKE_SYSTEM_PROCESSOR i386)
1515
set(CMAKE_SYSTEM_VERSION 5)
1616

17+
# The RTEMS BSP that will be used for this build
18+
set(RTEMS_BSP "pc686")
19+
20+
# these settings are specific to cFE/OSAL and determines which
21+
# abstraction layers are built when using this toolchain
22+
SET(CFE_SYSTEM_PSPNAME pc-rtems)
23+
SET(OSAL_SYSTEM_BSPTYPE pc-rtems)
24+
SET(OSAL_SYSTEM_OSTYPE rtems)
25+
26+
# This is for version specific RTEMS ifdefs needed by the OSAL and PSP
27+
ADD_DEFINITIONS(-DOS_RTEMS_5)
28+
29+
# RTEMS_DYNAMIC_LOAD definition:
30+
# - Set to FALSE for platforms that create a RTEMS executable and link it
31+
# to the cFE core.
32+
# - Set to TRUE for platforms that expect the cFE core to to be dynamically
33+
# loaded into an existing runtime image.
34+
# This is tied to the OSAL-BSP and PSP implementation so generally cannot
35+
# be switched on a specific OSAL/PSP platform without modifications.
36+
set(RTEMS_DYNAMIC_LOAD FALSE)
37+
38+
set(RTEMS_BSP_C_FLAGS "-march=i686 -mtune=i686 -fno-common")
39+
set(RTEMS_BSP_CXX_FLAGS ${RTEMS_BSP_C_FLAGS})
40+
set(RTEMS_BSP_SPECS_FLAGS "-specs bsp_specs")
41+
42+
# This define is deprecated and will be removed
43+
ADD_DEFINITIONS(-D_RTEMS_5_)
44+
45+
# Info regarding the RELOCADDR:
46+
#+--------------------------------------------------------------------------+
47+
#| Set the value of RELOCADDR to the address where you want your image to
48+
#| load. If you'll be using GRUB to load the images it will have to be >=
49+
#| 0x100000 (1024K). If you are using NetBoot to load the images it can be
50+
#| >= 0x10000 (64K) AND <= 0x97C00 (607K) OR >= 0x100000 (1024K). The memory
51+
#| top is of course another limit. Make sure there is enough space before the
52+
#| upper memory limits for the image and the memory allocated by it to fit.
53+
#| Make sure the value you choose is aligned to 4 bytes.
54+
#+--------------------------------------------------------------------------+
55+
set(RTEMS_RELOCADDR 0x00100000)
56+
57+
# Exception handling is very iffy. These two options disable eh_frame creation.
58+
set(CMAKE_C_COMPILE_OPTIONS_PIC -fno-exceptions -fno-asynchronous-unwind-tables)
59+
60+
# Link libraries needed for a RTEMS 5+ executable
61+
# This was handled by the bsp_specs file in 4.11
62+
set(LINK_LIBRARIES "-lrtemsdefaultconfig -lrtemsbsp -lrtemscpu")
63+
64+
#+---------------------------------------------------------------------------+
65+
#| Common RTEMS toolchain statements
66+
#+---------------------------------------------------------------------------+
1767
# The TOOLS and BSP are allowed to be installed in different locations.
1868
# If the README was followed they will both be installed under $HOME
1969
# By default it is assumed the BSP is installed to the same directory as the tools
20-
SET(RTEMS_TOOLS_PREFIX "$ENV{HOME}/rtems-${CMAKE_SYSTEM_VERSION}" CACHE PATH
70+
SET(RTEMS_TOOLS_PREFIX "$ENV{HOME}/rtems-${CMAKE_SYSTEM_VERSION}" CACHE PATH
2171
"RTEMS tools install directory")
22-
SET(RTEMS_BSP_PREFIX "${RTEMS_TOOLS_PREFIX}" CACHE PATH
72+
SET(RTEMS_BSP_PREFIX "${RTEMS_TOOLS_PREFIX}" CACHE PATH
2373
"RTEMS BSP install directory")
2474

25-
# The BSP that will be used for this build
26-
set(RTEMS_BSP "pc686")
27-
2875
# specify the cross compiler - adjust accord to compiler installation
29-
# This uses the compiler-wrapper toolchain that buildroot produces
3076
SET(SDKHOSTBINDIR "${RTEMS_TOOLS_PREFIX}/bin")
3177
set(TARGETPREFIX "${CMAKE_SYSTEM_PROCESSOR}-rtems${CMAKE_SYSTEM_VERSION}-")
32-
set(RTEMS_BSP_C_FLAGS "-march=i686 -mtune=i686 -fno-common")
33-
set(RTEMS_BSP_CXX_FLAGS ${RTEMS_BSP_C_FLAGS})
34-
3578

3679
SET(CMAKE_C_COMPILER "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}gcc")
3780
SET(CMAKE_CXX_COMPILER "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}g++")
@@ -43,13 +86,6 @@ SET(CMAKE_AR "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}ar")
4386
SET(CMAKE_OBJDUMP "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}objdump")
4487
SET(CMAKE_OBJCOPY "${RTEMS_TOOLS_PREFIX}/bin/${TARGETPREFIX}objcopy")
4588

46-
# Exception handling is very iffy. These two options disable eh_frame creation.
47-
set(CMAKE_C_COMPILE_OPTIONS_PIC -fno-exceptions -fno-asynchronous-unwind-tables)
48-
49-
# Link libraries needed for an RTEMS 5.x executable
50-
# This was handled by the bsp_specs file in 4.11
51-
set(LINK_LIBRARIES "-lrtemsdefaultconfig -lrtemsbsp -lrtemscpu")
52-
5389
# search for programs in the build host directories
5490
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
5591

@@ -58,26 +94,3 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
5894
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
5995

6096
SET(CMAKE_PREFIX_PATH /)
61-
62-
# these settings are specific to cFE/OSAL and determines which
63-
# abstraction layers are built when using this toolchain
64-
SET(CFE_SYSTEM_PSPNAME pc-rtems)
65-
SET(OSAL_SYSTEM_BSPTYPE pc-rtems)
66-
SET(OSAL_SYSTEM_OSTYPE rtems)
67-
68-
# This is for RTEMS 5 specific ifdefs needed by the OSAL
69-
ADD_DEFINITIONS(-D_RTEMS_5_)
70-
71-
# Info regarding the RELOCADDR:
72-
#+--------------------------------------------------------------------------+
73-
#| Set the value of RELOCADDR to the address where you want your image to
74-
#| load. If you'll be using GRUB to load the images it will have to be >=
75-
#| 0x100000 (1024K). If you are using NetBoot to load the images it can be
76-
#| >= 0x10000 (64K) AND <= 0x97C00 (607K) OR >= 0x100000 (1024K). The memory
77-
#| top is of course another limit. Make sure there is enough space before the
78-
#| upper memory limits for the image and the memory allocated by it to fit.
79-
#| Make sure the value you choose is aligned to 4 bytes.
80-
#+--------------------------------------------------------------------------+
81-
set(RTEMS_RELOCADDR 0x00100000)
82-
83-

0 commit comments

Comments
 (0)