RTEMS Documentation Project RTEMS Software Engineering
6.a08e672
  • 1. Preface
  • 2. RTEMS Project Mission Statement
    • 2.1. Free Software Project
    • 2.2. Design and Development Goals
    • 2.3. Open Development Environment
  • 3. RTEMS Stakeholders
  • 4. Introduction to Pre-Qualification
    • 4.1. Stakeholder Involvement
  • 5. Software Requirements Engineering
    • 5.1. Requirements for Requirements
      • 5.1.1. Identification
      • 5.1.2. Level of Requirements
        • 5.1.2.1. Absolute Requirements
        • 5.1.2.2. Absolute Prohibitions
        • 5.1.2.3. Recommendations
        • 5.1.2.4. Permissions
        • 5.1.2.5. Possibilities and Capabilities
      • 5.1.3. Syntax
      • 5.1.4. Wording Restrictions
      • 5.1.5. Separate Requirements
      • 5.1.6. Conflict Free Requirements
      • 5.1.7. Use of Project-Specific Terms and Abbreviations
      • 5.1.8. Justification of Requirements
      • 5.1.9. Requirement Validation
      • 5.1.10. Resources and Performance
    • 5.2. Specification Items
      • 5.2.1. Specification Item Hierarchy
      • 5.2.2. Specification Item Types
        • 5.2.2.1. Root Item Type
        • 5.2.2.2. Build Item Type
        • 5.2.2.3. Build Ada Test Program Item Type
        • 5.2.2.4. Build BSP Item Type
        • 5.2.2.5. Build Configuration File Item Type
        • 5.2.2.6. Build Configuration Header Item Type
        • 5.2.2.7. Build Group Item Type
        • 5.2.2.8. Build Library Item Type
        • 5.2.2.9. Build Objects Item Type
        • 5.2.2.10. Build Option Item Type
        • 5.2.2.11. Build Script Item Type
        • 5.2.2.12. Build Start File Item Type
        • 5.2.2.13. Build Test Program Item Type
        • 5.2.2.14. Constraint Item Type
        • 5.2.2.15. Glossary Item Type
        • 5.2.2.16. Glossary Group Item Type
        • 5.2.2.17. Glossary Term Item Type
        • 5.2.2.18. Interface Item Type
        • 5.2.2.19. Application Configuration Group Item Type
        • 5.2.2.20. Application Configuration Option Item Type
        • 5.2.2.21. Application Configuration Feature Enable Option Item Type
        • 5.2.2.22. Application Configuration Feature Option Item Type
        • 5.2.2.23. Application Configuration Value Option Item Type
        • 5.2.2.24. Interface Compound Item Type
        • 5.2.2.25. Interface Container Item Type
        • 5.2.2.26. Interface Define Item Type
        • 5.2.2.27. Interface Domain Item Type
        • 5.2.2.28. Interface Enum Item Type
        • 5.2.2.29. Interface Enumerator Item Type
        • 5.2.2.30. Interface Forward Declaration Item Type
        • 5.2.2.31. Interface Function Item Type
        • 5.2.2.32. Interface Group Item Type
        • 5.2.2.33. Interface Header File Item Type
        • 5.2.2.34. Interface Macro Item Type
        • 5.2.2.35. Interface Typedef Item Type
        • 5.2.2.36. Interface Unspecified Item Type
        • 5.2.2.37. Interface Variable Item Type
        • 5.2.2.38. Requirement Item Type
        • 5.2.2.39. Functional Requirement Item Type
        • 5.2.2.40. Action Requirement Item Type
        • 5.2.2.41. Generic Functional Requirement Item Type
        • 5.2.2.42. Non-Functional Requirement Item Type
        • 5.2.2.43. Design Group Requirement Item Type
        • 5.2.2.44. Generic Non-Functional Requirement Item Type
        • 5.2.2.45. Runtime Performance Requirement Item Type
        • 5.2.2.46. Requirement Validation Item Type
        • 5.2.2.47. Runtime Measurement Test Item Type
        • 5.2.2.48. Specification Item Type
        • 5.2.2.49. Test Case Item Type
        • 5.2.2.50. Test Platform Item Type
        • 5.2.2.51. Test Procedure Item Type
        • 5.2.2.52. Test Suite Item Type
      • 5.2.3. Specification Attribute Sets and Value Types
        • 5.2.3.1. Action Requirement Condition
        • 5.2.3.2. Action Requirement Name
        • 5.2.3.3. Action Requirement Skip Reasons
        • 5.2.3.4. Action Requirement State
        • 5.2.3.5. Action Requirement Transition
        • 5.2.3.6. Action Requirement Transition Post-Conditions
        • 5.2.3.7. Action Requirement Transition Pre-Condition State Set
        • 5.2.3.8. Action Requirement Transition Pre-Conditions
        • 5.2.3.9. Application Configuration Group Member Link Role
        • 5.2.3.10. Application Configuration Option Constraint Set
        • 5.2.3.11. Application Configuration Option Name
        • 5.2.3.12. Boolean or Integer or String
        • 5.2.3.13. Build Assembler Option
        • 5.2.3.14. Build C Compiler Option
        • 5.2.3.15. Build C Preprocessor Option
        • 5.2.3.16. Build C++ Compiler Option
        • 5.2.3.17. Build Dependency Link Role
        • 5.2.3.18. Build Include Path
        • 5.2.3.19. Build Install Directive
        • 5.2.3.20. Build Install Path
        • 5.2.3.21. Build Link Static Library Directive
        • 5.2.3.22. Build Linker Option
        • 5.2.3.23. Build Option Action
        • 5.2.3.24. Build Option C Compiler Check Action
        • 5.2.3.25. Build Option C++ Compiler Check Action
        • 5.2.3.26. Build Option Default by Variant
        • 5.2.3.27. Build Option Name
        • 5.2.3.28. Build Option Set Test State Action
        • 5.2.3.29. Build Option Value
        • 5.2.3.30. Build Source
        • 5.2.3.31. Build Target
        • 5.2.3.32. Build Test State
        • 5.2.3.33. Build Use After Directive
        • 5.2.3.34. Build Use Before Directive
        • 5.2.3.35. Constraint Link Role
        • 5.2.3.36. Copyright
        • 5.2.3.37. Enabled-By Expression
        • 5.2.3.38. Glossary Membership Link Role
        • 5.2.3.39. Integer or String
        • 5.2.3.40. Interface Brief Description
        • 5.2.3.41. Interface Compound Definition Kind
        • 5.2.3.42. Interface Compound Member Compound
        • 5.2.3.43. Interface Compound Member Declaration
        • 5.2.3.44. Interface Compound Member Definition
        • 5.2.3.45. Interface Compound Member Definition Directive
        • 5.2.3.46. Interface Compound Member Definition Variant
        • 5.2.3.47. Interface Definition
        • 5.2.3.48. Interface Definition Directive
        • 5.2.3.49. Interface Definition Variant
        • 5.2.3.50. Interface Description
        • 5.2.3.51. Interface Enabled-By Expression
        • 5.2.3.52. Interface Enum Definition Kind
        • 5.2.3.53. Interface Enumerator Link Role
        • 5.2.3.54. Interface Function Definition
        • 5.2.3.55. Interface Function Definition Directive
        • 5.2.3.56. Interface Function Definition Variant
        • 5.2.3.57. Interface Function Link Role
        • 5.2.3.58. Interface Group Identifier
        • 5.2.3.59. Interface Group Membership Link Role
        • 5.2.3.60. Interface Include Link Role
        • 5.2.3.61. Interface Notes
        • 5.2.3.62. Interface Parameter
        • 5.2.3.63. Interface Parameter Direction
        • 5.2.3.64. Interface Placement Link Role
        • 5.2.3.65. Interface Return Directive
        • 5.2.3.66. Interface Return Value
        • 5.2.3.67. Interface Target Link Role
        • 5.2.3.68. Link
        • 5.2.3.69. Name
        • 5.2.3.70. Optional String
        • 5.2.3.71. Placement Order Link Role
        • 5.2.3.72. Requirement Reference
        • 5.2.3.73. Requirement Reference Type
        • 5.2.3.74. Requirement Refinement Link Role
        • 5.2.3.75. Requirement Text
        • 5.2.3.76. Requirement Validation Link Role
        • 5.2.3.77. Requirement Validation Method
        • 5.2.3.78. Runtime Measurement Environment
        • 5.2.3.79. Runtime Measurement Environment Table
        • 5.2.3.80. Runtime Measurement Parameter Set
        • 5.2.3.81. Runtime Measurement Request Link Role
        • 5.2.3.82. Runtime Measurement Value Kind
        • 5.2.3.83. Runtime Measurement Value Table
        • 5.2.3.84. Runtime Performance Limit Table
        • 5.2.3.85. Runtime Performance Parameter Set
        • 5.2.3.86. SPDX License Identifier
        • 5.2.3.87. Specification Attribute Set
        • 5.2.3.88. Specification Attribute Value
        • 5.2.3.89. Specification Boolean Value
        • 5.2.3.90. Specification Explicit Attributes
        • 5.2.3.91. Specification Floating-Point Assert
        • 5.2.3.92. Specification Floating-Point Value
        • 5.2.3.93. Specification Generic Attributes
        • 5.2.3.94. Specification Information
        • 5.2.3.95. Specification Integer Assert
        • 5.2.3.96. Specification Integer Value
        • 5.2.3.97. Specification List
        • 5.2.3.98. Specification Mandatory Attributes
        • 5.2.3.99. Specification Member Link Role
        • 5.2.3.100. Specification Refinement Link Role
        • 5.2.3.101. Specification String Assert
        • 5.2.3.102. Specification String Value
        • 5.2.3.103. Test Case Action
        • 5.2.3.104. Test Case Check
        • 5.2.3.105. Test Context Member
        • 5.2.3.106. Test Header
        • 5.2.3.107. Test Run Parameter
        • 5.2.3.108. Test Support Method
        • 5.2.3.109. UID
    • 5.3. Traceability of Specification Items
      • 5.3.1. History of Specification Items
      • 5.3.2. Backward Traceability of Specification Items
      • 5.3.3. Forward Traceability of Specification Items
      • 5.3.4. Traceability between Software Requirements, Architecture and Design
    • 5.4. Requirement Management
      • 5.4.1. Change Control Board
      • 5.4.2. Add a Requirement
      • 5.4.3. Modify a Requirement
      • 5.4.4. Mark a Requirement as Obsolete
    • 5.5. Tooling
      • 5.5.1. Tool Requirements
      • 5.5.2. Tool Evaluation
      • 5.5.3. Best Available Tool - Doorstop
      • 5.5.4. Custom Requirements Management Tool
    • 5.6. How-To
      • 5.6.1. Getting Started
      • 5.6.2. Application Configuration Options
        • 5.6.2.1. Modify an Existing Group
        • 5.6.2.2. Modify an Existing Option
        • 5.6.2.3. Add a New Group
        • 5.6.2.4. Add a New Option
        • 5.6.2.5. Generate Content after Changes
      • 5.6.3. Glossary Specification
      • 5.6.4. Interface Specification
        • 5.6.4.1. Specify an API Header File
        • 5.6.4.2. Specify an API Element
  • 6. Software Development Management
    • 6.1. Software Development (Git Users)
      • 6.1.1. Browse the Git Repository Online
      • 6.1.2. Using the Git Repository
      • 6.1.3. Making Changes
      • 6.1.4. Working with Branches
      • 6.1.5. Viewing Changes
      • 6.1.6. Reverting Changes
      • 6.1.7. git reset
      • 6.1.8. git revert
      • 6.1.9. Merging Changes
      • 6.1.10. Rebasing
      • 6.1.11. Accessing a developer’s repository
      • 6.1.12. Creating a Patch
      • 6.1.13. Submitting a Patch
      • 6.1.14. Configuring git send-email to use Gmail
      • 6.1.15. Sending Email
      • 6.1.16. Troubleshooting
      • 6.1.17. Manage Your Code
      • 6.1.18. Private Servers
      • 6.1.19. Learn more about Git
    • 6.2. Software Development (Git Writers)
      • 6.2.1. SSH Access
      • 6.2.2. Personal Repository
      • 6.2.3. Create a personal repository
        • 6.2.3.1. Check your setup
        • 6.2.3.2. Push commits to personal repo master from local master
        • 6.2.3.3. Push a branch onto personal repo
        • 6.2.3.4. Update from upstream master (RTEMS head)
      • 6.2.4. GIT Push Configuration
      • 6.2.5. Pull a Developer’s Repo
      • 6.2.6. Committing
        • 6.2.6.1. Ticket Updates
        • 6.2.6.2. Commands
      • 6.2.7. Pushing Multiple Commits
      • 6.2.8. Ooops!
    • 6.3. Coding Standards
      • 6.3.1. Coding Conventions
        • 6.3.1.1. Source Documentation
        • 6.3.1.2. Licenses
        • 6.3.1.3. Language and Compiler
        • 6.3.1.4. Readability
        • 6.3.1.5. Robustness
        • 6.3.1.6. Portability
        • 6.3.1.7. Maintainability
        • 6.3.1.8. Performance
        • 6.3.1.9. Miscellaneous
        • 6.3.1.10. Header Files
        • 6.3.1.11. Layering
        • 6.3.1.12. Exceptions to the Rules
        • 6.3.1.13. Tools
      • 6.3.2. Formatting
        • 6.3.2.1. Rules
        • 6.3.2.2. Eighty Character Line Limit
        • 6.3.2.3. Breaking Long Lines
      • 6.3.3. Deprectating Interfaces
      • 6.3.4. Doxygen Guidelines
        • 6.3.4.1. Group Names
        • 6.3.4.2. Use Groups
        • 6.3.4.3. Files
        • 6.3.4.4. Type Definitions
        • 6.3.4.5. Function Declarations
        • 6.3.4.6. Header File Examples
      • 6.3.5. File Templates
        • 6.3.5.1. Copyright and License Block
        • 6.3.5.2. C/C++ Header File Template
        • 6.3.5.3. C/C++/Assembler Source File Template
        • 6.3.5.4. Python File Template
        • 6.3.5.5. Shell Scripts
        • 6.3.5.6. reStructuredText File Template
      • 6.3.6. Naming Rules
        • 6.3.6.1. General Rules
    • 6.4. Documentation Guidelines
      • 6.4.1. Application Configuration Options
    • 6.5. Python Development Guidelines
      • 6.5.1. Python Language Versions
      • 6.5.2. Python Code Formatting
      • 6.5.3. Static Analysis Tools
      • 6.5.4. Type Annotations
      • 6.5.5. Testing
        • 6.5.5.1. Test Organization
      • 6.5.6. Documentation
      • 6.5.7. Existing Code
      • 6.5.8. Third-Party Code
    • 6.6. Change Management
    • 6.7. Issue Tracking
  • 7. Software Test Plan Assurance and Procedures
    • 7.1. Testing and Coverage
      • 7.1.1. Test Suites
        • 7.1.1.1. Legacy Test Suites
      • 7.1.2. RTEMS Tester
  • 8. Software Test Framework
    • 8.1. The RTEMS Test Framework
      • 8.1.1. Nomenclature
      • 8.1.2. Test Cases
      • 8.1.3. Test Fixture
      • 8.1.4. Test Case Planning
      • 8.1.5. Test Case Resource Accounting
      • 8.1.6. Test Case Scoped Dynamic Memory
      • 8.1.7. Test Case Destructors
      • 8.1.8. Test Checks
        • 8.1.8.1. Test Check Variant Conventions
        • 8.1.8.2. Test Check Parameter Conventions
        • 8.1.8.3. Test Check Condition Conventions
        • 8.1.8.4. Test Check Type Conventions
        • 8.1.8.5. Integers
        • 8.1.8.6. Boolean Expressions
        • 8.1.8.7. Generic Types
        • 8.1.8.8. Pointers
        • 8.1.8.9. Memory Areas
        • 8.1.8.10. Strings
        • 8.1.8.11. Characters
        • 8.1.8.12. RTEMS Status Codes
        • 8.1.8.13. POSIX Error Numbers
        • 8.1.8.14. POSIX Status Codes
      • 8.1.9. Log Messages and Formatted Output
      • 8.1.10. Utility
      • 8.1.11. Time Services
      • 8.1.12. Code Runtime Measurements
      • 8.1.13. Interrupt Tests
      • 8.1.14. Test Runner
      • 8.1.15. Test Verbosity
      • 8.1.16. Test Reporting
      • 8.1.17. Test Report Validation
      • 8.1.18. Supported Platforms
    • 8.2. Test Framework Requirements for RTEMS
      • 8.2.1. License Requirements
      • 8.2.2. Portability Requirements
      • 8.2.3. Reporting Requirements
      • 8.2.4. Environment Requirements
      • 8.2.5. Usability Requirements
      • 8.2.6. Performance Requirements
    • 8.3. Off-the-shelf Test Frameworks
      • 8.3.1. bdd-for-c
      • 8.3.2. CBDD
      • 8.3.3. Google Test
      • 8.3.4. Unity
    • 8.4. Standard Test Report Formats
      • 8.4.1. JUnit XML
      • 8.4.2. Test Anything Protocol
  • 9. BSP Build System
    • 9.1. Goals
    • 9.2. Overview
    • 9.3. Commands
      • 9.3.1. BSP List
      • 9.3.2. BSP Defaults
      • 9.3.3. Configure
      • 9.3.4. Build, Clean, and Install
    • 9.4. UID Naming Conventions
    • 9.5. Build Specification Items
    • 9.6. How-To
      • 9.6.1. Find the Right Item
      • 9.6.2. Create a BSP Architecture
      • 9.6.3. Create a BSP Family
      • 9.6.4. Add a Base BSP to a BSP Family
      • 9.6.5. Add a BSP Option
      • 9.6.6. Extend a BSP Family with a Group
      • 9.6.7. Add a Test Program
      • 9.6.8. Add a Library
  • 10. Software Release Management
    • 10.1. Release Process
      • 10.1.1. Releases
        • 10.1.1.1. Release Layout
        • 10.1.1.2. Release Version Numbering
        • 10.1.1.3. Release Scripts
        • 10.1.1.4. Release Snapshots
      • 10.1.2. Release Repositories
      • 10.1.3. Pre-Release Procedure
      • 10.1.4. Release Branching
        • 10.1.4.1. LibBSD Release Branch
        • 10.1.4.2. Pre-Branch Procedure
        • 10.1.4.3. Branch Procedure
        • 10.1.4.4. Post-Branch Procedure
      • 10.1.5. Release Procedure
      • 10.1.6. Post-Release Procedure
    • 10.2. Software Change Report Generation
    • 10.3. Version Description Document (VDD) Generation
  • 11. User’s Manuals
    • 11.1. Documentation Style Guidelines
  • 12. Licensing Requirements
    • 12.1. Rationale
  • 13. Appendix: Core Qualification Artifacts/Documents
  • 14. Glossary
  • 15. References
Index
RTEMS Software Engineering
  • »
  • Index

Index

A | C | D | E | G | I | R | S | T | Y

A

  • API
  • assembler language

C

  • C language
  • C11
  • CCB

D

  • Doorstop

E

  • EARS
  • ELF

G

  • GCC
  • GNAT
  • GNU

I

  • interrupt service
  • Interrupt Service Routine
  • ISVV

R

  • ReqIF
  • RTEMS

S

  • software component
  • software product
  • software unit
  • source code

T

  • task
  • thread

Y

  • YAML

© Copyright 1988, 2020 RTEMS Project and contributors

Built with Sphinx using a theme provided by Read the Docs.