In CDH, we use a lot of frameworks and programs to avoid dealing with unnecessary low-level complexity. This diagram shows the hierarchy of the programs we will be using.

Software Hierarchy.png

Screenshot 2024-03-09 at 15.20.51.png

Hardware / Microcontroller (STM32 ARM)

Operating System (FreeRTOS)

FreeRTOS is a real-time operating system kernel for embedded devices. This is used to define, start, and kill threads, as well as implement mutual exclusion tools, such as mutexes and semaphore. Each thread is used to execute a task to completion, and the mutual exclusion tools are used to ensure the follow-through or passive nature of the threads.

OS API (CMSIS-RTOS2)

The CMSIS-RTOS v2 (CMSIS-RTOS2) provides generic RTOS interfaces for Arm Cortex processor-based devices. It provides a standardized API for software components that require RTOS functionality and gives therefore serious benefits to the users and the software industry. This is used to implement FreeRTOS features, without dealing directly with FreeRTOS.

Network Layer (CubeSat Space Protocol)

SFSF Services

UTAT