ESP32-P4 OBC Firmware
ESP-IDF firmware for Plant-B CubeSat OBC
 
Loading...
Searching...
No Matches
rtos_utils.h File Reference

A collection of useful ESP-IDF FreeRTOS wrappers. More...

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "pal_err.h"
#include "pal_log.h"
#include "payload_utils.h"
#include "packet_utils.h"

Go to the source code of this file.

Data Structures

struct  rtos_instance_t
 Instance of a FreeRTOS task. More...
 

Macros

Core Definitions

CPU core identifiers

#define CORE0   (0)
 CPU core 0.
 
#define CORE1   (1)
 CPU core 1.
 
General Macros
#define WORD_LEN_BYTE   (4)
 Word length in bytes.
 
#define BASIC_QUEUE_DEPTH   (5)
 
#define SENSOR_RESEND_QUEUE_DEPTH   (32)
 
#define NOT_SET   (255)
 Default uninitialized value.
 

Enumerations

enum  rtos_event_t { RESEND_SENSOR = 0 , RESEND_IMAGE , RESEND_VIDEO }
 

Functions

BaseType_t task_create (TaskFunction_t pxTaskCode, rtos_instance_t *inst, void *const pvParameters)
 Create a FreeRTOS task using the provided instance parameters.
 
void log_watermark (const rtos_instance_t *const inst)
 Log the high-water mark (stack usage in bytes) of a FreeRTOS task.
 
void log_info (const rtos_instance_t *const inst)
 Log general task information in a human-readable way.
 
pal_err_t sensor_queues_init (void)
 
pal_err_t system_queues_init (void)
 

Variables

QueueHandle_t queue_scd30
 
QueueHandle_t queue_veml7700
 
QueueHandle_t queue_bme280
 
QueueHandle_t queue_sens_agg
 
QueueHandle_t queue_pkt_tx
 
QueueHandle_t queue_pkt_rx
 
QueueHandle_t queue_pkt_retx
 
QueueHandle_t queue_mem_evt
 

Detailed Description

A collection of useful ESP-IDF FreeRTOS wrappers.

Author
Adrien Chevrier

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Version
0.1
Date
2026-02-05