Skip to content

Commit 5ab62a2

Browse files
author
Jacob Hageman
committed
Add title, align table of contents
1 parent dca3042 commit 5ab62a2

File tree

1 file changed

+105
-103
lines changed

1 file changed

+105
-103
lines changed

docs/cFE Application Developers Guide.md

Lines changed: 105 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,123 @@
1+
cFE Application Developer's Guide
2+
13
Table of Contents
24
=================
35

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

120122
# 1. Introduction
121123

0 commit comments

Comments
 (0)