From aaf82d37d2dc5909f15a91fa68670b6fa63e2a7c Mon Sep 17 00:00:00 2001 From: Johnathon Slightham Date: Sat, 12 Jul 2025 14:13:11 -0400 Subject: [PATCH] Board to PC --- .../ConfigMessage_generated.h | 634 ------------------ components/rpc/CommunicationRouter.cpp | 5 + components/rpc/MessagingInterface.cpp | 12 +- components/rpc/TCPServer.cpp | 22 +- components/rpc/include/CommunicationRouter.h | 2 + components/rpc/include/TCPServer.h | 2 +- main/LoopManager.cpp | 7 +- main/LoopManager.h | 2 +- sdkconfig | 139 ++-- 9 files changed, 139 insertions(+), 686 deletions(-) delete mode 100644 components/flatbuffers/include/flatbuffers_generated/ConfigMessage_generated.h diff --git a/components/flatbuffers/include/flatbuffers_generated/ConfigMessage_generated.h b/components/flatbuffers/include/flatbuffers_generated/ConfigMessage_generated.h deleted file mode 100644 index c2698ef..0000000 --- a/components/flatbuffers/include/flatbuffers_generated/ConfigMessage_generated.h +++ /dev/null @@ -1,634 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - - -#ifndef FLATBUFFERS_GENERATED_CONFIGMESSAGE_MESSAGING_H_ -#define FLATBUFFERS_GENERATED_CONFIGMESSAGE_MESSAGING_H_ - -#include "flatbuffers/flatbuffers.h" - -// Ensure the included flatbuffers.h is the same version as when this file was -// generated, otherwise it may not be compatible. -//static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && -// FLATBUFFERS_VERSION_MINOR == 2 && -// FLATBUFFERS_VERSION_REVISION == 10, -// "Non-compatible flatbuffers version included"); - -namespace Messaging { - -struct I32Value; -struct I32ValueBuilder; - -struct U32Value; -struct U32ValueBuilder; - -struct I64Value; -struct I64ValueBuilder; - -struct U64Value; -struct U64ValueBuilder; - -struct StringValue; -struct StringValueBuilder; - -struct BlobValue; -struct BlobValueBuilder; - -struct ConfigMessage; -struct ConfigMessageBuilder; - -enum EntryType : int8_t { - EntryType_NONE = 0, - EntryType_I32 = 1, - EntryType_U32 = 2, - EntryType_I64 = 3, - EntryType_U64 = 4, - EntryType_STRING = 5, - EntryType_BLOB = 6, - EntryType_MIN = EntryType_NONE, - EntryType_MAX = EntryType_BLOB -}; - -inline const EntryType (&EnumValuesEntryType())[7] { - static const EntryType values[] = { - EntryType_NONE, - EntryType_I32, - EntryType_U32, - EntryType_I64, - EntryType_U64, - EntryType_STRING, - EntryType_BLOB - }; - return values; -} - -inline const char * const *EnumNamesEntryType() { - static const char * const names[8] = { - "NONE", - "I32", - "U32", - "I64", - "U64", - "STRING", - "BLOB", - nullptr - }; - return names; -} - -inline const char *EnumNameEntryType(EntryType e) { - if (::flatbuffers::IsOutRange(e, EntryType_NONE, EntryType_BLOB)) return ""; - const size_t index = static_cast(e); - return EnumNamesEntryType()[index]; -} - -enum NvsValue : uint8_t { - NvsValue_NONE = 0, - NvsValue_I32Value = 1, - NvsValue_U32Value = 2, - NvsValue_I64Value = 3, - NvsValue_U64Value = 4, - NvsValue_StringValue = 5, - NvsValue_BlobValue = 6, - NvsValue_MIN = NvsValue_NONE, - NvsValue_MAX = NvsValue_BlobValue -}; - -inline const NvsValue (&EnumValuesNvsValue())[7] { - static const NvsValue values[] = { - NvsValue_NONE, - NvsValue_I32Value, - NvsValue_U32Value, - NvsValue_I64Value, - NvsValue_U64Value, - NvsValue_StringValue, - NvsValue_BlobValue - }; - return values; -} - -inline const char * const *EnumNamesNvsValue() { - static const char * const names[8] = { - "NONE", - "I32Value", - "U32Value", - "I64Value", - "U64Value", - "StringValue", - "BlobValue", - nullptr - }; - return names; -} - -inline const char *EnumNameNvsValue(NvsValue e) { - if (::flatbuffers::IsOutRange(e, NvsValue_NONE, NvsValue_BlobValue)) return ""; - const size_t index = static_cast(e); - return EnumNamesNvsValue()[index]; -} - -template struct NvsValueTraits { - static const NvsValue enum_value = NvsValue_NONE; -}; - -template<> struct NvsValueTraits { - static const NvsValue enum_value = NvsValue_I32Value; -}; - -template<> struct NvsValueTraits { - static const NvsValue enum_value = NvsValue_U32Value; -}; - -template<> struct NvsValueTraits { - static const NvsValue enum_value = NvsValue_I64Value; -}; - -template<> struct NvsValueTraits { - static const NvsValue enum_value = NvsValue_U64Value; -}; - -template<> struct NvsValueTraits { - static const NvsValue enum_value = NvsValue_StringValue; -}; - -template<> struct NvsValueTraits { - static const NvsValue enum_value = NvsValue_BlobValue; -}; - -bool VerifyNvsValue(::flatbuffers::Verifier &verifier, const void *obj, NvsValue type); -bool VerifyNvsValueVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); - -struct I32Value FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef I32ValueBuilder Builder; - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_VALUE = 4 - }; - int32_t value() const { - return GetField(VT_VALUE, 0); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyField(verifier, VT_VALUE, 4) && - verifier.EndTable(); - } -}; - -struct I32ValueBuilder { - typedef I32Value Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_value(int32_t value) { - fbb_.AddElement(I32Value::VT_VALUE, value, 0); - } - explicit I32ValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateI32Value( - ::flatbuffers::FlatBufferBuilder &_fbb, - int32_t value = 0) { - I32ValueBuilder builder_(_fbb); - builder_.add_value(value); - return builder_.Finish(); -} - -struct U32Value FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef U32ValueBuilder Builder; - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_VALUE = 4 - }; - uint32_t value() const { - return GetField(VT_VALUE, 0); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyField(verifier, VT_VALUE, 4) && - verifier.EndTable(); - } -}; - -struct U32ValueBuilder { - typedef U32Value Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_value(uint32_t value) { - fbb_.AddElement(U32Value::VT_VALUE, value, 0); - } - explicit U32ValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateU32Value( - ::flatbuffers::FlatBufferBuilder &_fbb, - uint32_t value = 0) { - U32ValueBuilder builder_(_fbb); - builder_.add_value(value); - return builder_.Finish(); -} - -struct I64Value FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef I64ValueBuilder Builder; - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_VALUE = 4 - }; - int64_t value() const { - return GetField(VT_VALUE, 0); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyField(verifier, VT_VALUE, 8) && - verifier.EndTable(); - } -}; - -struct I64ValueBuilder { - typedef I64Value Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_value(int64_t value) { - fbb_.AddElement(I64Value::VT_VALUE, value, 0); - } - explicit I64ValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateI64Value( - ::flatbuffers::FlatBufferBuilder &_fbb, - int64_t value = 0) { - I64ValueBuilder builder_(_fbb); - builder_.add_value(value); - return builder_.Finish(); -} - -struct U64Value FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef U64ValueBuilder Builder; - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_VALUE = 4 - }; - uint64_t value() const { - return GetField(VT_VALUE, 0); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyField(verifier, VT_VALUE, 8) && - verifier.EndTable(); - } -}; - -struct U64ValueBuilder { - typedef U64Value Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_value(uint64_t value) { - fbb_.AddElement(U64Value::VT_VALUE, value, 0); - } - explicit U64ValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateU64Value( - ::flatbuffers::FlatBufferBuilder &_fbb, - uint64_t value = 0) { - U64ValueBuilder builder_(_fbb); - builder_.add_value(value); - return builder_.Finish(); -} - -struct StringValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef StringValueBuilder Builder; - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_VALUE = 4 - }; - const ::flatbuffers::String *value() const { - return GetPointer(VT_VALUE); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyOffset(verifier, VT_VALUE) && - verifier.VerifyString(value()) && - verifier.EndTable(); - } -}; - -struct StringValueBuilder { - typedef StringValue Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_value(::flatbuffers::Offset<::flatbuffers::String> value) { - fbb_.AddOffset(StringValue::VT_VALUE, value); - } - explicit StringValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateStringValue( - ::flatbuffers::FlatBufferBuilder &_fbb, - ::flatbuffers::Offset<::flatbuffers::String> value = 0) { - StringValueBuilder builder_(_fbb); - builder_.add_value(value); - return builder_.Finish(); -} - -inline ::flatbuffers::Offset CreateStringValueDirect( - ::flatbuffers::FlatBufferBuilder &_fbb, - const char *value = nullptr) { - auto value__ = value ? _fbb.CreateString(value) : 0; - return Messaging::CreateStringValue( - _fbb, - value__); -} - -struct BlobValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef BlobValueBuilder Builder; - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_VALUE = 4 - }; - const ::flatbuffers::Vector *value() const { - return GetPointer *>(VT_VALUE); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyOffset(verifier, VT_VALUE) && - verifier.VerifyVector(value()) && - verifier.EndTable(); - } -}; - -struct BlobValueBuilder { - typedef BlobValue Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_value(::flatbuffers::Offset<::flatbuffers::Vector> value) { - fbb_.AddOffset(BlobValue::VT_VALUE, value); - } - explicit BlobValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateBlobValue( - ::flatbuffers::FlatBufferBuilder &_fbb, - ::flatbuffers::Offset<::flatbuffers::Vector> value = 0) { - BlobValueBuilder builder_(_fbb); - builder_.add_value(value); - return builder_.Finish(); -} - -inline ::flatbuffers::Offset CreateBlobValueDirect( - ::flatbuffers::FlatBufferBuilder &_fbb, - const std::vector *value = nullptr) { - auto value__ = value ? _fbb.CreateVector(*value) : 0; - return Messaging::CreateBlobValue( - _fbb, - value__); -} - -struct ConfigMessage FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef ConfigMessageBuilder Builder; - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_KEY = 4, - VT_TYPE = 6, - VT_VALUE_TYPE = 8, - VT_VALUE = 10 - }; - const ::flatbuffers::String *key() const { - return GetPointer(VT_KEY); - } - Messaging::EntryType type() const { - return static_cast(GetField(VT_TYPE, 0)); - } - Messaging::NvsValue value_type() const { - return static_cast(GetField(VT_VALUE_TYPE, 0)); - } - const void *value() const { - return GetPointer(VT_VALUE); - } - template const T *value_as() const; - const Messaging::I32Value *value_as_I32Value() const { - return value_type() == Messaging::NvsValue_I32Value ? static_cast(value()) : nullptr; - } - const Messaging::U32Value *value_as_U32Value() const { - return value_type() == Messaging::NvsValue_U32Value ? static_cast(value()) : nullptr; - } - const Messaging::I64Value *value_as_I64Value() const { - return value_type() == Messaging::NvsValue_I64Value ? static_cast(value()) : nullptr; - } - const Messaging::U64Value *value_as_U64Value() const { - return value_type() == Messaging::NvsValue_U64Value ? static_cast(value()) : nullptr; - } - const Messaging::StringValue *value_as_StringValue() const { - return value_type() == Messaging::NvsValue_StringValue ? static_cast(value()) : nullptr; - } - const Messaging::BlobValue *value_as_BlobValue() const { - return value_type() == Messaging::NvsValue_BlobValue ? static_cast(value()) : nullptr; - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyOffset(verifier, VT_KEY) && - verifier.VerifyString(key()) && - VerifyField(verifier, VT_TYPE, 1) && - VerifyField(verifier, VT_VALUE_TYPE, 1) && - VerifyOffset(verifier, VT_VALUE) && - VerifyNvsValue(verifier, value(), value_type()) && - verifier.EndTable(); - } -}; - -template<> inline const Messaging::I32Value *ConfigMessage::value_as() const { - return value_as_I32Value(); -} - -template<> inline const Messaging::U32Value *ConfigMessage::value_as() const { - return value_as_U32Value(); -} - -template<> inline const Messaging::I64Value *ConfigMessage::value_as() const { - return value_as_I64Value(); -} - -template<> inline const Messaging::U64Value *ConfigMessage::value_as() const { - return value_as_U64Value(); -} - -template<> inline const Messaging::StringValue *ConfigMessage::value_as() const { - return value_as_StringValue(); -} - -template<> inline const Messaging::BlobValue *ConfigMessage::value_as() const { - return value_as_BlobValue(); -} - -struct ConfigMessageBuilder { - typedef ConfigMessage Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_key(::flatbuffers::Offset<::flatbuffers::String> key) { - fbb_.AddOffset(ConfigMessage::VT_KEY, key); - } - void add_type(Messaging::EntryType type) { - fbb_.AddElement(ConfigMessage::VT_TYPE, static_cast(type), 0); - } - void add_value_type(Messaging::NvsValue value_type) { - fbb_.AddElement(ConfigMessage::VT_VALUE_TYPE, static_cast(value_type), 0); - } - void add_value(::flatbuffers::Offset value) { - fbb_.AddOffset(ConfigMessage::VT_VALUE, value); - } - explicit ConfigMessageBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateConfigMessage( - ::flatbuffers::FlatBufferBuilder &_fbb, - ::flatbuffers::Offset<::flatbuffers::String> key = 0, - Messaging::EntryType type = Messaging::EntryType_NONE, - Messaging::NvsValue value_type = Messaging::NvsValue_NONE, - ::flatbuffers::Offset value = 0) { - ConfigMessageBuilder builder_(_fbb); - builder_.add_value(value); - builder_.add_key(key); - builder_.add_value_type(value_type); - builder_.add_type(type); - return builder_.Finish(); -} - -inline ::flatbuffers::Offset CreateConfigMessageDirect( - ::flatbuffers::FlatBufferBuilder &_fbb, - const char *key = nullptr, - Messaging::EntryType type = Messaging::EntryType_NONE, - Messaging::NvsValue value_type = Messaging::NvsValue_NONE, - ::flatbuffers::Offset value = 0) { - auto key__ = key ? _fbb.CreateString(key) : 0; - return Messaging::CreateConfigMessage( - _fbb, - key__, - type, - value_type, - value); -} - -inline bool VerifyNvsValue(::flatbuffers::Verifier &verifier, const void *obj, NvsValue type) { - switch (type) { - case NvsValue_NONE: { - return true; - } - case NvsValue_I32Value: { - auto ptr = reinterpret_cast(obj); - return verifier.VerifyTable(ptr); - } - case NvsValue_U32Value: { - auto ptr = reinterpret_cast(obj); - return verifier.VerifyTable(ptr); - } - case NvsValue_I64Value: { - auto ptr = reinterpret_cast(obj); - return verifier.VerifyTable(ptr); - } - case NvsValue_U64Value: { - auto ptr = reinterpret_cast(obj); - return verifier.VerifyTable(ptr); - } - case NvsValue_StringValue: { - auto ptr = reinterpret_cast(obj); - return verifier.VerifyTable(ptr); - } - case NvsValue_BlobValue: { - auto ptr = reinterpret_cast(obj); - return verifier.VerifyTable(ptr); - } - default: return true; - } -} - -inline bool VerifyNvsValueVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { - if (!values || !types) return !values && !types; - if (values->size() != types->size()) return false; - for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { - if (!VerifyNvsValue( - verifier, values->Get(i), types->GetEnum(i))) { - return false; - } - } - return true; -} - -inline const Messaging::ConfigMessage *GetConfigMessage(const void *buf) { - return ::flatbuffers::GetRoot(buf); -} - -inline const Messaging::ConfigMessage *GetSizePrefixedConfigMessage(const void *buf) { - return ::flatbuffers::GetSizePrefixedRoot(buf); -} - -inline bool VerifyConfigMessageBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); -} - -inline bool VerifySizePrefixedConfigMessageBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); -} - -inline void FinishConfigMessageBuffer( - ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { - fbb.Finish(root); -} - -inline void FinishSizePrefixedConfigMessageBuffer( - ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { - fbb.FinishSizePrefixed(root); -} - -} // namespace Messaging - -#endif // FLATBUFFERS_GENERATED_CONFIGMESSAGE_MESSAGING_H_ diff --git a/components/rpc/CommunicationRouter.cpp b/components/rpc/CommunicationRouter.cpp index e10d067..9d71a0c 100644 --- a/components/rpc/CommunicationRouter.cpp +++ b/components/rpc/CommunicationRouter.cpp @@ -5,6 +5,7 @@ #include "freertos/queue.h" CommunicationRouter::~CommunicationRouter() { + vTaskDelete(m_router_thread); vQueueDelete(m_tcp_rx_queue); } @@ -19,3 +20,7 @@ CommunicationRouter::~CommunicationRouter() { std::cout << "callback" << std::endl; } } + +int CommunicationRouter::send_msg(char* buffer, const size_t length) const { + return this->m_tcp_server->send_msg(buffer, length); +} diff --git a/components/rpc/MessagingInterface.cpp b/components/rpc/MessagingInterface.cpp index 41e9310..cf1147b 100644 --- a/components/rpc/MessagingInterface.cpp +++ b/components/rpc/MessagingInterface.cpp @@ -4,21 +4,31 @@ #include "MessagingInterface.h" +#include #include #include #include "MPIMessageBuilder.h" MessagingInterface::~MessagingInterface() { + vQueueDelete(m_mpi_rx_queue); + vSemaphoreDelete(m_map_semaphore); + for (const auto [_tag, queue] : m_tag_to_queue) { + vQueueDelete(queue); + } } int MessagingInterface::send(char* buffer, int size, int destination, int tag, bool durable) { + Flatbuffers::MPIMessageBuilder builder; + const auto [mpi_buffer, mpi_size] = builder.build_mpi_message(Messaging::MessageType_PTP, ConfigManager::get_module_id(), destination, sequence_number++, durable, tag, std::vector(buffer, buffer + size)); + + m_router->send_msg(static_cast(mpi_buffer), mpi_size); return 0; } int MessagingInterface::broadcast(char* buffer, int size, int root, bool durable) { - + // todo: impl return 0; } diff --git a/components/rpc/TCPServer.cpp b/components/rpc/TCPServer.cpp index a6d5705..315fb59 100644 --- a/components/rpc/TCPServer.cpp +++ b/components/rpc/TCPServer.cpp @@ -9,6 +9,7 @@ #include "lwip/sockets.h" #include "lwip/sys.h" #include +#include #include "TCPServer.h" @@ -20,13 +21,12 @@ // - authenticate (don't just return true from the auth function) // - tx from board -TCPServer::TCPServer(const int port, QueueHandle_t rx_queue) { +TCPServer::TCPServer(const int port, const QueueHandle_t rx_queue) { this->m_port = port; this->m_mutex = xSemaphoreCreateMutex(); this->m_clients = std::unordered_set(); this->m_task = nullptr; this->m_rx_task = nullptr; - this->m_tx_task = nullptr; this->m_rx_queue = rx_queue; this->m_server_sock = 0; @@ -37,7 +37,6 @@ TCPServer::TCPServer(const int port, QueueHandle_t rx_queue) { TCPServer::~TCPServer() { vTaskDelete(this->m_task); vTaskDelete(this->m_rx_task); - vTaskDelete(this->m_tx_task); vSemaphoreDelete(this->m_mutex); } @@ -149,6 +148,7 @@ TCPServer::~TCPServer() { if (len < 0) { printf("Error occurred during receiving: errno %d\n", errno); + to_remove.emplace_back(sock); } else if (0 == len) { printf("Connection closed\n"); close(sock); @@ -198,3 +198,19 @@ bool TCPServer::authenticate_client(int sock) { // todo: authentication (wait for a passphrase from the client) return 0; } + +int TCPServer::send_msg(char *buffer, size_t length) const { + // todo: should we assign a unique rank to each pc? + + if (!is_network_connected()) { + return -1; + } + + for (const auto client_sock : m_clients) { + std::cout << "sending tcp" << std::endl; + send(client_sock, buffer, length, 0); + } + + return 0; +} + diff --git a/components/rpc/include/CommunicationRouter.h b/components/rpc/include/CommunicationRouter.h index fb9dbab..00d737e 100644 --- a/components/rpc/include/CommunicationRouter.h +++ b/components/rpc/include/CommunicationRouter.h @@ -28,6 +28,8 @@ public: [[noreturn]] static void router_thread(void *args); + int send_msg(char* buffer, size_t length) const; + // todo: does this really need to be here (so i can access from thread)? QueueHandle_t m_tcp_rx_queue; std::function m_rx_callback; diff --git a/components/rpc/include/TCPServer.h b/components/rpc/include/TCPServer.h index e63154b..6f18266 100644 --- a/components/rpc/include/TCPServer.h +++ b/components/rpc/include/TCPServer.h @@ -16,6 +16,7 @@ class TCPServer : IRPCServer { public: TCPServer(int port, QueueHandle_t rx_queue); ~TCPServer(); + int send_msg(char* buffer, size_t length) const; private: bool authenticate_client(int client_sock); @@ -29,7 +30,6 @@ private: TaskHandle_t m_task; TaskHandle_t m_rx_task; - TaskHandle_t m_tx_task; QueueHandle_t m_rx_queue; diff --git a/main/LoopManager.cpp b/main/LoopManager.cpp index 32c97ad..e8fb896 100644 --- a/main/LoopManager.cpp +++ b/main/LoopManager.cpp @@ -10,7 +10,7 @@ #include "esp_log.h" -void LoopManager::control_loop() { +[[noreturn]] void LoopManager::control_loop() { const auto messaging_interface = std::make_unique(); char buffer[512]; @@ -18,9 +18,12 @@ void LoopManager::control_loop() { messaging_interface->recv(buffer, 512, 0, 1); std::cout << buffer << std::endl; + + char s[21] = {'H', 'e', 'l', 'l', 'o', ' ', 'f', 'r', 'o', 'm', ' ', 't', 'h', 'e', ' ', 'B', 'O', 'A', 'R', 'D', '!' }; + messaging_interface->send(s, 21, 1, 2, true); + ESP_LOGI("MEM", "Free internal RAM: %d", heap_caps_get_free_size(MALLOC_CAP_8BIT)); ESP_LOGI("MEM", "Free PSRAM: %d", heap_caps_get_free_size(MALLOC_CAP_SPIRAM)); } } - diff --git a/main/LoopManager.h b/main/LoopManager.h index 073d2dc..c253c36 100644 --- a/main/LoopManager.h +++ b/main/LoopManager.h @@ -7,7 +7,7 @@ class LoopManager { public: - static void control_loop(); + [[noreturn]] static void control_loop(); private: diff --git a/sdkconfig b/sdkconfig index bfebda7..e89b483 100644 --- a/sdkconfig +++ b/sdkconfig @@ -95,6 +95,7 @@ CONFIG_SOC_APB_BACKUP_DMA=y CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y CONFIG_SOC_CACHE_WRITEBACK_SUPPORTED=y CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y +CONFIG_SOC_CACHE_ACS_INVALID_STATE_ON_PANIC=y CONFIG_SOC_CPU_CORES_NUM=2 CONFIG_SOC_CPU_INTR_NUM=32 CONFIG_SOC_CPU_HAS_FPU=y @@ -146,8 +147,10 @@ CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y CONFIG_SOC_I2S_SUPPORTS_PCM=y CONFIG_SOC_I2S_SUPPORTS_PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y -CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 +CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_SUPPORTS_PDM2PCM=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 CONFIG_SOC_I2S_PDM_MAX_RX_LINES=4 CONFIG_SOC_I2S_SUPPORTS_TDM=y CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y @@ -169,6 +172,8 @@ CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 CONFIG_SOC_MMU_PERIPH_NUM=1 +CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 +CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_PCNT_GROUPS=1 CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 @@ -229,7 +234,7 @@ CONFIG_SOC_SPI_SCT_SUPPORTED=y CONFIG_SOC_SPI_SCT_REG_NUM=14 CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA -CONFIG_SOC_MEMSPI_SRC_FREQ_120M=y +CONFIG_SOC_MEMSPI_SRC_FREQ_120M_SUPPORTED=y CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y @@ -258,6 +263,7 @@ CONFIG_SOC_TOUCH_SUPPORT_BENCHMARK=y CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y CONFIG_SOC_TOUCH_SUPPORT_WATERPROOF=y CONFIG_SOC_TOUCH_SUPPORT_PROX_SENSING=y +CONFIG_SOC_TOUCH_SUPPORT_DENOISE_CHAN=y CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3 CONFIG_SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED=y CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1 @@ -320,6 +326,7 @@ CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y +CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y CONFIG_SOC_EFUSE_DIS_DOWNLOAD_DCACHE=y CONFIG_SOC_EFUSE_HARD_DIS_JTAG=y @@ -346,7 +353,7 @@ CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_OPI_MODE=y +CONFIG_SOC_SPI_MEM_SUPPORT_FLASH_OPI_MODE=y CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y @@ -432,6 +439,8 @@ CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y # # Log # +CONFIG_BOOTLOADER_LOG_VERSION_1=y +CONFIG_BOOTLOADER_LOG_VERSION=1 # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -469,7 +478,6 @@ CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y CONFIG_BOOTLOADER_WDT_ENABLE=y # CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set CONFIG_BOOTLOADER_WDT_TIME_MS=9000 -# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set # CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set # CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set @@ -513,6 +521,7 @@ CONFIG_ESP_ROM_HAS_HAL_WDT=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y CONFIG_ESP_ROM_HAS_SPI_FLASH=y +CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y CONFIG_ESP_ROM_HAS_ETS_PRINTF_BUG=y CONFIG_ESP_ROM_HAS_NEWLIB=y CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y @@ -526,6 +535,7 @@ CONFIG_ESP_ROM_HAS_SW_FLOAT=y CONFIG_ESP_ROM_HAS_VERSION=y CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y +CONFIG_ESP_ROM_CONSOLE_OUTPUT_SECONDARY=y # # Boot ROM Behavior @@ -717,7 +727,8 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y # CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y # CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set +# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set +CONFIG_GPTIMER_OBJ_CACHE_SAFE=y # CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set # end of ESP-Driver:GPTimer Configurations @@ -763,9 +774,15 @@ CONFIG_MCPWM_OBJ_CACHE_SAFE=y # # ESP-Driver:RMT Configurations # -# CONFIG_RMT_ISR_IRAM_SAFE is not set +CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y +CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y +CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y # CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set +# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set +CONFIG_RMT_OBJ_CACHE_SAFE=y # CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# CONFIG_RMT_ISR_IRAM_SAFE is not set # end of ESP-Driver:RMT Configurations # @@ -900,7 +917,8 @@ CONFIG_RTC_CLK_CAL_CYCLES=1024 # # Peripheral Control # -CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y # end of Peripheral Control # @@ -919,7 +937,28 @@ CONFIG_XTAL_FREQ_40=y CONFIG_XTAL_FREQ=40 # end of Main XTAL Config +# +# Power Supplier +# + +# +# Brownout Detector +# +CONFIG_ESP_BROWNOUT_DET=y +CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set +CONFIG_ESP_BROWNOUT_DET_LVL=7 +CONFIG_ESP_BROWNOUT_USE_INTR=y +# end of Brownout Detector +# end of Power Supplier + CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y +CONFIG_ESP_INTR_IN_IRAM=y # end of Hardware Settings # @@ -971,6 +1010,7 @@ CONFIG_ESP_PHY_IRAM_OPT=y # # Power Management # +CONFIG_PM_SLEEP_FUNC_IN_IRAM=y # CONFIG_PM_ENABLE is not set CONFIG_PM_SLP_IRAM_OPT=y CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y @@ -1128,22 +1168,6 @@ CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set CONFIG_ESP_DEBUG_OCDAWARE=y CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y - -# -# Brownout Detector -# -CONFIG_ESP_BROWNOUT_DET=y -CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set -CONFIG_ESP_BROWNOUT_DET_LVL=7 -# end of Brownout Detector - -CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y # end of ESP System Settings @@ -1159,6 +1183,7 @@ CONFIG_ESP_IPC_ISR_ENABLE=y # # ESP Timer (High Resolution Timer) # +CONFIG_ESP_TIMER_IN_IRAM=y # CONFIG_ESP_TIMER_PROFILING is not set CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y @@ -1201,10 +1226,12 @@ CONFIG_ESP_WIFI_IRAM_OPT=y CONFIG_ESP_WIFI_RX_IRAM_OPT=y CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP_WIFI_ENABLE_SAE_PK=y +CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 +# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 # CONFIG_ESP_WIFI_FTM_ENABLE is not set @@ -1306,6 +1333,7 @@ CONFIG_FREERTOS_DEBUG_OCDAWARE=y CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y CONFIG_FREERTOS_NUMBER_OF_CORES=2 +CONFIG_FREERTOS_IN_IRAM=y # end of FreeRTOS # @@ -1338,6 +1366,9 @@ CONFIG_HEAP_TRACING_OFF=y # # Log # +CONFIG_LOG_VERSION_1=y +# CONFIG_LOG_VERSION_2 is not set +CONFIG_LOG_VERSION=1 # # Log Level @@ -1391,7 +1422,6 @@ CONFIG_LOG_IN_IRAM=y # CONFIG_LWIP_ENABLE=y CONFIG_LWIP_LOCAL_HOSTNAME="espressif" -# CONFIG_LWIP_NETIF_API is not set CONFIG_LWIP_TCPIP_TASK_PRIO=18 # CONFIG_LWIP_TCPIP_CORE_LOCKING is not set # CONFIG_LWIP_CHECK_THREAD_SAFETY is not set @@ -1539,6 +1569,7 @@ CONFIG_LWIP_DNS_MAX_HOST_IP=1 CONFIG_LWIP_DNS_MAX_SERVERS=3 # CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set # CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set +# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set # end of DNS CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 @@ -1559,6 +1590,9 @@ CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y # CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set # CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set +CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set @@ -1627,6 +1661,7 @@ CONFIG_MBEDTLS_HAVE_TIME=y # CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +CONFIG_MBEDTLS_SHA1_C=y CONFIG_MBEDTLS_SHA512_C=y # CONFIG_MBEDTLS_SHA3_C is not set CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y @@ -1708,10 +1743,11 @@ CONFIG_MBEDTLS_ECP_NIST_OPTIM=y # CONFIG_MBEDTLS_THREADING_C is not set CONFIG_MBEDTLS_ERROR_STRINGS=y CONFIG_MBEDTLS_FS_IO=y +# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set # end of mbedTLS # -# Newlib +# LibC # CONFIG_LIBC_NEWLIB=y CONFIG_LIBC_MISC_IN_IRAM=y @@ -1788,6 +1824,8 @@ CONFIG_SPI_FLASH_HPM_DC_AUTO=y # CONFIG_SPI_FLASH_AUTO_SUSPEND is not set CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 # CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set +# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set +CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y # end of Optional and Experimental Features (READ DOCS FIRST) # end of Main Flash configuration @@ -1898,6 +1936,7 @@ CONFIG_MDNS_PREDEF_NETIF_AP=y # Deprecated options for backward compatibility # CONFIG_APP_BUILD_TYPE_ELF_RAM is not set # CONFIG_NO_BLOBS is not set +# CONFIG_APP_ROLLBACK_ENABLE is not set # CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set # CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set # CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set @@ -1905,7 +1944,6 @@ CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y # CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set # CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set CONFIG_LOG_BOOTLOADER_LEVEL=3 -# CONFIG_APP_ROLLBACK_ENABLE is not set # CONFIG_FLASH_ENCRYPTION_ENABLED is not set # CONFIG_FLASHMODE_QIO is not set # CONFIG_FLASHMODE_QOUT is not set @@ -1941,6 +1979,26 @@ CONFIG_ESP32S3_RTC_CLK_SRC_INT_RC=y # CONFIG_ESP32S3_RTC_CLK_SRC_EXT_OSC is not set # CONFIG_ESP32S3_RTC_CLK_SRC_INT_8MD256 is not set CONFIG_ESP32S3_RTC_CLK_CAL_CYCLES=1024 +CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_BROWNOUT_DET=y +CONFIG_ESP32S3_BROWNOUT_DET=y +CONFIG_BROWNOUT_DET_LVL_SEL_7=y +CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_7=y +# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_1 is not set +CONFIG_BROWNOUT_DET_LVL=7 +CONFIG_ESP32S3_BROWNOUT_DET_LVL=7 +CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 @@ -1977,24 +2035,6 @@ CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set CONFIG_ESP32S3_DEBUG_OCDAWARE=y -CONFIG_BROWNOUT_DET=y -CONFIG_ESP32S3_BROWNOUT_DET=y -CONFIG_BROWNOUT_DET_LVL_SEL_7=y -CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_1 is not set -CONFIG_BROWNOUT_DET_LVL=7 -CONFIG_ESP32S3_BROWNOUT_DET_LVL=7 CONFIG_IPC_TASK_STACK_SIZE=1280 CONFIG_TIMER_TASK_STACK_SIZE=3584 CONFIG_ESP32_WIFI_ENABLED=y @@ -2058,11 +2098,22 @@ CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF # CONFIG_PPP_SUPPORT is not set +CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set +CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y +# CONFIG_NEWLIB_NANO_FORMAT is not set +CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_SYSTIMER=y CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_FRC1=y +# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set # CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set # CONFIG_ESP32S3_TIME_SYSCALL_USE_SYSTIMER is not set # CONFIG_ESP32S3_TIME_SYSCALL_USE_FRC1 is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set # CONFIG_ESP32S3_TIME_SYSCALL_USE_NONE is not set CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072