polycopter fix macro duplication, allow INSERT_WC

This commit is contained in:
Alwin Berger 2025-02-21 18:07:39 +01:00
parent c129d34e18
commit b8566de11b

View File

@ -10,8 +10,14 @@
#define NUM_TASKS 15
#include "fuzzhelper.c"
// #ifdef INSERT_WC
// #include "wcinput.h"
// #endif
#ifdef INSERT_WC
#include "wcinput.h"
#define WC_SWITCH(X,D) ((X)*0+(D))
#else
#define WC_SWITCH(X,D) ((X)+(D)*0)
#endif
// #define SHORT_CALC 50
@ -165,11 +171,11 @@ void main_osek(void) {
configMAX_PRIORITIES - 1,
&xTaskTimeSupervisor );
#ifdef INSERT_WC
for (int i=0; i<MAX_INPUT_BYTES; i++) {
FUZZ_INPUT[i] = WC_ARRAY[i];
}
#endif
// #ifdef INSERT_WC
// for (int i=0; i<MAX_INPUT_BYTES; i++) {
// FUZZ_INPUT[i] = WC_ARRAY[i];
// }
// #endif
vTaskStartScheduler();
for( ; ; )
{
@ -182,30 +188,31 @@ static void prv_SignalGatherInitiateTask(void *pvParameters) {
const int task_id = 0;
TickType_t xLastWakeTime = initial_release_time;
const TickType_t xFrequency = 3 / portTICK_PERIOD_MS;
uint16_t inp = 0;
int x=0;
do {
RNG_RESET
// timing_start(0);
xSemaphoreTake(xSemaphore_SPIBus, portMAX_DELAY);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT;
x = STRETCH_i32(inp);
x = FUNCTION_1(x);
WASTE_USEC(TRANSLATE_1(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_1(50, 200), 200));
if ((round % 2) == 0) {
xTaskNotify(xTask_SignalGatherTimeoutTask, MAKE_OUTPUT, eSetValueWithOverwrite);
} else {
xTaskNotify(xTask_SignalGatherFinishedTask, MAKE_OUTPUT, eSetValueWithOverwrite);
}
round++;
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT;
x = STRETCH_i32(inp);
x = FUNCTION_2(x);
WASTE_USEC(TRANSLATE_2(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_2(50, 200), 200));
xSemaphoreGive(xSemaphore_SPIBus);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT;
x = STRETCH_i32(inp);
x = FUNCTION_3(x);
WASTE_USEC(TRANSLATE_3(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_3(50, 200), 200));
trigger_job_done();
xTaskDelayUntil( &xLastWakeTime, xFrequency );
} while (1);
@ -213,52 +220,54 @@ static void prv_SignalGatherInitiateTask(void *pvParameters) {
static void prv_SignalGatherFinishedTask(void *pvParameters) {
const int task_id = 1;
uint16_t inp = 0;
int x=0;
trigger_job_done();
do {
RNG_RESET
unsigned long int y = ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
STATE_PLUS_DATA(y) // introduce a data dependency
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_1(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_1(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_1(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_1(50, 200), 200));
xTaskNotify(xTask_SignalProcessingAttitudeTask, MAKE_OUTPUT, eSetValueWithOverwrite);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_4(x);
WASTE_USEC(TRANSLATE_4(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_4(50, 200), 200));
xTaskNotify(xTask_SignalProcessingActuateTask, MAKE_OUTPUT, eSetValueWithOverwrite);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_5(x);
WASTE_USEC(TRANSLATE_5(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_5(50, 200), 200));
trigger_job_done();
} while (1);
}
static void prv_SignalGatherTimeoutTask(void *pvParameters) {
const int task_id = 2;
uint16_t inp = 0;
int x=0;
trigger_job_done();
do {
RNG_RESET
unsigned long int y = ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
STATE_PLUS_DATA(y) // introduce a data dependency
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_6(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_6(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_6(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_6(50, 200), 200));
xSemaphoreTake(xSemaphore_SPIBus, portMAX_DELAY);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_7(x);
WASTE_USEC(TRANSLATE_7(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_7(50, 200), 200));
xSemaphoreGive(xSemaphore_SPIBus);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_8(x);
WASTE_USEC(TRANSLATE_8(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_8(50, 200), 200));
xTaskNotify(xTask_SignalGatherFinishedTask, MAKE_OUTPUT, eSetValueWithOverwrite);
trigger_job_done();
} while (1);
@ -268,32 +277,34 @@ volatile int calculate;
static void prv_SignalProcessingActuateTask(void *pvParameters) {
const int task_id = 3;
uint16_t inp = 0;
int x=0;
trigger_job_done();
do {
RNG_RESET
unsigned long int y = ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
STATE_PLUS_DATA(y) // introduce a data dependency
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_9(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_9(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_9(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_9(50, 200), 200));
trigger_job_done();
} while (1);
}
static void prv_SignalProcessingAttitudeTask(void *pvParameters) {
const int task_id = 4;
uint16_t inp = 0;
int x=0;
trigger_job_done();
do {
RNG_RESET
unsigned long int y = ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
STATE_PLUS_DATA(y) // introduce a data dependency
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_10(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_10(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_10(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_10(50, 200), 200));
trigger_job_done();
} while (1);
}
@ -302,21 +313,22 @@ static void prv_FlightControlTask(void *pvParameters) {
const int task_id = 5;
TickType_t xLastWakeTime = initial_release_time;
const TickType_t xFrequency = 9 / portTICK_PERIOD_MS;
uint16_t inp = 0;
int x=0;
do {
RNG_RESET
// timing_start(1 | TIMING_POINT_IS_HIGHEST_PRIO);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT;
x = STRETCH_i32(inp);
x = FUNCTION_1(x);
WASTE_USEC(TRANSLATE_1(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_1(50, 200), 200));
xTaskNotify(xTask_FlightControlAttitudeTask, 0, eSetValueWithOverwrite);
xTaskNotify(xTask_FlightControlActuateTask, 0, eSetValueWithOverwrite);
xTaskNotify(xTask_MavlinkSendTask, 0, eSetValueWithOverwrite);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT;
x = STRETCH_i32(inp);
x = FUNCTION_2(x);
WASTE_USEC(TRANSLATE_2(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_2(50, 200), 200));
trigger_job_done();
xTaskDelayUntil( &xLastWakeTime, xFrequency );
} while (1);
@ -324,56 +336,59 @@ static void prv_FlightControlTask(void *pvParameters) {
static void prv_FlightControlAttitudeTask(void *pvParameters) {
const int task_id = 6;
uint16_t inp = 0;
int x=0;
trigger_job_done();
do {
RNG_RESET
unsigned long int y = ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
STATE_PLUS_DATA(y) // introduce a data dependency
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_3(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_3(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_3(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_3(50, 200), 200));
trigger_job_done();
} while (1);
}
static void prv_FlightControlActuateTask(void *pvParameters) {
const int task_id = 7;
uint16_t inp = 0;
int x=0;
trigger_job_done();
do {
RNG_RESET
unsigned long int y = ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
STATE_PLUS_DATA(y) // introduce a data dependency
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_4(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_4(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_4(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_4(50, 200), 200));
trigger_job_done();
} while (1);
}
static void prv_MavlinkSendTask(void *pvParameters) {
const int task_id = 8;
uint16_t inp = 0;
int x=0;
trigger_job_done();
do {
RNG_RESET
unsigned long int y = ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
STATE_PLUS_DATA(y) // introduce a data dependency
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_5(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_5(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_5(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_5(50, 200), 200));
xSemaphoreTake(xSemaphore_SPIBus, portMAX_DELAY);
WASTE_USEC(TRANSLATE_1(15, 50));
WASTE_USEC(WC_SWITCH(TRANSLATE_1(15, 50), 50));
// NVIC_SetPendingIRQ(1);
xSemaphoreGive(xSemaphore_SPIBus);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_6(x);
WASTE_USEC(TRANSLATE_6(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_6(50, 200), 200));
// timing_end(1);
trigger_job_done();
} while (1);
@ -383,6 +398,7 @@ static void prv_CopterControlTask(void *pvParameters) {
const int task_id = 9;
TickType_t xLastWakeTime = initial_release_time;
const TickType_t xFrequency = 5 / portTICK_PERIOD_MS;
uint16_t inp = 0;
int x=0;
trigger_job_done();
do {
@ -394,17 +410,17 @@ static void prv_CopterControlTask(void *pvParameters) {
unsigned long int y = ulTaskNotifyTake(pdTRUE, 0);
#endif
STATE_PLUS_DATA(y) // introduce a data dependency
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_7(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_7(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_7(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_7(50, 200), 200));
vTaskSuspendAll();
WASTE_USEC(TRANSLATE_8(15, 50));
WASTE_USEC(WC_SWITCH(TRANSLATE_8(15, 50), 50));
xTaskResumeAll();
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
x = FUNCTION_8(STRETCH_i32(INPUT_SHORT_NEXT*y));
WASTE_USEC(TRANSLATE_8(50, 200));
inp = INPUT_SHORT_NEXT * CLAMP(y, 1, 3);
x = STRETCH_i32(inp);
x = FUNCTION_8(x);
WASTE_USEC(WC_SWITCH(TRANSLATE_8(50, 200), 200));
// timing_end(2);
trigger_job_done();
@ -412,17 +428,18 @@ static void prv_CopterControlTask(void *pvParameters) {
}
void ISR_0_Handler(void) {
uint16_t inp = 0;
int x=0;
if (xTask_CopterControlTask != NULL) {
const int task_id = 10;
RNG_RESET
// timing_start(2 | TIMING_POINT_START_INTERRUPT_FROM_IDLE);
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT;
x = STRETCH_i32(inp);
x = FUNCTION_9(x);
WASTE_USEC(TRANSLATE_9(15, 50));
WASTE_USEC(WC_SWITCH(TRANSLATE_9(15, 50), 50));
xTaskNotifyFromISR(xTask_CopterControlTask, 0, eNoAction, NULL);
WASTE_USEC(TRANSLATE_10(15, 50));
WASTE_USEC(WC_SWITCH(TRANSLATE_10(15, 50), 50));
}
}
@ -430,13 +447,14 @@ static void prv_CopterControlWatchdogTask(void *pvParameters) {
const int task_id = 11;
TickType_t xLastWakeTime = initial_release_time;
const TickType_t xFrequency = 10 / portTICK_PERIOD_MS;
uint16_t inp = 0;
int x=0;
do {
RNG_RESET
x = INPUT_SHORT_NEXT;
x = STRETCH_i32((short)x);
inp = INPUT_SHORT_NEXT;
x = STRETCH_i32(inp);
x = FUNCTION_9(x);
WASTE_USEC(TRANSLATE_1(50, 200));
WASTE_USEC(WC_SWITCH(TRANSLATE_1(50, 200), 200));
trigger_job_done();
xTaskDelayUntil( &xLastWakeTime, xFrequency );
} while (1);