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

cFE Integration Candidate: 2020-12-08 #1045

Merged
merged 13 commits into from
Dec 9, 2020
Merged

cFE Integration Candidate: 2020-12-08 #1045

merged 13 commits into from
Dec 9, 2020

Conversation

astrogeco
Copy link
Contributor

@astrogeco astrogeco commented Dec 9, 2020

Describe the contribution

Fix #914, Add toolchain file for RTEMS 5.1/pc-rtems
Fix #1009, Refactor message header alignment and "raw" types to fit a clear pattern
Fix #1021, use void* for pool buffer pointers

Testing performed
See https://github.com/nasa/cFS/pull/160/checks

Expected behavior changes

PR #1015 - Adds CFE_SB_TransmitMsg, CFE_SB_TransmitBuffer, CFE_SB_ReceiveBuffer

  • Main change is to utilize CFE_SB_Buffer_t and CFE_MSG_Message_t in a consistent manner to facilitate alignment
  • Deprecates multiple CFE_SB_* items
  • Redefines CFE_MSG_Size_t as size_t to minimize duplicated work and facilitate transition to size_t

PR #1025 - Use a generic void* as the interface type for the pool buffer pointers. This reduces the need for local type casting in the apps and makes it generally easier to use.

PR #1031 - Remove reference to CEXP in RTEMS 4.11 i686 toolchain. Add an RTEMS 5.1 i686 toolchain file.

System(s) tested on
Ubuntu 18.04

Additional context
See nasa/cFS#160

Third party code
None

Contributor Info - All information REQUIRED for consideration of pull request
@acudmore
@skliper
@jphickey

Alan Cudmore and others added 12 commits November 25, 2020 11:43
Using void* instead of uint32* here makes the interface
easier to use and may avoid some nuisance alignment warnings.
- Documentation updates for applying the alignment pattern
- Added Cmd to all command types
- Updated example code
- Converted Syslog to SysLog for consistency
- CFE_SB_RcvMsg now CFE_SB_ReceiveBuffer
- Replaced references to deprecated CFE_SB API's with MSG API's
- CFE_MSG_Message_t no longer worst case alignment
- CFE_MSG_CommandHeader_t and CFE_MSG_TelemetryHeader_t now
  contain the base message type, CFE_MSG_Message_t
- Fixed size type issue in CFE_MSG_ComputeChecksum
- Replaced CFE_SB_TlmHdr_t and CFE_SB_CmdHdr_t with
  CFE_MSG_CommandHeader_t and CFE_MSG_TelemetryHeader_t
- Using CFE_SB_Buffer_t where appropriate
- Replaced CFE_SB_CMD_HDR_SIZE and CFE_SB_TLM_HDR_SIZE
  with sizeof the appropriate type
- Deprecated CFE_SB_SendMsg, CFE_SB_RcvMsg stubs
- Added CFE_SB_TransmitBuffer, CFE_SB_TransmitMsg, and
  CFE_SB_ReceiveBuffer stubs
- Replaced CFE_SB_SendMsg and CFE_SB_PassMsg with CFE_SB_TransmitMsg
- Replaced CFE_SB_ZeroCopySend and CFE_SB_ZeroCopyPass with
  CFE_SB_TransmitBuffer
- Replaced CFE_SB_RcvMsg with CFE_SB_ReceiveBuffer
- Used CFE_SB_Buffer_t and CFE_MSG_Message_t where appropriate
- Added Cmd to all command types
- Changed Syslog to SysLog for consistency
- Removed "see also" blocks in documentation, APIs are already grouped
  and these typically don't add anything useful (simplifies maintenance)
- Added CFE_SB_TransmitMsg, CFE_SB_TransmitBuffer,
  CFE_SB_ReceiveBuffer (partial #1019 fix)
- Replace CFE_SB_RcvMsg with CFE_SB_ReceiveBuffer
- Deprecated CFE_SB_SendMsg, CFE_SB_PassMsg, CFE_SB_RcvMsg
  CFE_SB_ZeroCopyPass, CFE_SB_ZeroCopySend
- Use CFE_SB_Buffer_t for receiving and casting to command types
- Use CFE_MSG_CommandHeader_t and CFE_MSG_TelemetryHeader_t in
  command and telemetry type definitions
- Use CFE_SB_TransmitMsg to copy the command and telemetry
  into a CFE_SB_Buffer_t and send it where needed
- Avoids need to create send buffers within the app (or union
  the packet types with CFE_SB_Buffer_t)
- Eliminates references to CFE_SB_CmdHdr_t and CFE_SB_TlmHdr_t
  that formerly enforced alignment since these had potential
  to change the actual packet sizes
- No need to cast to CFE_MSG_Message_t anywhere since it's
  available in the CFE_SB_Buffer_t union
- CFE_MSG_Size_t redefined as size_t to simplify future
  transition
- Replaced Syslog with SysLog for consistency
- Added Cmd to all command typedefs
- Replaced CFE_SB_CMD_HDR_SIZE and CFE_SB_TLM_HDR_SIZE
  with sizeof the appropriate type
Fix# 1009, Apply consistent alignment pattern
…files

Fix #914, Add toolchain file for RTEMS 5.1/pc-rtems
@astrogeco astrogeco marked this pull request as ready for review December 9, 2020 20:57
@astrogeco astrogeco merged commit 88b99db into main Dec 9, 2020
@skliper skliper added this to the 7.0.0 milestone Sep 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants