feat: publish FreeRTOS C FC06 card

This commit is contained in:
2026-07-19 16:36:03 +02:00
commit 0fc6158501
195 changed files with 60591 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
#ifndef TASK01_SOFTWARE_TIMERS_H
#define TASK01_SOFTWARE_TIMERS_H
#include <stdint.h>
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "task01_software_timers_model.h"
#define FC06_TASK_STACK_WORDS 256U
#define FC06_CONTROLLER_PRIORITY 2U
#define FC06_VERIFIER_PRIORITY 1U
#define FC06_EVENT_CAPACITY 12U
#define FC06_TIMEOUT_TICKS 20U
typedef enum TimerKind
{
FC06_TIMER_ONE_SHOT = 1,
FC06_TIMER_AUTO = 2
} TimerKind;
typedef struct TimerTag
{
TimerKind kind;
uint32_t marker;
} TimerTag;
typedef struct TimerExperiment
{
TimerHandle_t one_shot;
TimerHandle_t automatic;
TaskHandle_t controller;
TaskHandle_t verifier;
TaskHandle_t daemon_seen;
TimerTag one_shot_tag;
TimerTag automatic_tag;
uint32_t start_accepted;
uint32_t reset_accepted;
uint32_t change_accepted;
uint32_t stop_accepted;
uint32_t one_shot_count;
uint32_t auto_count;
uint32_t one_shot_tick;
uint32_t auto_tick[ 3 ];
uintptr_t controller_sp;
uintptr_t callback_sp;
uint32_t controller_done;
uint32_t pass;
uint32_t digest;
} TimerExperiment;
extern TimerExperiment g_fc06;
extern TimerEvidence g_fc06_events[ FC06_EVENT_CAPACITY ];
extern volatile uint32_t g_fc06_event_count;
extern volatile uint32_t g_fc06_last_checkpoint;
extern volatile uint32_t g_fc06_pass;
void fc06_checkpoint_committed( uint32_t point, const void * subject );
void fc06_timer_callback( TimerHandle_t timer );
void fc06_controller_entry( void * context );
void fc06_verifier_entry( void * context );
#endif