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
65extern QueueHandle_t queue_scd30;
66extern QueueHandle_t queue_veml7700;
67extern QueueHandle_t queue_bme280;
68
69extern QueueHandle_t queue_sens_agg;
70extern QueueHandle_t queue_pkt_tx;
71extern QueueHandle_t queue_pkt_rx;
72extern QueueHandle_t queue_pkt_retx;
73
74extern QueueHandle_t queue_mem_evt;
75
81
87typedef struct {
88 TaskHandle_t task_handle;
89 const uint32_t STACK_SIZE;
90 const BaseType_t CORE;
91 const UBaseType_t PRIORITY;
92 const char *const TAG;
94
108BaseType_t task_create(
109 TaskFunction_t pxTaskCode,
110 rtos_instance_t *inst,
111 void *const pvParameters
112);
113
125void log_watermark(const rtos_instance_t *const inst);
126
143void log_info(const rtos_instance_t *const inst);
144
146
148
149#ifdef __cplusplus
150}
151#endif
152 // end of rtos_utils group
154
155#endif // __RTOS_UTILS_H__
156
const BaseType_t CORE
CPU core for pinning the task.
Definition rtos_utils.h:90
const char *const TAG
Tag used for logging.
Definition rtos_utils.h:92
const uint32_t STACK_SIZE
Task stack size in words.
Definition rtos_utils.h:89
TaskHandle_t task_handle
FreeRTOS task handle.
Definition rtos_utils.h:88
const UBaseType_t PRIORITY
Task priority.
Definition rtos_utils.h:91
QueueHandle_t queue_scd30
Definition rtos_utils.c:29
QueueHandle_t queue_pkt_tx
Definition rtos_utils.c:34
QueueHandle_t queue_pkt_rx
Definition rtos_utils.c:35
pal_err_t system_queues_init(void)
Definition rtos_utils.c:123
QueueHandle_t queue_veml7700
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
Definition rtos_utils.c:36
QueueHandle_t queue_bme280
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
Definition rtos_utils.h:76
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
Definition rtos_utils.c:33
QueueHandle_t queue_mem_evt
Definition rtos_utils.c:38
pal_err_t sensor_queues_init(void)
Definition rtos_utils.c:107
@ RESEND_IMAGE
Definition rtos_utils.h:78
@ RESEND_VIDEO
Definition rtos_utils.h:79
@ RESEND_SENSOR
Definition rtos_utils.h:77
Instance of a FreeRTOS task.
Definition rtos_utils.h:87
int pal_err_t
Definition pal_err.h:9