Skip to content

Commit

Permalink
Clean up cFE App Dev Guide
Browse files Browse the repository at this point in the history
- Remove old document
- Add title
- Arrange table of contents for consistency
  • Loading branch information
skliper committed Mar 9, 2020
1 parent dca3042 commit 5602bff
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 104 deletions.
Binary file removed docs/cFE Application Developers Guide.doc
Binary file not shown.
210 changes: 106 additions & 104 deletions docs/cFE Application Developers Guide.md
Original file line number Diff line number Diff line change
@@ -1,121 +1,123 @@
# cFE Application Developer's Guide

Table of Contents
=================
-----------------

* [Table of Contents](#table-of-contents)
* [1. Introduction](#1-introduction)
* [1.1 Scope](#11-scope)
* [1.2 Background](#12-background)
* [1.3 Applicable Documents](#13-applicable-documents)
* [1.4 Acronyms](#14-acronyms)
* [1.5 Glossary of Terms](#15-glossary-of-terms)
* [1.1 Scope](#11-scope)
* [1.2 Background](#12-background)
* [1.3 Applicable Documents](#13-applicable-documents)
* [1.4 Acronyms](#14-acronyms)
* [1.5 Glossary of Terms](#15-glossary-of-terms)
* [2. cFE Application Development Environment](#2-cfe-application-development-environment)
* [2.1 Directory Tree](#21-directory-tree)
* [2.2 Header Files](#22-header-files)
* [2.1 Directory Tree](#21-directory-tree)
* [2.2 Header Files](#22-header-files)
* [3. cFE Deployment Environment](#3-cfe-deployment-environment)
* [3.1 Assumed On-Board Directory Structure](#31-assumed-on-board-directory-structure)
* [3.1 Assumed On-Board Directory Structure](#31-assumed-on-board-directory-structure)
* [4. cFE Application Architecture](#4-cfe-application-architecture)
* [4.1 Application Model](#41application-model)
* [4.1.1 "Software Only" Application](#411-software-only-application)
* [4.1.2 "Hardware Servicing" Application](#412-hardware-servicing-application)
* [4.1.3 Multi-threaded Applications](#413-multi-threaded-applications)
* [4.2 Best Practices](#42-best-practices)
* [4.2.1 cFS Application Template](#421-cfs-application-template)
* [4.2.2 Avoid "Endian-ness" Dependencies](#422-avoid-endian-ess-dependencies)
* [4.2.3 Avoid Inter-Task Dependencies](#423-avoid-inter-task-dependencies)
* [4.2.4 Consolidate Resource Allocations](#424-consolidate-resource-allocations)
* [4.1 Application Model](#41application-model)
* [4.1.1 "Software Only" Application](#411-software-only-application)
* [4.1.2 "Hardware Servicing" Application](#412-hardware-servicing-application)
* [4.1.3 Multi-threaded Applications](#413-multi-threaded-applications)
* [4.2 Best Practices](#42-best-practices)
* [4.2.1 cFS Application Template](#421-cfs-application-template)
* [4.2.2 Avoid "Endian-ness" Dependencies](#422-avoid-endian-ess-dependencies)
* [4.2.3 Avoid Inter-Task Dependencies](#423-avoid-inter-task-dependencies)
* [4.2.4 Consolidate Resource Allocations](#424-consolidate-resource-allocations)
* [5. Executive Services Interface](#5-executive-services-interface)
* [5.1 Application Registration](#51-application-registration)
* [5.2 Application Names and IDs](#52-application-names-and-ids)
* [5.3 Child Task Control](#53-child-task-control)
* [5.4 Application Start-Up Types](#54-application-start-up-types)
* [5.5 Shared Libraries](#55-shared-libraries)
* [5.6 Obtaining OS and Platform Information](#56-obtaining-os-and-platform-information)
* [5.7 OS Queues, Semaphores and Mutexes](#57-os-queues-semaphores-and-mutexes)
* [5.7.1 Queues](#571-queues)
* [5.7.2 Binary Semaphores](#572-binary-semaphores)
* [5.7.2.1 Binary Semaphore Functions](#5721-binary-semaphore-functions)
* [5.7.3 Counting Semaphores](#573-counting-semaphores)
* [5.7.3.1 Counting Semaphore Functions](#5731-counting-semaphore-functions)
* [5.7.4 Mutex Semaphores](#574-mutex-semaphores)
* [5.7.4.1 Mutex Functions](#5741-mutex-functions)
* [5.8 Interrupt Handling](#58-interrupt-handling)
* [5.9 Exceptions](#59-exceptions)
* [5.9.1 Floating Point Processor Exceptions](#591-floating-point-processor-exceptions)
* [5.10 Memory Utilities](#510-memory-utilities)
* [5.10.1 Memory Pool](#5101-memory-pool)
* [5.10.2 Memory Read/Write Functions](#5102-memory-readwrite-functions)
* [5.10.3 Critical Data Store](#5103-critical-data-store)
* [5.10.4 Standard CRC Calculations](#5104-standard-crc-calculations)
* [5.11 File System Functions](#511-file-system-functions)
* [5.11.1 Device Functions](#5111-device-functions)
* [5.11.2 Directory Functions](#5112-directory-functions)
* [5.11.3 File Functions](#5113-file-functions)
* [5.12 System Log](#512-system-log)
* [5.13 Software Performance Analysis](#513-software-performance-analysis)
* [5.1 Application Registration](#51-application-registration)
* [5.2 Application Names and IDs](#52-application-names-and-ids)
* [5.3 Child Task Control](#53-child-task-control)
* [5.4 Application Start-Up Types](#54-application-start-up-types)
* [5.5 Shared Libraries](#55-shared-libraries)
* [5.6 Obtaining OS and Platform Information](#56-obtaining-os-and-platform-information)
* [5.7 OS Queues, Semaphores and Mutexes](#57-os-queues-semaphores-and-mutexes)
* [5.7.1 Queues](#571-queues)
* [5.7.2 Binary Semaphores](#572-binary-semaphores)
* [5.7.2.1 Binary Semaphore Functions](#5721-binary-semaphore-functions)
* [5.7.3 Counting Semaphores](#573-counting-semaphores)
* [5.7.3.1 Counting Semaphore Functions](#5731-counting-semaphore-functions)
* [5.7.4 Mutex Semaphores](#574-mutex-semaphores)
* [5.7.4.1 Mutex Functions](#5741-mutex-functions)
* [5.8 Interrupt Handling](#58-interrupt-handling)
* [5.9 Exceptions](#59-exceptions)
* [5.9.1 Floating Point Processor Exceptions](#591-floating-point-processor-exceptions)
* [5.10 Memory Utilities](#510-memory-utilities)
* [5.10.1 Memory Pool](#5101-memory-pool)
* [5.10.2 Memory Read/Write Functions](#5102-memory-readwrite-functions)
* [5.10.3 Critical Data Store](#5103-critical-data-store)
* [5.10.4 Standard CRC Calculations](#5104-standard-crc-calculations)
* [5.11 File System Functions](#511-file-system-functions)
* [5.11.1 Device Functions](#5111-device-functions)
* [5.11.2 Directory Functions](#5112-directory-functions)
* [5.11.3 File Functions](#5113-file-functions)
* [5.12 System Log](#512-system-log)
* [5.13 Software Performance Analysis](#513-software-performance-analysis)
* [6. Software Bus Interface](#6-software-bus-interface)
* [6.1 Software Bus Terminology](#61-software-bus-terminology)
* [6.1.1 Software Bus Messages](#611-software-bus-messages)
* [6.1.2 Pipes](#612-pipes)
* [6.1.2.1 Software Bus Message Limits and Overflows](#6121-software-bus-message-limits-and-overflows)
* [6.1.3 Routing of Software Bus Messages](#613-routing-of-software-bus-messages)
* [6.1.3.1 Sending Applications](#6131-sending-applications)
* [6.1.3.2 Receiving Applications](#6132-receiving-applications)
* [6.2 Creating Software Bus Pipes](#62-creating-software-bus-pipes)
* [6.2.1 Deleting Software Bus Pipes](#621-deleting-software-bus-pipes)
* [6.3 Software Bus Message Subscription](#63-software-bus-message-subscription)
* [6.4 Unsubscribing from Receiving Software Bus Messages](#64-unsubscribing-from-receiving-software-bus-messages)
* [6.5 Creating Software Bus Messages](#65-creating-software-bus-messages)
* [6.5.1 Software Bus Message Header Types](#651-software-bus-message-header-types)
* [6.5.2 Modifying Software Bus Message Header Information](#652-modifying-software-bus-message-header-information)
* [6.5.2.1 Modifying SB Command Message Header Information](#6521-modifying-sb-command-message-header-information)
* [6.5.2.2 Modifying SB Telemetry Message Header Information](#6522-modifying-sb-telemetry-message-header-information)
* [6.5.3 Reading Software Bus Message Header Information](#653-reading-software-bus-message-header-information)
* [6.6 Sending Software Bus Messages](#66-sending-software-bus-messages)
* [6.7 Receiving Software Bus Messages](#67-receiving-software-bus-messages)
* [6.8 Improving Message Transfer Performance for Large SB Messages](#68-improving-message-transfer-performance-for-large-sb-messages)
* [6.9 Best Practices for using Software Bus](#69-best-practices-for-using-software-bus)
* [6.1 Software Bus Terminology](#61-software-bus-terminology)
* [6.1.1 Software Bus Messages](#611-software-bus-messages)
* [6.1.2 Pipes](#612-pipes)
* [6.1.2.1 Software Bus Message Limits and Overflows](#6121-software-bus-message-limits-and-overflows)
* [6.1.3 Routing of Software Bus Messages](#613-routing-of-software-bus-messages)
* [6.1.3.1 Sending Applications](#6131-sending-applications)
* [6.1.3.2 Receiving Applications](#6132-receiving-applications)
* [6.2 Creating Software Bus Pipes](#62-creating-software-bus-pipes)
* [6.2.1 Deleting Software Bus Pipes](#621-deleting-software-bus-pipes)
* [6.3 Software Bus Message Subscription](#63-software-bus-message-subscription)
* [6.4 Unsubscribing from Receiving Software Bus Messages](#64-unsubscribing-from-receiving-software-bus-messages)
* [6.5 Creating Software Bus Messages](#65-creating-software-bus-messages)
* [6.5.1 Software Bus Message Header Types](#651-software-bus-message-header-types)
* [6.5.2 Modifying Software Bus Message Header Information](#652-modifying-software-bus-message-header-information)
* [6.5.2.1 Modifying SB Command Message Header Information](#6521-modifying-sb-command-message-header-information)
* [6.5.2.2 Modifying SB Telemetry Message Header Information](#6522-modifying-sb-telemetry-message-header-information)
* [6.5.3 Reading Software Bus Message Header Information](#653-reading-software-bus-message-header-information)
* [6.6 Sending Software Bus Messages](#66-sending-software-bus-messages)
* [6.7 Receiving Software Bus Messages](#67-receiving-software-bus-messages)
* [6.8 Improving Message Transfer Performance for Large SB Messages](#68-improving-message-transfer-performance-for-large-sb-messages)
* [6.9 Best Practices for using Software Bus](#69-best-practices-for-using-software-bus)
* [7. Event Service Interface](#7-event-service-interface)
* [7.1 Event Messages](#71-event-messages)
* [7.2 Event Types](#72-event-types)
* [7.3 Event Format](#73-event-format)
* [7.4 Event Service Registration](#74-event-service-registration)
* [7.4.1 Binary Filtering Scheme](#741-binary-filtering-scheme)
* [7.5 Sending an Event Message](#75-sending-an-event-message)
* [7.5.1 Event Message Text](#751-event-message-text)
* [7.6 Event Service Un-registration](#76-event-service-un-registration)
* [7.7 Best Practices for using Event Services](#77-best-practices-for-using-event-services)
* [7.1 Event Messages](#71-event-messages)
* [7.2 Event Types](#72-event-types)
* [7.3 Event Format](#73-event-format)
* [7.4 Event Service Registration](#74-event-service-registration)
* [7.4.1 Binary Filtering Scheme](#741-binary-filtering-scheme)
* [7.5 Sending an Event Message](#75-sending-an-event-message)
* [7.5.1 Event Message Text](#751-event-message-text)
* [7.6 Event Service Un-registration](#76-event-service-un-registration)
* [7.7 Best Practices for using Event Services](#77-best-practices-for-using-event-services)
* [8. Table Service Interface](#8-table-service-interface)
* [8.1 Table Terminology](#81-table-terminology)
* [8.1.1 Tables](#811-tables)
* [8.1.2 Active vs. Inactive Tables](#812-active-vs-inactive-tables)
* [8.1.3 Single vs. Double Buffered Tables](#813-single-vs-double-buffered-tables)
* [8.1.4 Loading/Activating a Table](#814-loadingactivating-a-table)
* [8.1.5 Dumping a Table](#815-dumping-a-table)
* [8.1.6 Validating a Table](#816-validating-a-table)
* [8.2 Registering Tables](#82-registering-tables)
* [8.3 Accessing Table Data](#83-accessing-table-data)
* [8.3.1 Acquiring Table Data](#831-acquiring-table-data)
* [8.3.2 Releasing Table Data](#832-releasing-table-data)
* [8.4 Managing a Table](#84-managing-a-table)
* [8.4.1 Validating Table Data](#841-validating-table-data)
* [8.4.2 Loading/Updating Table Data](#842-loadingupdating-table-data)
* [8.4.3 Simplifying Table Management](#843-simplifying-table-management)
* [8.5 Typical File Organization for Tables](#85-typical-file-organization-for-tables)
* [8.5.1 Table Files Example](#851-table-files-example)
* [8.6 Building Tables](#86-building-tables)
* [8.7 Best Practices for using Table Services](#87-best-practices-for-using-table-services)
* [8.1 Table Terminology](#81-table-terminology)
* [8.1.1 Tables](#811-tables)
* [8.1.2 Active vs. Inactive Tables](#812-active-vs-inactive-tables)
* [8.1.3 Single vs. Double Buffered Tables](#813-single-vs-double-buffered-tables)
* [8.1.4 Loading/Activating a Table](#814-loadingactivating-a-table)
* [8.1.5 Dumping a Table](#815-dumping-a-table)
* [8.1.6 Validating a Table](#816-validating-a-table)
* [8.2 Registering Tables](#82-registering-tables)
* [8.3 Accessing Table Data](#83-accessing-table-data)
* [8.3.1 Acquiring Table Data](#831-acquiring-table-data)
* [8.3.2 Releasing Table Data](#832-releasing-table-data)
* [8.4 Managing a Table](#84-managing-a-table)
* [8.4.1 Validating Table Data](#841-validating-table-data)
* [8.4.2 Loading/Updating Table Data](#842-loadingupdating-table-data)
* [8.4.3 Simplifying Table Management](#843-simplifying-table-management)
* [8.5 Typical File Organization for Tables](#85-typical-file-organization-for-tables)
* [8.5.1 Table Files Example](#851-table-files-example)
* [8.6 Building Tables](#86-building-tables)
* [8.7 Best Practices for using Table Services](#87-best-practices-for-using-table-services)
* [9. File Service Interface](#9-file-service-interface)
* [9.1 Standard File Header](#91-standard-file-header)
* [9.2 Accessing and Modifying the Standard File Header](#92-accessing-and-modifying-the-standard-file-header)
* [9.3 Other File Service Utility Functions](#93-other-file-service-utility-functions)
* [9.1 Standard File Header](#91-standard-file-header)
* [9.2 Accessing and Modifying the Standard File Header](#92-accessing-and-modifying-the-standard-file-header)
* [9.3 Other File Service Utility Functions](#93-other-file-service-utility-functions)
* [10 Time Service Interface](#10-time-service-interface)
* [10.1 Time Formats](#101-time-formats)
* [10.2 Time Values](#102-time-values)
* [10.3 Basic Time Functions](#103-basic-time-functions)
* [10.4 Time Conversion Functions](#104-time-conversion-functions)
* [10.5 Time Manipulation Functions](#105-time-manipulation-functions)
* [10.1 Time Formats](#101-time-formats)
* [10.2 Time Values](#102-time-values)
* [10.3 Basic Time Functions](#103-basic-time-functions)
* [10.4 Time Conversion Functions](#104-time-conversion-functions)
* [10.5 Time Manipulation Functions](#105-time-manipulation-functions)
* [11 Error Handling](#11-error-handling)
* [11.1 Standard Error Codes](#111-standard-error-codes)
* [11.1 Standard Error Codes](#111-standard-error-codes)

# 1. Introduction

Expand Down

0 comments on commit 5602bff

Please sign in to comment.