ESP32-P4 OBC Firmware
ESP-IDF firmware for Plant-B CubeSat OBC
 
Loading...
Searching...
No Matches
rtos_utils.h
Go to the documentation of this file.
1
24
25#ifndef __RTOS_UTILS_H__
26#define __RTOS_UTILS_H__
27
28#include "freertos/FreeRTOS.h"
29#include "freertos/task.h"
30#include "freertos/queue.h"
31#include "pal_err.h"
32#include "pal_log.h"
33#include "payload_utils.h"
34#include "packet_utils.h"
35
43
48#define CORE0 (0)
49#define CORE1 (1)
51
55#define WORD_LEN_BYTE (4)
56#define BASIC_QUEUE_DEPTH (5)
57#define SENSOR_RESEND_QUEUE_DEPTH (32)
58#define NOT_SET (255)
60
61#ifdef __cplusplus
62extern "C" {
63#endif
64
69extern QueueHandle_t queue_scd30;
70extern QueueHandle_t queue_veml7700;
71extern QueueHandle_t queue_bme280;
73
78extern QueueHandle_t queue_sens_agg;
79extern QueueHandle_t queue_pkt_tx;
80extern QueueHandle_t queue_pkt_rx;
81extern QueueHandle_t queue_pkt_retx;
82extern QueueHandle_t queue_mem_evt;
84
94
95
101typedef struct {
102 TaskHandle_t task_handle;
103 const uint32_t STACK_SIZE;
104 const BaseType_t CORE;
105 const UBaseType_t PRIORITY;
106 const char *const TAG;
108
122BaseType_t task_create(
123 TaskFunction_t pxTaskCode,
124 rtos_instance_t *inst,
125 void *const pvParameters
126);
127
139void log_watermark(const rtos_instance_t *const inst);
140
157void log_info(const rtos_instance_t *const inst);
158
178
202
203#ifdef __cplusplus
204}
205#endif
206 // end of rtos_utils group
208
209#endif // __RTOS_UTILS_H__
210
int pal_err_t
Definition pal_err.h:44
const BaseType_t CORE
CPU core for pinning the task.
Definition rtos_utils.h:104
const char *const TAG
Tag used for logging.
Definition rtos_utils.h:106
const uint32_t STACK_SIZE
Task stack size in words.
Definition rtos_utils.h:103
TaskHandle_t task_handle
FreeRTOS task handle.
Definition rtos_utils.h:102
const UBaseType_t PRIORITY
Task priority.
Definition rtos_utils.h:105
QueueHandle_t queue_scd30
SCD30 measurement queue.
Definition rtos_utils.c:29
QueueHandle_t queue_pkt_tx
New outgoing packets queue.
Definition rtos_utils.c:34
QueueHandle_t queue_pkt_rx
Inbound packet queue.
Definition rtos_utils.c:35
pal_err_t system_queues_init(void)
Create and initialize all system queues.
Definition rtos_utils.c:123
QueueHandle_t queue_veml7700
VEML7700 measurement queue.
Definition rtos_utils.c:30
BaseType_t task_create(TaskFunction_t pxTaskCode, rtos_instance_t *inst, void *const pvParameters)
Create a FreeRTOS task using the provided instance parameters.
Definition rtos_utils.c:52
QueueHandle_t queue_pkt_retx
Stored outgoing packet queue.
Definition rtos_utils.c:36
QueueHandle_t queue_bme280
BME280 measurement queue.
Definition rtos_utils.c:31
void log_watermark(const rtos_instance_t *const inst)
Log the high-water mark (stack usage in bytes) of a FreeRTOS task.
Definition rtos_utils.c:68
rtos_event_t
Event types posted to the memory event queue.
Definition rtos_utils.h:89
void log_info(const rtos_instance_t *const inst)
Log general task information in a human-readable way.
Definition rtos_utils.c:80
QueueHandle_t queue_sens_agg
Aggregated sensor payload queue.
Definition rtos_utils.c:33
QueueHandle_t queue_mem_evt
Memory task event queue.
Definition rtos_utils.c:38
pal_err_t sensor_queues_init(void)
Create and initialize all sensor measurement queues.
Definition rtos_utils.c:107
@ RESEND_IMAGE
Request to transmit a stored image.
Definition rtos_utils.h:91
@ RESEND_VIDEO
Request to transmit a stored video clip.
Definition rtos_utils.h:92
@ RESEND_SENSOR
Request to transmit a stored sensor payload.
Definition rtos_utils.h:90
Instance of a FreeRTOS task.
Definition rtos_utils.h:101
Plant-B application layer protocol - packet encoding and decoding.
Platform-agnostic error codes and checking macros.
Platform-agnostic logging macros.
Sensor payload assembly utilities.