diff --git a/.cproject b/.cproject
index debe4aa..b3d16e5 100644
--- a/.cproject
+++ b/.cproject
@@ -23,7 +23,8 @@
-
+
+
@@ -39,6 +40,11 @@
+
+
+
+
+
@@ -64,6 +70,11 @@
+
+
+
+
+
@@ -90,6 +101,11 @@
+
+
+
+
+
-
+
+
@@ -160,6 +177,11 @@
+
+
+
+
+
@@ -184,6 +206,11 @@
+
+
+
+
+
@@ -209,6 +236,11 @@
+
+
+
+
+
@@ -231,8 +263,8 @@
-
+
diff --git a/.gitignore b/.gitignore
index 698e13b..81e3c08 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,6 +22,7 @@
# Executables
build/
+Debug/*
*.exe
*.out
*.app
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..097ebac
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "Components/SoarProtocol/SoarProto"]
+ path = Components/SoarProtocol/SoarProto
+ url = git@github.com:StudentOrganisationForAerospaceResearch/SoarProto.git
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 0c5e147..9ee286a 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs
index 5476b3c..9133943 100644
--- a/.settings/stm32cubeide.project.prefs
+++ b/.settings/stm32cubeide.project.prefs
@@ -1,4 +1,4 @@
66BE74F758C12D739921AEA421D593D3=0
-8DF89ED150041C4CBC7CB9A9CAA90856=20DC75955B86F89F3643A2AE9216343C
-DC22A860405A8BF2F2C095E5B6529F12=20DC75955B86F89F3643A2AE9216343C
+8DF89ED150041C4CBC7CB9A9CAA90856=FC9055A67881517C9FBBF9ADE1A1E100
+DC22A860405A8BF2F2C095E5B6529F12=FC9055A67881517C9FBBF9ADE1A1E100
eclipse.preferences.version=1
diff --git a/Components/Communication/Inc/UARTTask.hpp b/Components/Communication/Inc/UARTTask.hpp
index a8b9b60..620cb4c 100644
--- a/Components/Communication/Inc/UARTTask.hpp
+++ b/Components/Communication/Inc/UARTTask.hpp
@@ -16,7 +16,11 @@
enum UART_TASK_COMMANDS {
UART_TASK_COMMAND_NONE = 0,
UART_TASK_COMMAND_SEND_DEBUG,
- UART_TASK_COMMAND_MAX
+ UART_TASK_COMMAND_MAX,
+ UART_TASK_COMMAND_SEND_DMB,
+ UART_TASK_COMMAND_SEND_SOB,
+ UART_TASK_COMMAND_SEND_PBB,
+ UART_TASK_COMMAND_SEND_PI
};
diff --git a/Components/Communication/UARTTask.cpp b/Components/Communication/UARTTask.cpp
index 67ccbf5..fa5aa98 100644
--- a/Components/Communication/UARTTask.cpp
+++ b/Components/Communication/UARTTask.cpp
@@ -74,6 +74,18 @@ void UARTTask::HandleCommand(Command& cm)
case UART_TASK_COMMAND_SEND_DEBUG:
HAL_UART_Transmit(SystemHandles::UART_Debug, cm.GetDataPointer(), cm.GetDataSize(), DEBUG_SEND_MAX_TIME_MS);
break;
+ case UART_TASK_COMMAND_SEND_DMB:
+ HAL_UART_Transmit(SystemHandles::UART_Radio, cm.GetDataPointer(), cm.GetDataSize(), DEBUG_SEND_MAX_TIME_MS);
+ break;
+ case UART_TASK_COMMAND_SEND_SOB:
+ HAL_UART_Transmit(SystemHandles::UART_SOB, cm.GetDataPointer(), cm.GetDataSize(), DEBUG_SEND_MAX_TIME_MS);
+ break;
+ case UART_TASK_COMMAND_SEND_PBB:
+ HAL_UART_Transmit(SystemHandles::UART_Radio, cm.GetDataPointer(), cm.GetDataSize(), DEBUG_SEND_MAX_TIME_MS);
+ break;
+ case UART_TASK_COMMAND_SEND_PI:
+ HAL_UART_Transmit(SystemHandles::UART_PI, cm.GetDataPointer(), cm.GetDataSize(), DEBUG_SEND_MAX_TIME_MS);
+ break;
default:
SOAR_PRINT("UARTTask - Received Unsupported DATA_COMMAND {%d}\n", cm.GetTaskCommand());
break;
diff --git a/Components/Core/Command.cpp b/Components/Core/Command.cpp
index 0d2a1f3..ff35223 100644
--- a/Components/Core/Command.cpp
+++ b/Components/Core/Command.cpp
@@ -11,7 +11,7 @@
#include "Command.hpp"
#include "SystemDefines.hpp"
-#include // Support for memcpy
+#include // Support for memcpy
/* Static Variable Init ------------------------------------------------------------------*/
std::atomic Command::statAllocationCounter; // Static variable init
@@ -83,9 +83,9 @@ Command::Command(GLOBAL_COMMANDS command, uint16_t taskCommand)
/**
* @brief Dynamically allocates memory for the command with the given data size
* @param dataSize Size of array to allocate
- * @return TRUE on success, FALSE on failure (mem already allocated)
+ * @return Pointer to data on success, nullptr on failure (mem already allocated)
*/
-bool Command::AllocateData(uint16_t dataSize)
+uint8_t* Command::AllocateData(uint16_t dataSize)
{
// If we don't have anything allocated, allocate and return success
if (this->data == nullptr && !bShouldFreeData) {
@@ -96,9 +96,9 @@ bool Command::AllocateData(uint16_t dataSize)
//TODO: May want to print out whenever we have an imbalance in statAllocationCounter by more than ~5 or so.
SOAR_ASSERT(statAllocationCounter < MAX_NUMBER_OF_COMMAND_ALLOCATIONS);
- return true;
+ return this->data;
}
- return false;
+ return nullptr;
}
/**
@@ -127,14 +127,14 @@ bool Command::SetCommandToStaticExternalBuffer(uint8_t* existingPtr, uint16_t si
*/
bool Command::CopyDataToCommand(uint8_t* dataSrc, uint16_t size)
{
- // If we successfully allocate, copy the data and return success
+ // If we successfully allocate, copy the data and return success
if(this->AllocateData(size)
- && this->data != nullptr) {
- memcpy(this->data, dataSrc, size);
- return true;
- }
+ && this->data != nullptr) {
+ memcpy(this->data, dataSrc, size);
+ return true;
+ }
- return false;
+ return false;
}
/**
@@ -145,6 +145,8 @@ void Command::Reset()
if(bShouldFreeData && data != nullptr) {
soar_free(data);
statAllocationCounter -= 1;
+ data = nullptr;
+ bShouldFreeData = false;
}
}
diff --git a/Components/Core/Inc/Command.hpp b/Components/Core/Inc/Command.hpp
index be5e6ad..efbb19e 100644
--- a/Components/Core/Inc/Command.hpp
+++ b/Components/Core/Inc/Command.hpp
@@ -2,7 +2,7 @@
******************************************************************************
* File Name : Command.hpp
* Description : Command is a unique object used to communicate information
- * to and between tasks.
+ * to and between tasks.
******************************************************************************
*/
#ifndef AVIONICS_INCLUDE_SOAR_CORE_COMMAND_H
@@ -21,7 +21,8 @@ enum GLOBAL_COMMANDS : uint8_t
TASK_SPECIFIC_COMMAND, // Runs a task specific command when given this object
DATA_COMMAND, // Data command, used to send data to a task. Target is stored in taskCommand
CONTROL_ACTION, // Control actions, used in Rocket State Machine, direct translation to RCU<->DMB Protocol
- REQUEST_COMMAND // Request command
+ REQUEST_COMMAND, // Request command
+ PROTOCOL_COMMAND, // Protocol command, used for commands to the Protocol Task
};
/* Class -----------------------------------------------------------------*/
@@ -36,44 +37,45 @@ enum GLOBAL_COMMANDS : uint8_t
class Command
{
public:
- Command(void);
- Command(GLOBAL_COMMANDS command);
- Command(uint16_t taskCommand);
- Command(GLOBAL_COMMANDS command, uint16_t taskCommand);
+ Command(void);
+ Command(GLOBAL_COMMANDS command);
+ Command(uint16_t taskCommand);
+ Command(GLOBAL_COMMANDS command, uint16_t taskCommand);
- //~Command(); // We can't handle memory like this, since the object would be 'destroyed' after copying to the RTOS queue
+ //~Command(); // We can't handle memory like this, since the object would be 'destroyed' after copying to the RTOS queue
- // Functions
- bool AllocateData(uint16_t dataSize); // Dynamically allocates data for the command
- bool CopyDataToCommand(uint8_t* dataSrc, uint16_t size); // Copies the data into the command, into newly allocated memory
- bool SetCommandToStaticExternalBuffer(uint8_t* existingPtr, uint16_t size); // Set data pointer to a pre-allocated buffer, if bFreeMemory is set to true, responsibility for freeing memory will fall on Command
+ // Functions
+ uint8_t* AllocateData(uint16_t dataSize); // Dynamically allocates data for the command
+ bool CopyDataToCommand(uint8_t* dataSrc, uint16_t size); // Copies the data into the command, into newly allocated memory
+ bool SetCommandToStaticExternalBuffer(uint8_t* existingPtr, uint16_t size); // Set data pointer to a pre-allocated buffer, if bFreeMemory is set to true, responsibility for freeing memory will fall on Command
- void Reset(); // Reset the command, equivalent of a destructor that must be called, counts allocations and deallocations, asserts an error if the allocation count is too high
+ void Reset(); // Reset the command, equivalent of a destructor that must be called, counts allocations and deallocations, asserts an error if the allocation count is too high
- // Getters
- uint16_t GetDataSize() const;
- uint8_t* GetDataPointer() const { return data; }
- GLOBAL_COMMANDS GetCommand() const { return command; }
- uint16_t GetTaskCommand() const { return taskCommand; }
+ // Getters
+ uint16_t GetDataSize() const;
+ uint8_t* GetDataPointer() const { return data; }
+ GLOBAL_COMMANDS GetCommand() const { return command; }
+ uint16_t GetTaskCommand() const { return taskCommand; }
- // Setters
- void SetTaskCommand(uint16_t taskCommand) { this->taskCommand = taskCommand; }
+ // Setters
+ void SetTaskCommand(uint16_t taskCommand) { this->taskCommand = taskCommand; }
+ void SetDataSize(uint16_t size) { dataSize = size; }
protected:
- // Data -- note each insertion and removal from a queue will do a full copy of this object, so this data should be as small as possible
- GLOBAL_COMMANDS command; // General GLOBAL command, each task must be able to handle these types of commands
- uint16_t taskCommand; // Task specific command, the task this command event is sent to needs to handle this
+ // Data -- note each insertion and removal from a queue will do a full copy of this object, so this data should be as small as possible
+ GLOBAL_COMMANDS command; // General GLOBAL command, each task must be able to handle these types of commands
+ uint16_t taskCommand; // Task specific command, the task this command event is sent to needs to handle this
- uint8_t* data; // Pointer to optional data
- uint16_t dataSize; // Size of optional data
+ uint8_t* data; // Pointer to optional data
+ uint16_t dataSize; // Size of optional data
private:
- bool bShouldFreeData; // Should the Command handle freeing the data pointer (necessary to enable Command object to handle static memory ptrs)
+ bool bShouldFreeData; // Should the Command handle freeing the data pointer (necessary to enable Command object to handle static memory ptrs)
- static std::atomic statAllocationCounter; // Static allocation counter shared by all command objects
+ static std::atomic statAllocationCounter; // Static allocation counter shared by all command objects
- Command(const Command&); // Prevent copy-construction
+ Command(const Command&); // Prevent copy-construction
};
#endif /* AVIONICS_INCLUDE_SOAR_CORE_COMMAND_H */
\ No newline at end of file
diff --git a/Components/Core/Inc/Command.hpp.orig b/Components/Core/Inc/Command.hpp.orig
deleted file mode 100644
index db6f637..0000000
--- a/Components/Core/Inc/Command.hpp.orig
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- ******************************************************************************
- * File Name : Command.hpp
- * Description : Command is a unique object used to communicate information
- * to and between tasks.
- ******************************************************************************
-*/
-#ifndef AVIONICS_INCLUDE_SOAR_CORE_COMMAND_H
-#define AVIONICS_INCLUDE_SOAR_CORE_COMMAND_H
-/* Includes ------------------------------------------------------------------*/
-#include
-
-#include "cmsis_os.h"
-
-/* Macros --------------------------------------------------------------------*/
-
-/* Enums -----------------------------------------------------------------*/
-enum GLOBAL_COMMANDS : uint8_t
-{
- COMMAND_NONE = 0, // No command, packet can probably be ignored
- TASK_SPECIFIC_COMMAND, // Runs a task specific command when given this object
- DATA_COMMAND, // Data command, used to send data to a task. Target is stored in taskCommand
-<<<<<<< HEAD
- REQUEST_COMMAND // Request command
-=======
- CONTROL_ACTION, // Control actions, used in Rocket State Machine, direct translation to RCU<->DMB Protocol
->>>>>>> 2d2f772e10fb3a9675398877e8bf01f5059d80ef
-};
-
-/* Class -----------------------------------------------------------------*/
-
-/**
- * @brief Command class
- *
- * Each Command object contains one set of commands, a GLOBAL_COMMANDS and a task command that can be task specific.
- *
- * Note, this class must be able to be treated as 'Plain-Old-Data' as it will be handled with raw-copy in RTOS queues
-*/
-class Command
-{
-public:
- Command(void);
- Command(GLOBAL_COMMANDS command);
- Command(uint16_t taskCommand);
- Command(GLOBAL_COMMANDS command, uint16_t taskCommand);
-
- //~Command(); // We can't handle memory like this, since the object would be 'destroyed' after copying to the RTOS queue
-
- // Functions
- bool AllocateData(uint16_t dataSize); // Dynamically allocates data for the command
- bool CopyDataToCommand(uint8_t* dataSrc, uint16_t size); // Copies the data into the command, into newly allocated memory
- bool SetCommandToStaticExternalBuffer(uint8_t* existingPtr, uint16_t size); // Set data pointer to a pre-allocated buffer, if bFreeMemory is set to true, responsibility for freeing memory will fall on Command
-
- void Reset(); // Reset the command, equivalent of a destructor that must be called, counts allocations and deallocations, asserts an error if the allocation count is too high
-
- // Getters
- uint16_t GetDataSize() const;
- uint8_t* GetDataPointer() const { return data; }
- GLOBAL_COMMANDS GetCommand() const { return command; }
- uint16_t GetTaskCommand() const { return taskCommand; }
-
- // Setters
- void SetTaskCommand(uint16_t taskCommand) { this->taskCommand = taskCommand; }
-
-
-protected:
- // Data -- note each insertion and removal from a queue will do a full copy of this object, so this data should be as small as possible
- GLOBAL_COMMANDS command; // General GLOBAL command, each task must be able to handle these types of commands
- uint16_t taskCommand; // Task specific command, the task this command event is sent to needs to handle this
-
- uint8_t* data; // Pointer to optional data
- uint16_t dataSize; // Size of optional data
-
-private:
- bool bShouldFreeData; // Should the Command handle freeing the data pointer (necessary to enable Command object to handle static memory ptrs)
-
- static std::atomic statAllocationCounter; // Static allocation counter shared by all command objects
-
- Command(const Command&); // Prevent copy-construction
-};
-
-#endif /* AVIONICS_INCLUDE_SOAR_CORE_COMMAND_H */
\ No newline at end of file
diff --git a/Components/Core/Inc/DMAController.hpp b/Components/Core/Inc/DMAController.hpp
index 452566b..0e0fb2d 100644
--- a/Components/Core/Inc/DMAController.hpp
+++ b/Components/Core/Inc/DMAController.hpp
@@ -21,17 +21,17 @@
class DMAController
{
public:
- // Constructors
- DMAController(void);
+ // Constructors
+ DMAController(void);
- // Functions
+ // Functions
- // Getters
+ // Getters
- // Setters
+ // Setters
- // Static/Setup
- static void SetupCallbacks(); // Register the DMA callbacks
+ // Static/Setup
+ static void SetupCallbacks(); // Register the DMA callbacks
protected:
diff --git a/Components/Core/Inc/Mutex.hpp b/Components/Core/Inc/Mutex.hpp
index d120522..6466c90 100644
--- a/Components/Core/Inc/Mutex.hpp
+++ b/Components/Core/Inc/Mutex.hpp
@@ -20,16 +20,16 @@
class Mutex
{
public:
- // Constructors / Destructor
- Mutex();
- ~Mutex();
+ // Constructors / Destructor
+ Mutex();
+ ~Mutex();
- // Public functions
- bool Lock(uint32_t timeout_ms = portMAX_DELAY);
- bool Unlock();
+ // Public functions
+ bool Lock(uint32_t timeout_ms = portMAX_DELAY);
+ bool Unlock();
private:
- SemaphoreHandle_t rtSemaphoreHandle;
+ SemaphoreHandle_t rtSemaphoreHandle;
};
diff --git a/Components/Core/Inc/Task.hpp b/Components/Core/Inc/Task.hpp
index 591cd22..43b4ad6 100644
--- a/Components/Core/Inc/Task.hpp
+++ b/Components/Core/Inc/Task.hpp
@@ -26,6 +26,7 @@ class Task {
Queue* GetEventQueue() const { return qEvtQueue; }
void SendCommand(Command cmd) { qEvtQueue->Send(cmd); }
+ void SendCommandReference(Command& cmd) { qEvtQueue->Send(cmd); }
protected:
//RTOS
diff --git a/Components/Core/Inc/Timer.hpp b/Components/Core/Inc/Timer.hpp
index 3c7d599..31c6af4 100644
--- a/Components/Core/Inc/Timer.hpp
+++ b/Components/Core/Inc/Timer.hpp
@@ -9,12 +9,22 @@
/* Includes ------------------------------------------------------------------*/
#include "cmsis_os.h"
#include "Utils.hpp"
+#include "FreeRTOS.h"
/* Macros --------------------------------------------------------------------*/
constexpr uint32_t DEFAULT_TIMER_COMMAND_WAIT_PERIOD = MS_TO_TICKS(15); // Default time to block a task if a command cannot be issued to the timer
#define DEFAULT_TIMER_PERIOD (MS_TO_TICKS(1000)) // 1s
+// Enumeration representing the 4 timer states
+enum TimerState {
+ UNINITIALIZED=0,
+ COUNTING,
+ PAUSED,
+ COMPLETE
+};
+
+
/* Class -----------------------------------------------------------------*/
/**
@@ -25,21 +35,35 @@ constexpr uint32_t DEFAULT_TIMER_COMMAND_WAIT_PERIOD = MS_TO_TICKS(15); // Defau
class Timer
{
public:
- Timer();
-
- bool ChangePeriod(const uint32_t period);
-
- // WORK-IN-PROGRESS
- // NOTES:
- // - I can think of several timer types
- // 1) Default Ctor Timer (1 second polling timer that requires polling to acquire state with no callback)
- // 2) Callback Enabled Timer (user-provided callback)
+ Timer(); // Default Constructor (Polling Timer)
+ Timer(void (*TimerCallbackFunction_t)( TimerHandle_t xTimer )); // Constructor for Callback Enabled Timer
+ ~Timer();
+ bool ChangePeriodMs(const uint32_t period_ms); // Resets timers and initializes period to specified parameters
+ bool ChangePeriodMsAndStart(const uint32_t period_ms); // Restarting timer with the specified parameter
+ bool Start();
+ bool Stop();
+ bool ResetTimer();
+ bool ResetTimerAndStart();
+ void SetAutoReload(bool setReloadOn); //True for Autoreload and False for One-shot
+ const uint32_t GetOriginalPeriodMs(){return timerPeriod;};
+ const bool GetIfAutoReload(); // Returns true if timer is Autoreload and False if it is One-shot
+ const TimerState GetState(); // Returns state of the timer
+ const uint32_t GetPeriodMs(); // Returns period in ms
+ const uint32_t GetRemainingTimeMs(); // Returns time left till timer will expire
+ static void DefaultCallback( TimerHandle_t xTimer );
protected:
- TimerHandle_t rtTimerHandle;
+ const uint32_t GetRTOSTimeRemaining();
+
+ TimerState timerState; // Enum that holds current timer state
+ TimerHandle_t rtTimerHandle;
+ uint32_t timerPeriod = DEFAULT_TIMER_PERIOD;
+ uint32_t remainingTimeBetweenPauses; // Calculates time left on timer when it is paused
};
-#endif /* AVIONICS_INCLUDE_SOAR_CORE_COMMAND_H */
\ No newline at end of file
+
+
+#endif /* AVIONICS_INCLUDE_SOAR_CORE_TIMER_H*/
diff --git a/Components/Core/Queue.cpp b/Components/Core/Queue.cpp
index 794f938..c8b99d7 100644
--- a/Components/Core/Queue.cpp
+++ b/Components/Core/Queue.cpp
@@ -15,9 +15,9 @@
*/
Queue::Queue(void)
{
- //Initialize RTOS Queue handle
- rtQueueHandle = xQueueCreate(DEFAULT_QUEUE_SIZE, sizeof(Command));
- queueDepth = 0;
+ //Initialize RTOS Queue handle
+ rtQueueHandle = xQueueCreate(DEFAULT_QUEUE_SIZE, sizeof(Command));
+ queueDepth = 0;
}
/**
@@ -26,9 +26,9 @@ Queue::Queue(void)
*/
Queue::Queue(uint16_t depth)
{
- //Initialize RTOS Queue handle with given depth
- rtQueueHandle = xQueueCreate(depth, sizeof(Command));
- queueDepth = 0;
+ //Initialize RTOS Queue handle with given depth
+ rtQueueHandle = xQueueCreate(depth, sizeof(Command));
+ queueDepth = depth;
}
/**
@@ -38,13 +38,13 @@ Queue::Queue(uint16_t depth)
*/
bool Queue::SendFromISR(Command& command)
{
- //Note: There NULL param here could be used to wake a task right after after exiting the ISR
- if (xQueueSendFromISR(rtQueueHandle, &command, NULL) == pdPASS)
- return true;
+ //Note: There NULL param here could be used to wake a task right after after exiting the ISR
+ if (xQueueSendFromISR(rtQueueHandle, &command, NULL) == pdPASS)
+ return true;
- command.Reset();
+ command.Reset();
- return false;
+ return false;
}
/**
@@ -54,14 +54,14 @@ bool Queue::SendFromISR(Command& command)
*/
bool Queue::SendToFront(Command& command)
{
- //Send to the back of the queue
- if (xQueueSendToFront(rtQueueHandle, &command, DEFAULT_QUEUE_SEND_WAIT_TICKS) == pdPASS)
- return true;
+ //Send to the back of the queue
+ if (xQueueSendToFront(rtQueueHandle, &command, DEFAULT_QUEUE_SEND_WAIT_TICKS) == pdPASS)
+ return true;
- SOAR_PRINT("Could not send data to front of queue!");
- command.Reset();
+ SOAR_PRINT("Could not send data to front of queue!");
+ command.Reset();
- return false;
+ return false;
}
/**
@@ -71,15 +71,15 @@ bool Queue::SendToFront(Command& command)
*/
bool Queue::Send(Command& command)
{
- if (xQueueSend(rtQueueHandle, &command, DEFAULT_QUEUE_SEND_WAIT_TICKS) == pdPASS)
- return true;
+ if (xQueueSend(rtQueueHandle, &command, DEFAULT_QUEUE_SEND_WAIT_TICKS) == pdPASS)
+ return true;
- //TODO: It may be possible to have this automatically set the command to not free data externally as we've "passed" control of the data over, which might let us use a destructor to free the data
+ //TODO: It may be possible to have this automatically set the command to not free data externally as we've "passed" control of the data over, which might let us use a destructor to free the data
- SOAR_PRINT("Could not send data to queue!");
- command.Reset();
+ SOAR_PRINT("Could not send data to queue!");
+ command.Reset();
- return false;
+ return false;
}
/**
@@ -90,10 +90,10 @@ bool Queue::Send(Command& command)
*/
bool Queue::Receive(Command& cm, uint32_t timeout_ms)
{
- if(xQueueReceive(rtQueueHandle, &cm, MS_TO_TICKS(timeout_ms)) == pdTRUE) {
- return true;
- }
- return false;
+ if(xQueueReceive(rtQueueHandle, &cm, MS_TO_TICKS(timeout_ms)) == pdTRUE) {
+ return true;
+ }
+ return false;
}
/**
@@ -103,8 +103,8 @@ bool Queue::Receive(Command& cm, uint32_t timeout_ms)
*/
bool Queue::ReceiveWait(Command& cm)
{
- if (xQueueReceive(rtQueueHandle, &cm, HAL_MAX_DELAY) == pdTRUE) {
- return true;
- }
- return false;
+ if (xQueueReceive(rtQueueHandle, &cm, HAL_MAX_DELAY) == pdTRUE) {
+ return true;
+ }
+ return false;
}
diff --git a/Components/SoarDebug/DebugTask.cpp b/Components/SoarDebug/DebugTask.cpp
index 15ecc2d..a7095a1 100644
--- a/Components/SoarDebug/DebugTask.cpp
+++ b/Components/SoarDebug/DebugTask.cpp
@@ -15,6 +15,10 @@
#include "GPIO.hpp"
#include "stm32l4xx_hal.h"
+#include "PIRxProtocolTask.hpp"
+#include "SOBRxRepeaterTask.hpp"
+#include "DMBRxProtocolTask.hpp"
+
/* Macros --------------------------------------------------------------------*/
/* Structs -------------------------------------------------------------------*/
@@ -36,6 +40,12 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef* huart)
{
if (huart->Instance == SystemHandles::UART_Debug->Instance)
DebugTask::Inst().InterruptRxData();
+ else if (huart->Instance == SystemHandles::UART_Radio->Instance)
+ DMBRxProtocolTask::Inst().InterruptRxData();
+ else if (huart->Instance == SystemHandles::UART_SOB->Instance)
+ SOBRxRepeaterTask::Inst().InterruptRxData();
+ else if (huart->Instance == SystemHandles::UART_PI->Instance)
+ PIRxProtocolTask::Inst().InterruptRxData();
}
/* Functions -----------------------------------------------------------------*/
diff --git a/Components/SoarProtocol/DMBRxProtocolTask.cpp b/Components/SoarProtocol/DMBRxProtocolTask.cpp
new file mode 100644
index 0000000..2bdb801
--- /dev/null
+++ b/Components/SoarProtocol/DMBRxProtocolTask.cpp
@@ -0,0 +1,97 @@
+/**
+ ******************************************************************************
+ * File Name : DMBRxProtocolTask.hpp
+ * Description : Protocol task, specific to DMBRx UART Line
+ ******************************************************************************
+*/
+#include "DMBRxProtocolTask.hpp"
+#include "FlightTask.hpp"
+#include "ReadBufferFixedSize.h"
+#include "PIRxProtocolTask.hpp"
+#include "SOBRxRepeaterTask.hpp"
+#include "UARTTask.hpp"
+
+/**
+ * @brief Initialize the DMBRxProtocolTask
+ */
+void DMBRxProtocolTask::InitTask()
+{
+ // Make sure the task is not already initialized
+ SOAR_ASSERT(rtTaskHandle == nullptr, "Cannot initialize Protocol task twice");
+
+ // Start the task
+ BaseType_t rtValue =
+ xTaskCreate((TaskFunction_t)DMBRxProtocolTask::RunTask,
+ (const char*)"ProtocolTask",
+ (uint16_t)TASK_PROTOCOL_STACK_DEPTH_WORDS,
+ (void*)this,
+ (UBaseType_t)TASK_PROTOCOL_PRIORITY,
+ (TaskHandle_t*)&rtTaskHandle);
+
+ //Ensure creation succeded
+ SOAR_ASSERT(rtValue == pdPASS, "ProtocolTask::InitTask - xTaskCreate() failed");
+}
+
+/**
+ * @brief Default constructor
+ */
+DMBRxProtocolTask::DMBRxProtocolTask() : ProtocolTask(Proto::Node::NODE_RCU,
+ SystemHandles::UART_Radio,
+ UART_TASK_COMMAND_SEND_DMB)
+{
+}
+
+/**
+ * @brief Handle a command message
+ */
+void DMBRxProtocolTask::HandleProtobufCommandMessage(EmbeddedProto::ReadBufferFixedSize& readBuffer)
+{
+ Proto::CommandMessage msg;
+ msg.deserialize(readBuffer);
+
+ // Verify the source and target nodes, echo it if it does not have DMBRx as the target
+ if (msg.get_source() != Proto::Node::NODE_DMB || msg.get_target() != Proto::Node::NODE_SOB)
+ return;
+
+ // If the message does not have a SOB command, do nothing
+ if (!msg.has_sob_command())
+ return;
+
+ SOAR_PRINT("PROTO-INFO: Received DMBRx Command Message");
+
+ //Send SOB command
+ EmbeddedProto::WriteBufferFixedSize writeBuffer;
+ msg.serialize(writeBuffer);
+
+ SOBRxRepeaterTask::Inst().SendProtobufMessage(writeBuffer, Proto::MessageID::MSG_COMMAND);
+}
+
+/**
+ * @brief Handle a control message
+ */
+void DMBRxProtocolTask::HandleProtobufControlMesssage(EmbeddedProto::ReadBufferFixedSize& readBuffer)
+{
+ //rewrap into a write buffer var because readBuffer and writeBuffer are not interchangeable
+ Proto::ControlMessage msg;
+ msg.deserialize(readBuffer);
+
+ EmbeddedProto::WriteBufferFixedSize writeBuffer;
+ msg.serialize(writeBuffer);
+
+ PIRxProtocolTask::SendProtobufMessage(writeBuffer, Proto::MessageID::MSG_CONTROL);
+}
+
+/**
+ * @brief Handle a telemetry message
+ */
+void DMBRxProtocolTask::HandleProtobufTelemetryMessage(EmbeddedProto::ReadBufferFixedSize& readBuffer)
+{
+ //rewrap into a write buffer var because readBuffer and writeBuffer are not interchangeable
+ Proto::TelemetryMessage msg;
+ msg.deserialize(readBuffer);
+
+ EmbeddedProto::WriteBufferFixedSize writeBuffer;
+ msg.serialize(writeBuffer);
+
+ PIRxProtocolTask::Inst().SendProtobufMessage(writeBuffer, Proto::MessageID::MSG_TELEMETRY);
+}
diff --git a/Components/SoarProtocol/DMBRxProtocolTask.hpp b/Components/SoarProtocol/DMBRxProtocolTask.hpp
new file mode 100644
index 0000000..5e350c8
--- /dev/null
+++ b/Components/SoarProtocol/DMBRxProtocolTask.hpp
@@ -0,0 +1,48 @@
+/**
+ ******************************************************************************
+ * File Name : DMBRxProtocolTask.hpp
+ * Description : Protocol task, specific to DMBRx
+ ******************************************************************************
+*/
+#ifndef SOAR_DMBRXPROTOCOL_HPP_
+#define SOAR_DMBRXPROTOCOL_HPP_
+#include "ProtocolTask.hpp"
+#include "Task.hpp"
+#include "SystemDefines.hpp"
+#include "UARTTask.hpp"
+
+/* Enums ------------------------------------------------------------------*/
+
+/* Class ------------------------------------------------------------------*/
+class DMBRxProtocolTask : public ProtocolTask
+{
+public:
+ static DMBRxProtocolTask& Inst() {
+ static DMBRxProtocolTask inst;
+ return inst;
+ }
+
+ void InitTask();
+
+ static void SendProtobufMessage(EmbeddedProto::WriteBufferFixedSize& writeBuffer, Proto::MessageID msgId)
+ {
+ Inst().ProtocolTask::SendProtobufMessage(writeBuffer, msgId);
+ }
+
+protected:
+ static void RunTask(void* pvParams) { DMBRxProtocolTask::Inst().Run(pvParams); } // Static Task Interface, passes control to the instance Run();
+
+ // These handlers will receive a buffer and size corresponding to a decoded message
+ void HandleProtobufCommandMessage(EmbeddedProto::ReadBufferFixedSize& readBuffer);
+ void HandleProtobufControlMesssage(EmbeddedProto::ReadBufferFixedSize& readBuffer);
+ void HandleProtobufTelemetryMessage(EmbeddedProto::ReadBufferFixedSize& readBuffer);
+
+ // Member variables
+
+private:
+ DMBRxProtocolTask(); // Private constructor
+ DMBRxProtocolTask(const DMBRxProtocolTask&); // Prevent copy-construction
+ DMBRxProtocolTask& operator=(const DMBRxProtocolTask&); // Prevent assignment
+};
+
+#endif // SOAR_DMBRxPROTOCOL_HPP_
diff --git a/Components/SoarProtocol/PIRxProtocolTask.cpp b/Components/SoarProtocol/PIRxProtocolTask.cpp
new file mode 100644
index 0000000..24dfe2d
--- /dev/null
+++ b/Components/SoarProtocol/PIRxProtocolTask.cpp
@@ -0,0 +1,98 @@
+/**
+ ******************************************************************************
+ * File Name : PIRxProtocolTask.hpp
+ * Description : Protocol task, specific to PIRx UART Line
+ ******************************************************************************
+*/
+#include "PIRxProtocolTask.hpp"
+#include "FlightTask.hpp"
+#include "ReadBufferFixedSize.h"
+#include "SOBRxRepeaterTask.hpp"
+#include "DMBRxProtocolTask.hpp"
+#include "UARTTask.hpp"
+
+/**
+ * @brief Initialize the PIRxProtocolTask
+ */
+void PIRxProtocolTask::InitTask()
+{
+ // Make sure the task is not already initialized
+ SOAR_ASSERT(rtTaskHandle == nullptr, "Cannot initialize Protocol task twice");
+
+ // Start the task
+ BaseType_t rtValue =
+ xTaskCreate((TaskFunction_t)PIRxProtocolTask::RunTask,
+ (const char*)"ProtocolTask",
+ (uint16_t)TASK_PROTOCOL_STACK_DEPTH_WORDS,
+ (void*)this,
+ (UBaseType_t)TASK_PROTOCOL_PRIORITY,
+ (TaskHandle_t*)&rtTaskHandle);
+
+ //Ensure creation succeded
+ SOAR_ASSERT(rtValue == pdPASS, "ProtocolTask::InitTask - xTaskCreate() failed");
+}
+
+/**
+ * @brief Default constructor
+ */
+PIRxProtocolTask::PIRxProtocolTask() : ProtocolTask(Proto::Node::NODE_RCU,
+ SystemHandles::UART_PI,
+ UART_TASK_COMMAND_SEND_PI)
+{
+}
+
+/**
+ * @brief Handle a command message
+ */
+void PIRxProtocolTask::HandleProtobufCommandMessage(EmbeddedProto::ReadBufferFixedSize& readBuffer)
+{
+ Proto::CommandMessage msg;
+ msg.deserialize(readBuffer);
+
+ EmbeddedProto::WriteBufferFixedSize writeBuffer;
+ msg.serialize(writeBuffer);
+
+ //Send to relevant destination
+ if(msg.get_target() == Proto::Node::NODE_DMB || msg.get_target() == Proto::Node::NODE_PBB) {
+ DMBRxProtocolTask::Inst().SendProtobufMessage(writeBuffer, Proto::MessageID::MSG_COMMAND);
+ return;
+ }
+
+ if(msg.get_target() == Proto::Node::NODE_SOB) {
+ SOBRxRepeaterTask::Inst().SendProtobufMessage(writeBuffer, Proto::MessageID::MSG_COMMAND);
+ return;
+ }
+
+}
+
+/**
+ * @brief Handle a control message
+ */
+void PIRxProtocolTask::HandleProtobufControlMesssage(EmbeddedProto::ReadBufferFixedSize& readBuffer)
+{
+ //rewrap into a write buffer var because readBuffer and writeBuffer are not interchangeable
+ Proto::TelemetryMessage msg;
+ msg.deserialize(readBuffer);
+
+ EmbeddedProto::WriteBufferFixedSize writeBuffer;
+ msg.serialize(writeBuffer);
+
+ //Send to relevant destination
+ if(msg.get_target() == Proto::Node::NODE_DMB || msg.get_target() == Proto::Node::NODE_PBB) {
+ DMBRxProtocolTask::Inst().SendProtobufMessage(writeBuffer, Proto::MessageID::MSG_CONTROL);
+ return;
+ }
+
+ if(msg.get_target() == Proto::Node::NODE_SOB) {
+ SOBRxRepeaterTask::Inst().SendProtobufMessage(writeBuffer, Proto::MessageID::MSG_CONTROL);
+ return;
+ }
+}
+
+/**
+ * @brief Handle a telemetry message (unused?)
+ */
+void PIRxProtocolTask::HandleProtobufTelemetryMessage(EmbeddedProto::ReadBufferFixedSize& readBuffer)
+{
+
+}
diff --git a/Components/SoarProtocol/PIRxProtocolTask.hpp b/Components/SoarProtocol/PIRxProtocolTask.hpp
new file mode 100644
index 0000000..8f02db2
--- /dev/null
+++ b/Components/SoarProtocol/PIRxProtocolTask.hpp
@@ -0,0 +1,48 @@
+/**
+ ******************************************************************************
+ * File Name : PIRxProtocolTask.hpp
+ * Description : Protocol task, specific to PIRx
+ ******************************************************************************
+*/
+#ifndef SOAR_PIRXPROTOCOL_HPP_
+#define SOAR_PIRXPROTOCOL_HPP_
+#include "ProtocolTask.hpp"
+#include "Task.hpp"
+#include "SystemDefines.hpp"
+#include "UARTTask.hpp"
+
+/* Enums ------------------------------------------------------------------*/
+
+/* Class ------------------------------------------------------------------*/
+class PIRxProtocolTask : public ProtocolTask
+{
+public:
+ static PIRxProtocolTask& Inst() {
+ static PIRxProtocolTask inst;
+ return inst;
+ }
+
+ void InitTask();
+
+ static void SendProtobufMessage(EmbeddedProto::WriteBufferFixedSize& writeBuffer, Proto::MessageID msgId)
+ {
+ Inst().ProtocolTask::SendProtobufMessage(writeBuffer, msgId);
+ }
+
+protected:
+ static void RunTask(void* pvParams) { PIRxProtocolTask::Inst().Run(pvParams); } // Static Task Interface, passes control to the instance Run();
+
+ // These handlers will receive a buffer and size corresponding to a decoded message
+ void HandleProtobufCommandMessage(EmbeddedProto::ReadBufferFixedSize& readBuffer);
+ void HandleProtobufControlMesssage(EmbeddedProto::ReadBufferFixedSize& readBuffer);
+ void HandleProtobufTelemetryMessage(EmbeddedProto::ReadBufferFixedSize& readBuffer);
+
+ // Member variables
+
+private:
+ PIRxProtocolTask(); // Private constructor
+ PIRxProtocolTask(const PIRxProtocolTask&); // Prevent copy-construction
+ PIRxProtocolTask& operator=(const PIRxProtocolTask&); // Prevent assignment
+};
+
+#endif // SOAR_PIRxPROTOCOL_HPP_
diff --git a/Components/SoarProtocol/SOBRxRepeaterTask.hpp b/Components/SoarProtocol/SOBRxRepeaterTask.hpp
new file mode 100644
index 0000000..66294e2
--- /dev/null
+++ b/Components/SoarProtocol/SOBRxRepeaterTask.hpp
@@ -0,0 +1,66 @@
+/**
+ ******************************************************************************
+ * File Name : SOBRxRepeaterTask.hpp
+ * Description : SOBRx UART line repeater task
+ *
+ * This is intended to be used as a template for creating
+ * specific UART line repeater tasks. Guideline:
+ * 1. Copy this file while replacing all 'Example' with '{your uart name}', either manually or with this:
+ * sed 's/Example/{your uart name}/g' ExampleRepeaterTask.hpp > {your uart name}RepeaterTask.hpp
+ * 2. Change the Configuration section below
+ * edit Example_REPEATER_TASK_HUART with your UART handle
+ * and the Example_UART_TASK_COMMAND with your UART task command
+ * 3. Add:
+ * else if (huart->Instance == {edited uart handle}->Instance)
+ * ExampleRepeaterTask::Inst().InterruptRxData();
+ * to HAL_UART_RxCpltCallback in the file that contains the callback
+ * 4. Add:
+ * #include "ExampleRepeaterTask.hpp"
+ * and
+ * ExampleRepeaterTask::Inst().InitTask()
+ * to main_avionics.cpp
+ * 5. Delete this extended description (if you want)
+ * 6. Delete this file (once done with steps 1-5 for all UARTs you need to repeat)
+ ******************************************************************************
+*/
+#include "RepeaterTask.hpp"
+#include "UARTTask.hpp"
+
+/* Configuration ------------------------------------------------------------------*/
+constexpr UART_HandleTypeDef* SOBRx_REPEATER_TASK_HUART = SystemHandles::UART_SOB;
+constexpr uint16_t SOBRx_REPEATER_TASK_UART_TASK_COMMAND = UART_TASK_COMMAND_SEND_SOB;
+
+/* Class ------------------------------------------------------------------*/
+class SOBRxRepeaterTask : public RepeaterTask
+{
+public:
+ static SOBRxRepeaterTask& Inst() {
+ static SOBRxRepeaterTask inst;
+ return inst;
+ }
+
+ void InitTask() {
+ // Make sure the task is not already initialized
+ SOAR_ASSERT(rtTaskHandle == nullptr, "Cannot init SOBRxRptr task twice");
+
+ // Start the task
+ BaseType_t rtValue =
+ xTaskCreate((TaskFunction_t)SOBRxRepeaterTask::RunTask,
+ (const char*)"SOBRxRptr",
+ (uint16_t)TASK_REPEATER_STACK_DEPTH_WORDS,
+ (void*)this,
+ (UBaseType_t)TASK_REPEATER_PRIORITY,
+ (TaskHandle_t*)&rtTaskHandle);
+
+ //Ensure creation succeded
+ SOAR_ASSERT(rtValue == pdPASS, "SOBRxRptr xTaskCreate() failed");
+ }
+
+protected:
+ static void RunTask(void* pvParams) { SOBRxRepeaterTask::Inst().Run(pvParams); } // Static Task Interface, passes control to the instance Run();
+
+private:
+ SOBRxRepeaterTask() : RepeaterTask((UART_HandleTypeDef*)SOBRx_REPEATER_TASK_HUART, SOBRx_REPEATER_TASK_UART_TASK_COMMAND) {}
+ SOBRxRepeaterTask(const SOBRxRepeaterTask&); // Prevent copy-construction
+ SOBRxRepeaterTask& operator=(const SOBRxRepeaterTask&); // Prevent assignment
+};
diff --git a/Components/SoarProtocol/SoarProto b/Components/SoarProtocol/SoarProto
new file mode 160000
index 0000000..9a2efaa
--- /dev/null
+++ b/Components/SoarProtocol/SoarProto
@@ -0,0 +1 @@
+Subproject commit 9a2efaa94049fac479a787a76f846b82ae47053b
diff --git a/Components/Utils.cpp b/Components/Utils.cpp
index 19a621b..a76e395 100644
--- a/Components/Utils.cpp
+++ b/Components/Utils.cpp
@@ -14,6 +14,8 @@
#include "main_avionics.hpp"
#include "SystemDefines.hpp"
+#include "etl/crc16_xmodem.h"
+
/**
* @brief Calculates the average from a list of unsigned shorts
* @param array: The array of unsigned shorts to average
@@ -68,12 +70,12 @@ void Utils::readUInt32FromUInt8Array(uint8_t* array, int startIndex, int32_t* va
* @param data The data to generate the checksum for
* @param size The size of the data array in uint8_t
*/
-uint32_t Utils::getCRC32(uint8_t* data, uint32_t size)
+uint32_t Utils::getCRC32Aligned(uint8_t* data, uint32_t size)
{
- // Figure out the number of bytes to pad by
+ // Figure out the number of bytes to pad by
uint8_t pad = 0;
- // If the buffer is not a multiple of 4 bytes, then we need to pad the buffer by the remaining bytes
+ // If the buffer is not a multiple of 4 bytes, then we need to pad the buffer by the remaining bytes
if(size % 4 == 0)
pad = 4 - (size % 4);
@@ -82,15 +84,51 @@ uint32_t Utils::getCRC32(uint8_t* data, uint32_t size)
uint8_t* tempPtr = (uint8_t*)(&buffer[0]);
// Bytewise copy and pad
- memcpy(tempPtr, data, size);
- memset(tempPtr + size, 0, pad);
+ memcpy(tempPtr, data, size);
+ memset(tempPtr + size, 0, pad);
// TODO: TEST THIS THING, also note there's a more efficient way (0-copy) that just involves loop accumulating 4x uint8_t's into 1x uint32_t's but this is more readable, ish
// TODO: To be fair, G++ is very good at compiling memcpy though, so honestly other than instantaneous stack usage this may actually be more efficient
- SOAR_PRINT("Warning, HCRC is not tested!\n");
+// SOAR_PRINT("Warning, HCRC is not tested!\n");
+
+ // Calculate the CRC32
+ return HAL_CRC_Calculate(SystemHandles::CRC_Handle, (uint32_t*)buffer, (size+pad)/4);
+}
+
+/**
+ * @brief Generates CRC16 checksum for a given array of data using etl::crc16
+ * @param data The data to generate the checksum for
+ * @param size The size of the data array in uint8_t
+ * @return The CRC16 checksum
+ */
+uint16_t Utils::getCRC16(uint8_t* data, uint16_t size)
+{
+ // ETL CRC16 object
+ etl::crc16_xmodem crc;
+ crc.reset();
+
+ // Use etl library to generate CRC16
+ for (uint16_t i = 0; i < size; i++)
+ {
+ crc.add(data[i]);
+ }
+
+ return crc.value();
+}
+
+/**
+ * @brief Checks if a given CRC is correct for the array
+ * @param data The data (not including the checksum)
+ * @param size The size of the data
+ * @param crc The internal checksum
+ * @return
+ */
+bool Utils::IsCrc16Correct(uint8_t* data, uint16_t size, uint16_t crc)
+{
+ // First we calculate the crc16 for the buffer
+ uint16_t calculatedCrc = getCRC16(data, size);
- // Calculate the CRC32
- return HAL_CRC_Calculate(SystemHandles::CRC_Handle, (uint32_t*)buffer, (size+pad)/4);
+ return (calculatedCrc == crc);
}
/**
diff --git a/Components/Utils.hpp b/Components/Utils.hpp
index 5f23608..324b254 100644
--- a/Components/Utils.hpp
+++ b/Components/Utils.hpp
@@ -2,24 +2,25 @@
******************************************************************************
* File Name : Utils.hpp
* Description : Utility functions, accessible system wide.
- * Includes functions for converting between data types
- * Use specific naming, or namespace to avoid conflicts
- * Keep namespace Utils to avoid conflicts with other libraries
+ * Includes functions for converting between data types
+ * Use specific naming, or namespace to avoid conflicts
+ * Keep namespace Utils to avoid conflicts with other libraries
******************************************************************************
*/
#ifndef AVIONICS_INCLUDE_SOAR_UTILS_HPP_
#define AVIONICS_INCLUDE_SOAR_UTILS_HPP_
-#include "cmsis_os.h" // CMSIS RTOS definitions
+#include "cmsis_os.h" // CMSIS RTOS definitions
// Programmer Macros
-constexpr uint16_t ERRVAL = 0xDEAD; // Error value for debugging
+constexpr uint16_t ERRVAL = 0xDEAD; // Error value for debugging
// Math macros and conversions
constexpr double MATH_PI = 3.14159265358979323846;
-#define DEG_TO_RAD(degrees) ((degrees) * 0.01745329251994329576923690768489f) // Degrees to radians (PI/180)
-#define RAD_TO_DEG(radians) ((radians) * 57.295779513082320876798154814105f) // Radians to degrees (180/PI)
-#define MILLIG_TO_MPS2(millig) ((millig) * 9.80665f) // Milli-g to m/s^2
-#define MILLIDPS_TO_RADPS(millidps) ((millidps) * 0.00017453292519943295769236907684886f) // Milli-degrees per second to radians per second (PI/180/1000)
+#define DEG_TO_RAD(degrees) ((degrees) * 0.01745329251994329576923690768489f) // Degrees to radians (PI/180)
+#define RAD_TO_DEG(radians) ((radians) * 57.295779513082320876798154814105f) // Radians to degrees (180/PI)
+#define MILLIG_TO_MPS2(millig) ((millig) * 9.80665f) // Milli-g to m/s^2
+#define MILLIDPS_TO_RADPS(millidps) ((millidps) * 0.00017453292519943295769236907684886f) // Milli-degrees per second to radians per second (PI/180/1000)
+#define GET_COBS_MAX_LEN(len) (((len) + ((len) / 254) + 1) + 1) // Get the max length of a COBS encoded string, we add 1 for the 0x00 delimiter
// Conversion macros (SYSTEM)
#define TICKS_TO_MS(time_ticks) ((time_ticks) * 1000 / osKernelSysTickFrequency) // System ticks to milliseconds
@@ -32,18 +33,21 @@ constexpr uint32_t MAX_DELAY_TICKS = portMAX_DELAY;
// Utility functions
namespace Utils
{
- // Arrays
- uint16_t averageArray(uint16_t array[], int size);
- void writeInt32ToArray(uint8_t* array, int startIndex, int32_t value);
- void readUInt32FromUInt8Array(uint8_t* array, int startIndex, int32_t* value);
+ // Arrays
+ uint16_t averageArray(uint16_t array[], int size);
+ void writeInt32ToArray(uint8_t* array, int startIndex, int32_t value);
+ void readUInt32FromUInt8Array(uint8_t* array, int startIndex, int32_t* value);
- // CRC
- uint32_t getCRC32(uint8_t* data, uint32_t size);
+ // CRC
+ uint32_t getCRC32Aligned(uint8_t* data, uint32_t size);
+ uint16_t getCRC16(uint8_t* data, uint16_t size);
- // String Manipulation
- inline bool IsAsciiNum(uint8_t c) { return (c >= '0' && c <= '9'); }
- inline bool IsAsciiChar(uint8_t c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); }
- inline bool IsAsciiLowercase(uint8_t c) { return (c >= 'a' && c <= 'z'); }
+ bool IsCrc16Correct(uint8_t* data, uint16_t size, uint16_t crc);
+
+ // String Manipulation
+ inline bool IsAsciiNum(uint8_t c) { return (c >= '0' && c <= '9'); }
+ inline bool IsAsciiChar(uint8_t c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); }
+ inline bool IsAsciiLowercase(uint8_t c) { return (c >= 'a' && c <= 'z'); }
// String to number conversion
int32_t stringToLong(const char* str);
@@ -51,4 +55,4 @@ namespace Utils
}
-#endif // AVIONICS_INCLUDE_SOAR_UTILS_HPP_
\ No newline at end of file
+#endif // AVIONICS_INCLUDE_SOAR_UTILS_HPP_
\ No newline at end of file
diff --git a/Components/main_avionics.cpp b/Components/main_avionics.cpp
index c9722e2..631a8c4 100644
--- a/Components/main_avionics.cpp
+++ b/Components/main_avionics.cpp
@@ -19,6 +19,10 @@
#include "FlightTask.hpp"
#include "DebugTask.hpp"
+#include "PIRxProtocolTask.hpp"
+#include "SOBRxRepeaterTask.hpp"
+#include "DMBRxProtocolTask.hpp"
+
/* Global Variables ------------------------------------------------------------------*/
Mutex Global::vaListMutex;
@@ -32,6 +36,9 @@ void run_main() {
FlightTask::Inst().InitTask();
UARTTask::Inst().InitTask();
DebugTask::Inst().InitTask();
+ PIRxProtocolTask::Inst().InitTask();
+ DMBRxProtocolTask::Inst().InitTask();
+ SOBRxRepeaterTask::Inst().InitTask();
// Print System Boot Info : Warning, don't queue more than 10 prints before scheduler starts
SOAR_PRINT("\n-- AVIONICS CORE --\n");
diff --git a/Components/main_avionics.hpp b/Components/main_avionics.hpp
index d5d75dc..c2c8e1f 100644
--- a/Components/main_avionics.hpp
+++ b/Components/main_avionics.hpp
@@ -33,7 +33,7 @@ namespace Global
extern UART_HandleTypeDef huart1; // UART1 - SOB
extern UART_HandleTypeDef huart2; // UART2 - UMBILICAL
extern UART_HandleTypeDef huart3; // UART3 - RADIO
-
+extern UART_HandleTypeDef hlpuart1; // LPUART1 - PI
//ADC Handles
extern ADC_HandleTypeDef hadc1; // ADC1
extern ADC_HandleTypeDef hadc2; // ADC2
@@ -57,7 +57,8 @@ namespace SystemHandles {
constexpr UART_HandleTypeDef* UART_SOB = &huart1;
constexpr UART_HandleTypeDef* UART_Umbilical = &huart2;
constexpr UART_HandleTypeDef* UART_Radio = &huart3;
- constexpr UART_HandleTypeDef* UART_Debug = &huart3;
+ constexpr UART_HandleTypeDef* UART_Debug = &huart2;
+ constexpr UART_HandleTypeDef* UART_PI = &hlpuart1;
constexpr ADC_HandleTypeDef* ADC_CombustionChamber = &hadc1;
constexpr ADC_HandleTypeDef* ADC_Battery = &hadc2;
diff --git a/Core/Inc/stm32l4xx_it.h b/Core/Inc/stm32l4xx_it.h
index fcb7424..f874272 100644
--- a/Core/Inc/stm32l4xx_it.h
+++ b/Core/Inc/stm32l4xx_it.h
@@ -53,7 +53,10 @@ void BusFault_Handler(void);
void UsageFault_Handler(void);
void DebugMon_Handler(void);
void TIM1_UP_TIM16_IRQHandler(void);
+void USART1_IRQHandler(void);
+void USART2_IRQHandler(void);
void USART3_IRQHandler(void);
+void LPUART1_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
diff --git a/Core/Src/main.c b/Core/Src/main.c
index 7f9c3fe..b035055 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -367,8 +367,8 @@ static void MX_LPUART1_UART_Init(void)
/* USER CODE END LPUART1_Init 1 */
hlpuart1.Instance = LPUART1;
- hlpuart1.Init.BaudRate = 209700;
- hlpuart1.Init.WordLength = UART_WORDLENGTH_7B;
+ hlpuart1.Init.BaudRate = 57600;
+ hlpuart1.Init.WordLength = UART_WORDLENGTH_8B;
hlpuart1.Init.StopBits = UART_STOPBITS_1;
hlpuart1.Init.Parity = UART_PARITY_NONE;
hlpuart1.Init.Mode = UART_MODE_TX_RX;
@@ -471,7 +471,7 @@ static void MX_USART3_UART_Init(void)
/* USER CODE END USART3_Init 1 */
huart3.Instance = USART3;
- huart3.Init.BaudRate = 115200;
+ huart3.Init.BaudRate = 57600;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
@@ -480,7 +480,7 @@ static void MX_USART3_UART_Init(void)
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
- if (HAL_RS485Ex_Init(&huart3, UART_DE_POLARITY_HIGH, 0, 0) != HAL_OK)
+ if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
diff --git a/Core/Src/stm32l4xx_hal_msp.c b/Core/Src/stm32l4xx_hal_msp.c
index eb38cfa..35a873e 100644
--- a/Core/Src/stm32l4xx_hal_msp.c
+++ b/Core/Src/stm32l4xx_hal_msp.c
@@ -340,6 +340,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+ /* LPUART1 interrupt Init */
+ HAL_NVIC_SetPriority(LPUART1_IRQn, 5, 0);
+ HAL_NVIC_EnableIRQ(LPUART1_IRQn);
/* USER CODE BEGIN LPUART1_MspInit 1 */
/* USER CODE END LPUART1_MspInit 1 */
@@ -374,6 +377,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /* USART1 interrupt Init */
+ HAL_NVIC_SetPriority(USART1_IRQn, 5, 0);
+ HAL_NVIC_EnableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_MspInit 1 */
/* USER CODE END USART1_MspInit 1 */
@@ -408,6 +414,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /* USART2 interrupt Init */
+ HAL_NVIC_SetPriority(USART2_IRQn, 5, 0);
+ HAL_NVIC_EnableIRQ(USART2_IRQn);
/* USER CODE BEGIN USART2_MspInit 1 */
/* USER CODE END USART2_MspInit 1 */
@@ -483,6 +492,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
+ /* LPUART1 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(LPUART1_IRQn);
/* USER CODE BEGIN LPUART1_MspDeInit 1 */
/* USER CODE END LPUART1_MspDeInit 1 */
@@ -501,6 +512,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
+ /* USART1 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_MspDeInit 1 */
/* USER CODE END USART1_MspDeInit 1 */
@@ -519,6 +532,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
+ /* USART2 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(USART2_IRQn);
/* USER CODE BEGIN USART2_MspDeInit 1 */
/* USER CODE END USART2_MspDeInit 1 */
diff --git a/Core/Src/stm32l4xx_it.c b/Core/Src/stm32l4xx_it.c
index a174546..87039d9 100644
--- a/Core/Src/stm32l4xx_it.c
+++ b/Core/Src/stm32l4xx_it.c
@@ -55,6 +55,9 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
+extern UART_HandleTypeDef hlpuart1;
+extern UART_HandleTypeDef huart1;
+extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3;
extern TIM_HandleTypeDef htim1;
@@ -174,6 +177,34 @@ void TIM1_UP_TIM16_IRQHandler(void)
/* USER CODE END TIM1_UP_TIM16_IRQn 1 */
}
+/**
+ * @brief This function handles USART1 global interrupt.
+ */
+void USART1_IRQHandler(void)
+{
+ /* USER CODE BEGIN USART1_IRQn 0 */
+
+ /* USER CODE END USART1_IRQn 0 */
+ HAL_UART_IRQHandler(&huart1);
+ /* USER CODE BEGIN USART1_IRQn 1 */
+
+ /* USER CODE END USART1_IRQn 1 */
+}
+
+/**
+ * @brief This function handles USART2 global interrupt.
+ */
+void USART2_IRQHandler(void)
+{
+ /* USER CODE BEGIN USART2_IRQn 0 */
+
+ /* USER CODE END USART2_IRQn 0 */
+ HAL_UART_IRQHandler(&huart2);
+ /* USER CODE BEGIN USART2_IRQn 1 */
+
+ /* USER CODE END USART2_IRQn 1 */
+}
+
/**
* @brief This function handles USART3 global interrupt.
*/
@@ -188,6 +219,20 @@ void USART3_IRQHandler(void)
/* USER CODE END USART3_IRQn 1 */
}
+/**
+ * @brief This function handles LPUART1 global interrupt.
+ */
+void LPUART1_IRQHandler(void)
+{
+ /* USER CODE BEGIN LPUART1_IRQn 0 */
+
+ /* USER CODE END LPUART1_IRQn 0 */
+ HAL_UART_IRQHandler(&hlpuart1);
+ /* USER CODE BEGIN LPUART1_IRQn 1 */
+
+ /* USER CODE END LPUART1_IRQn 1 */
+}
+
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
diff --git a/Debug/Components/Communication/subdir.mk b/Debug/Components/Communication/subdir.mk
index e1498d6..96b3c18 100644
--- a/Debug/Components/Communication/subdir.mk
+++ b/Debug/Components/Communication/subdir.mk
@@ -15,13 +15,13 @@ CPP_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-Components/Communication/%.o Components/Communication/%.su: ../Components/Communication/%.cpp Components/Communication/subdir.mk
- arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Components/Communication/%.o Components/Communication/%.su Components/Communication/%.cyclo: ../Components/Communication/%.cpp Components/Communication/subdir.mk
+ arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Components-2f-Communication
clean-Components-2f-Communication:
- -$(RM) ./Components/Communication/UARTTask.d ./Components/Communication/UARTTask.o ./Components/Communication/UARTTask.su
+ -$(RM) ./Components/Communication/UARTTask.cyclo ./Components/Communication/UARTTask.d ./Components/Communication/UARTTask.o ./Components/Communication/UARTTask.su
.PHONY: clean-Components-2f-Communication
diff --git a/Debug/Components/Core/subdir.mk b/Debug/Components/Core/subdir.mk
index f83dd09..e2b06a5 100644
--- a/Debug/Components/Core/subdir.mk
+++ b/Debug/Components/Core/subdir.mk
@@ -24,13 +24,13 @@ CPP_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-Components/Core/%.o Components/Core/%.su: ../Components/Core/%.cpp Components/Core/subdir.mk
- arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Components/Core/%.o Components/Core/%.su Components/Core/%.cyclo: ../Components/Core/%.cpp Components/Core/subdir.mk
+ arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Components-2f-Core
clean-Components-2f-Core:
- -$(RM) ./Components/Core/Command.d ./Components/Core/Command.o ./Components/Core/Command.su ./Components/Core/Mutex.d ./Components/Core/Mutex.o ./Components/Core/Mutex.su ./Components/Core/Queue.d ./Components/Core/Queue.o ./Components/Core/Queue.su ./Components/Core/Task.d ./Components/Core/Task.o ./Components/Core/Task.su
+ -$(RM) ./Components/Core/Command.cyclo ./Components/Core/Command.d ./Components/Core/Command.o ./Components/Core/Command.su ./Components/Core/Mutex.cyclo ./Components/Core/Mutex.d ./Components/Core/Mutex.o ./Components/Core/Mutex.su ./Components/Core/Queue.cyclo ./Components/Core/Queue.d ./Components/Core/Queue.o ./Components/Core/Queue.su ./Components/Core/Task.cyclo ./Components/Core/Task.d ./Components/Core/Task.o ./Components/Core/Task.su
.PHONY: clean-Components-2f-Core
diff --git a/Debug/Components/FlightControl/subdir.mk b/Debug/Components/FlightControl/subdir.mk
index de18d6e..cc0822c 100644
--- a/Debug/Components/FlightControl/subdir.mk
+++ b/Debug/Components/FlightControl/subdir.mk
@@ -15,13 +15,13 @@ CPP_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-Components/FlightControl/%.o Components/FlightControl/%.su: ../Components/FlightControl/%.cpp Components/FlightControl/subdir.mk
- arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Components/FlightControl/%.o Components/FlightControl/%.su Components/FlightControl/%.cyclo: ../Components/FlightControl/%.cpp Components/FlightControl/subdir.mk
+ arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Components-2f-FlightControl
clean-Components-2f-FlightControl:
- -$(RM) ./Components/FlightControl/FlightTask.d ./Components/FlightControl/FlightTask.o ./Components/FlightControl/FlightTask.su
+ -$(RM) ./Components/FlightControl/FlightTask.cyclo ./Components/FlightControl/FlightTask.d ./Components/FlightControl/FlightTask.o ./Components/FlightControl/FlightTask.su
.PHONY: clean-Components-2f-FlightControl
diff --git a/Debug/Components/SoarDebug/subdir.mk b/Debug/Components/SoarDebug/subdir.mk
index 55796d7..314d2cc 100644
--- a/Debug/Components/SoarDebug/subdir.mk
+++ b/Debug/Components/SoarDebug/subdir.mk
@@ -15,13 +15,13 @@ CPP_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-Components/SoarDebug/%.o Components/SoarDebug/%.su: ../Components/SoarDebug/%.cpp Components/SoarDebug/subdir.mk
- arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Components/SoarDebug/%.o Components/SoarDebug/%.su Components/SoarDebug/%.cyclo: ../Components/SoarDebug/%.cpp Components/SoarDebug/subdir.mk
+ arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Components-2f-SoarDebug
clean-Components-2f-SoarDebug:
- -$(RM) ./Components/SoarDebug/DebugTask.d ./Components/SoarDebug/DebugTask.o ./Components/SoarDebug/DebugTask.su
+ -$(RM) ./Components/SoarDebug/DebugTask.cyclo ./Components/SoarDebug/DebugTask.d ./Components/SoarDebug/DebugTask.o ./Components/SoarDebug/DebugTask.su
.PHONY: clean-Components-2f-SoarDebug
diff --git a/Debug/Components/subdir.mk b/Debug/Components/subdir.mk
index 35fb094..8880347 100644
--- a/Debug/Components/subdir.mk
+++ b/Debug/Components/subdir.mk
@@ -18,13 +18,13 @@ CPP_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-Components/%.o Components/%.su: ../Components/%.cpp Components/subdir.mk
- arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Components/%.o Components/%.su Components/%.cyclo: ../Components/%.cpp Components/subdir.mk
+ arm-none-eabi-g++ "$<" -mcpu=cortex-m4 -std=gnu++20 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -Wno-volatile -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Components
clean-Components:
- -$(RM) ./Components/Utils.d ./Components/Utils.o ./Components/Utils.su ./Components/main_avionics.d ./Components/main_avionics.o ./Components/main_avionics.su
+ -$(RM) ./Components/Utils.cyclo ./Components/Utils.d ./Components/Utils.o ./Components/Utils.su ./Components/main_avionics.cyclo ./Components/main_avionics.d ./Components/main_avionics.o ./Components/main_avionics.su
.PHONY: clean-Components
diff --git a/Debug/Core/Src/subdir.mk b/Debug/Core/Src/subdir.mk
index 2abf89d..3a7936b 100644
--- a/Debug/Core/Src/subdir.mk
+++ b/Debug/Core/Src/subdir.mk
@@ -36,13 +36,13 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-Core/Src/%.o Core/Src/%.su: ../Core/Src/%.c Core/Src/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Core-2f-Src
clean-Core-2f-Src:
- -$(RM) ./Core/Src/freertos.d ./Core/Src/freertos.o ./Core/Src/freertos.su ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32l4xx_hal_msp.d ./Core/Src/stm32l4xx_hal_msp.o ./Core/Src/stm32l4xx_hal_msp.su ./Core/Src/stm32l4xx_hal_timebase_tim.d ./Core/Src/stm32l4xx_hal_timebase_tim.o ./Core/Src/stm32l4xx_hal_timebase_tim.su ./Core/Src/stm32l4xx_it.d ./Core/Src/stm32l4xx_it.o ./Core/Src/stm32l4xx_it.su ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32l4xx.d ./Core/Src/system_stm32l4xx.o ./Core/Src/system_stm32l4xx.su
+ -$(RM) ./Core/Src/freertos.cyclo ./Core/Src/freertos.d ./Core/Src/freertos.o ./Core/Src/freertos.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32l4xx_hal_msp.cyclo ./Core/Src/stm32l4xx_hal_msp.d ./Core/Src/stm32l4xx_hal_msp.o ./Core/Src/stm32l4xx_hal_msp.su ./Core/Src/stm32l4xx_hal_timebase_tim.cyclo ./Core/Src/stm32l4xx_hal_timebase_tim.d ./Core/Src/stm32l4xx_hal_timebase_tim.o ./Core/Src/stm32l4xx_hal_timebase_tim.su ./Core/Src/stm32l4xx_it.cyclo ./Core/Src/stm32l4xx_it.d ./Core/Src/stm32l4xx_it.o ./Core/Src/stm32l4xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32l4xx.cyclo ./Core/Src/system_stm32l4xx.d ./Core/Src/system_stm32l4xx.o ./Core/Src/system_stm32l4xx.su
.PHONY: clean-Core-2f-Src
diff --git a/Debug/Core/Startup/subdir.mk b/Debug/Core/Startup/subdir.mk
index e047815..83b6780 100644
--- a/Debug/Core/Startup/subdir.mk
+++ b/Debug/Core/Startup/subdir.mk
@@ -16,7 +16,7 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk
- arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -DDEBUG -c -I"C:/Users/shiva/Desktop/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/shiva/Desktop/RCU-STM/Components/_Libraries/embedded-template-library/include/etl" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<"
+ arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -DDEBUG -c -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/_Libraries/embedded-template-library/include" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/_Libraries/embedded-template-library/include/etl" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<"
clean: clean-Core-2f-Startup
diff --git a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk
index dd3c537..5da6aa0 100644
--- a/Debug/Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk
+++ b/Debug/Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk
@@ -87,13 +87,13 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-Drivers/STM32L4xx_HAL_Driver/Src/%.o Drivers/STM32L4xx_HAL_Driver/Src/%.su: ../Drivers/STM32L4xx_HAL_Driver/Src/%.c Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32L4xx_HAL_Driver/Src/%.o Drivers/STM32L4xx_HAL_Driver/Src/%.su Drivers/STM32L4xx_HAL_Driver/Src/%.cyclo: ../Drivers/STM32L4xx_HAL_Driver/Src/%.c Drivers/STM32L4xx_HAL_Driver/Src/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Drivers-2f-STM32L4xx_HAL_Driver-2f-Src
clean-Drivers-2f-STM32L4xx_HAL_Driver-2f-Src:
- -$(RM) ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.su
+ -$(RM) ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_crc_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.su ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.cyclo ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.d ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.o ./Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.su
.PHONY: clean-Drivers-2f-STM32L4xx_HAL_Driver-2f-Src
diff --git a/Debug/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/subdir.mk b/Debug/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/subdir.mk
index fc10dbb..d6a527a 100644
--- a/Debug/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/subdir.mk
+++ b/Debug/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/subdir.mk
@@ -15,13 +15,13 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/%.o Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/%.su: ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/%.c Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/%.o Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/%.su Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/%.cyclo: ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/%.c Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-CMSIS_RTOS
clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-CMSIS_RTOS:
- -$(RM) ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.d ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.o ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.su
+ -$(RM) ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.d ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.o ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.su
.PHONY: clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-CMSIS_RTOS
diff --git a/Debug/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/subdir.mk b/Debug/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/subdir.mk
index 2094f8e..99ef87d 100644
--- a/Debug/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/subdir.mk
+++ b/Debug/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/subdir.mk
@@ -15,13 +15,13 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/%.o Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/%.su: ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/%.c Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/%.o Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/%.su Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/%.cyclo: ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/%.c Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-portable-2f-GCC-2f-ARM_CM4F
clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-portable-2f-GCC-2f-ARM_CM4F:
- -$(RM) ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.d ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.su
+ -$(RM) ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.d ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.su
.PHONY: clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-portable-2f-GCC-2f-ARM_CM4F
diff --git a/Debug/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/subdir.mk b/Debug/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/subdir.mk
index 35f5249..165c615 100644
--- a/Debug/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/subdir.mk
+++ b/Debug/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/subdir.mk
@@ -15,13 +15,13 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/%.o Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/%.su: ../Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/%.c Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/%.o Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/%.su Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/%.cyclo: ../Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/%.c Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-portable-2f-MemMang
clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-portable-2f-MemMang:
- -$(RM) ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.d ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.su
+ -$(RM) ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.d ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.su
.PHONY: clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source-2f-portable-2f-MemMang
diff --git a/Debug/Middlewares/Third_Party/FreeRTOS/Source/subdir.mk b/Debug/Middlewares/Third_Party/FreeRTOS/Source/subdir.mk
index e3ebe8a..d35807e 100644
--- a/Debug/Middlewares/Third_Party/FreeRTOS/Source/subdir.mk
+++ b/Debug/Middlewares/Third_Party/FreeRTOS/Source/subdir.mk
@@ -33,13 +33,13 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-Middlewares/Third_Party/FreeRTOS/Source/%.o Middlewares/Third_Party/FreeRTOS/Source/%.su: ../Middlewares/Third_Party/FreeRTOS/Source/%.c Middlewares/Third_Party/FreeRTOS/Source/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/shiva/Desktop/RCU-STM/Components/Communication/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/Core/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/shiva/Desktop/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Middlewares/Third_Party/FreeRTOS/Source/%.o Middlewares/Third_Party/FreeRTOS/Source/%.su Middlewares/Third_Party/FreeRTOS/Source/%.cyclo: ../Middlewares/Third_Party/FreeRTOS/Source/%.c Middlewares/Third_Party/FreeRTOS/Source/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32L431xx -c -I../Core/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Communication/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/Core/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/FlightControl/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarDebug/Inc" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components" -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_EmbeddedProtoLib" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/EmbeddedProto/src" -I"C:/Users/marce/Downloads/SOAR/RCU/RCU-STM/Components/SoarProtocol/SoarProto/_C++" -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
clean: clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source
clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source:
- -$(RM) ./Middlewares/Third_Party/FreeRTOS/Source/croutine.d ./Middlewares/Third_Party/FreeRTOS/Source/croutine.o ./Middlewares/Third_Party/FreeRTOS/Source/croutine.su ./Middlewares/Third_Party/FreeRTOS/Source/event_groups.d ./Middlewares/Third_Party/FreeRTOS/Source/event_groups.o ./Middlewares/Third_Party/FreeRTOS/Source/event_groups.su ./Middlewares/Third_Party/FreeRTOS/Source/list.d ./Middlewares/Third_Party/FreeRTOS/Source/list.o ./Middlewares/Third_Party/FreeRTOS/Source/list.su ./Middlewares/Third_Party/FreeRTOS/Source/queue.d ./Middlewares/Third_Party/FreeRTOS/Source/queue.o ./Middlewares/Third_Party/FreeRTOS/Source/queue.su ./Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.d ./Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.o ./Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.su ./Middlewares/Third_Party/FreeRTOS/Source/tasks.d ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o ./Middlewares/Third_Party/FreeRTOS/Source/tasks.su ./Middlewares/Third_Party/FreeRTOS/Source/timers.d ./Middlewares/Third_Party/FreeRTOS/Source/timers.o ./Middlewares/Third_Party/FreeRTOS/Source/timers.su
+ -$(RM) ./Middlewares/Third_Party/FreeRTOS/Source/croutine.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/croutine.d ./Middlewares/Third_Party/FreeRTOS/Source/croutine.o ./Middlewares/Third_Party/FreeRTOS/Source/croutine.su ./Middlewares/Third_Party/FreeRTOS/Source/event_groups.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/event_groups.d ./Middlewares/Third_Party/FreeRTOS/Source/event_groups.o ./Middlewares/Third_Party/FreeRTOS/Source/event_groups.su ./Middlewares/Third_Party/FreeRTOS/Source/list.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/list.d ./Middlewares/Third_Party/FreeRTOS/Source/list.o ./Middlewares/Third_Party/FreeRTOS/Source/list.su ./Middlewares/Third_Party/FreeRTOS/Source/queue.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/queue.d ./Middlewares/Third_Party/FreeRTOS/Source/queue.o ./Middlewares/Third_Party/FreeRTOS/Source/queue.su ./Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.d ./Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.o ./Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.su ./Middlewares/Third_Party/FreeRTOS/Source/tasks.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/tasks.d ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o ./Middlewares/Third_Party/FreeRTOS/Source/tasks.su ./Middlewares/Third_Party/FreeRTOS/Source/timers.cyclo ./Middlewares/Third_Party/FreeRTOS/Source/timers.d ./Middlewares/Third_Party/FreeRTOS/Source/timers.o ./Middlewares/Third_Party/FreeRTOS/Source/timers.su
.PHONY: clean-Middlewares-2f-Third_Party-2f-FreeRTOS-2f-Source
diff --git a/Debug/makefile b/Debug/makefile
index 1759883..006cca9 100644
--- a/Debug/makefile
+++ b/Debug/makefile
@@ -17,6 +17,9 @@ RM := rm -rf
-include Core/Startup/subdir.mk
-include Core/Src/subdir.mk
-include Core/subdir.mk
+-include Components/SoarProtocol/SoarProto/_EmbeddedProtoLib/subdir.mk
+-include Components/SoarProtocol/SoarProto/subdir.mk
+-include Components/SoarProtocol/subdir.mk
-include Components/SoarDebug/subdir.mk
-include Components/FlightControl/subdir.mk
-include Components/Core/subdir.mk
@@ -85,8 +88,8 @@ all: main-build
main-build: RCU-STM.elf secondary-outputs
# Tool invocations
-RCU-STM.elf RCU-STM.map: $(OBJS) $(USER_OBJS) C:\Users\shiva\Desktop\RCU-STM\STM32L431RBTX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
- arm-none-eabi-g++ -o "RCU-STM.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Users\shiva\Desktop\RCU-STM\STM32L431RBTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="RCU-STM.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group
+RCU-STM.elf RCU-STM.map: $(OBJS) $(USER_OBJS) C:\Users\marce\Downloads\SOAR\RCU\RCU-STM\STM32L431RBTX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
+ arm-none-eabi-g++ -o "RCU-STM.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Users\marce\Downloads\SOAR\RCU\RCU-STM\STM32L431RBTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="RCU-STM.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group
@echo 'Finished building target: $@'
@echo ' '
diff --git a/Debug/objects.list b/Debug/objects.list
index da44074..68e8710 100644
--- a/Debug/objects.list
+++ b/Debug/objects.list
@@ -5,6 +5,14 @@
"./Components/Core/Task.o"
"./Components/FlightControl/FlightTask.o"
"./Components/SoarDebug/DebugTask.o"
+"./Components/SoarProtocol/DMBRxProtocolTask.o"
+"./Components/SoarProtocol/PIRxProtocolTask.o"
+"./Components/SoarProtocol/SoarProto/ProtocolTask.o"
+"./Components/SoarProtocol/SoarProto/RepeaterTask.o"
+"./Components/SoarProtocol/SoarProto/cobs.o"
+"./Components/SoarProtocol/SoarProto/_EmbeddedProtoLib/Fields.o"
+"./Components/SoarProtocol/SoarProto/_EmbeddedProtoLib/MessageInterface.o"
+"./Components/SoarProtocol/SoarProto/_EmbeddedProtoLib/ReadBufferSection.o"
"./Components/Utils.o"
"./Components/main_avionics.o"
"./Core/RunInterface.o"
diff --git a/Debug/sources.mk b/Debug/sources.mk
index c51a392..6055b6e 100644
--- a/Debug/sources.mk
+++ b/Debug/sources.mk
@@ -14,6 +14,7 @@ C_SRCS :=
CPP_SRCS :=
S_UPPER_SRCS :=
O_SRCS :=
+CYCLO_FILES :=
OBJDUMP_LIST :=
C_UPPER_DEPS :=
S_DEPS :=
@@ -35,6 +36,9 @@ Components/Communication \
Components/Core \
Components/FlightControl \
Components/SoarDebug \
+Components/SoarProtocol \
+Components/SoarProtocol/SoarProto \
+Components/SoarProtocol/SoarProto/_EmbeddedProtoLib \
Components \
Core \
Core/Src \
diff --git a/RCU-STM.ioc b/RCU-STM.ioc
index b4484c6..9e82c06 100644
--- a/RCU-STM.ioc
+++ b/RCU-STM.ioc
@@ -7,6 +7,9 @@ ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
ADC1.Rank-0\#ChannelRegularConversion=1
ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5
ADC1.master=1
+CAD.formats=
+CAD.pinconfig=
+CAD.provider=
FREERTOS.IPParameters=Tasks01,configUSE_NEWLIB_REENTRANT,configUSE_TIMERS,configTOTAL_HEAP_SIZE
FREERTOS.Tasks01=defaultTask,0,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL
FREERTOS.configTOTAL_HEAP_SIZE=32768
@@ -17,6 +20,9 @@ GPIO.groupedBy=Group By Peripherals
I2C1.IPParameters=Timing
I2C1.Timing=0x10707DBC
KeepUserPlacement=false
+LPUART1.BaudRate=57600
+LPUART1.IPParameters=BaudRate,WordLength
+LPUART1.WordLength=UART_WORDLENGTH_8B
Mcu.CPN=STM32L431RBT6
Mcu.Family=STM32L4
Mcu.IP0=ADC1
@@ -94,6 +100,7 @@ NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
+NVIC.LPUART1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false\:false
@@ -106,6 +113,8 @@ NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false
NVIC.TIM1_UP_TIM16_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
NVIC.TimeBase=TIM1_UP_TIM16_IRQn
NVIC.TimeBaseIP=TIM1
+NVIC.USART1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
+NVIC.USART2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART3_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
PA0.GPIOParameters=GPIO_Label
@@ -246,7 +255,6 @@ PC9.GPIO_Label=RELAY3
PC9.Locked=true
PC9.Signal=GPIO_Output
PD2.Locked=true
-PD2.Mode=Hardware Flow Control (RS485)
PD2.Signal=USART3_DE
PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
@@ -275,6 +283,7 @@ ProjectManager.PreviousToolchain=STM32CubeIDE
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=RCU-STM.ioc
ProjectManager.ProjectName=RCU-STM
+ProjectManager.ProjectStructure=
ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=STM32CubeIDE
@@ -353,9 +362,9 @@ USART1.IPParameters=VirtualMode-Asynchronous
USART1.VirtualMode-Asynchronous=VM_ASYNC
USART2.IPParameters=VirtualMode-Asynchronous
USART2.VirtualMode-Asynchronous=VM_ASYNC
-USART3.IPParameters=VirtualMode-Asynchronous,VirtualMode-Hardware Flow Control (RS485)
+USART3.BaudRate=57600
+USART3.IPParameters=VirtualMode-Asynchronous,BaudRate
USART3.VirtualMode-Asynchronous=VM_ASYNC
-USART3.VirtualMode-Hardware\ Flow\ Control\ (RS485)=VM_ASYNC
VP_CRC_VS_CRC.Mode=CRC_Activate
VP_CRC_VS_CRC.Signal=CRC_VS_CRC
VP_FREERTOS_VS_CMSIS_V1.Mode=CMSIS_V1
@@ -363,4 +372,5 @@ VP_FREERTOS_VS_CMSIS_V1.Signal=FREERTOS_VS_CMSIS_V1
VP_SYS_VS_tim1.Mode=TIM1
VP_SYS_VS_tim1.Signal=SYS_VS_tim1
board=custom
+rtos.0.ip=FREERTOS
isbadioc=false
diff --git a/STM32L431RBTX_FLASH.ld b/STM32L431RBTX_FLASH.ld
index caa297e..566d677 100644
--- a/STM32L431RBTX_FLASH.ld
+++ b/STM32L431RBTX_FLASH.ld
@@ -39,8 +39,8 @@ ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
-_Min_Heap_Size = 0x200 ; /* required amount of heap */
-_Min_Stack_Size = 0x400 ; /* required amount of stack */
+_Min_Heap_Size = 0x200; /* required amount of heap */
+_Min_Stack_Size = 0x400; /* required amount of stack */
/* Memories definition */
MEMORY