diff --git a/receivers/native/arduino/pom.xml b/receivers/generic-c++/arduino/pom.xml similarity index 100% rename from receivers/native/arduino/pom.xml rename to receivers/generic-c++/arduino/pom.xml diff --git a/receivers/native/arduino/src/assembly/assemble-arduino-lib.xml b/receivers/generic-c++/arduino/src/assembly/assemble-arduino-lib.xml similarity index 100% rename from receivers/native/arduino/src/assembly/assemble-arduino-lib.xml rename to receivers/generic-c++/arduino/src/assembly/assemble-arduino-lib.xml diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/ArduinoPlatformVersion.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ArduinoPlatformVersion.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/ArduinoPlatformVersion.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ArduinoPlatformVersion.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/Zscript.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/Zscript.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/Zscript.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/Zscript.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptChannelBuilder.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptChannelBuilder.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptChannelBuilder.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptChannelBuilder.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptCoreModule.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptCoreModule.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptCoreModule.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptCoreModule.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptDefaultParameters.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptDefaultParameters.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptDefaultParameters.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptDefaultParameters.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptFullInclude.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptFullInclude.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptFullInclude.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptFullInclude.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptIncludes.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptIncludes.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptIncludes.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptIncludes.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptOuterCoreModule.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptOuterCoreModule.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptOuterCoreModule.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptOuterCoreModule.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptScriptModule.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptScriptModule.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino-converter-files/ZscriptScriptModule.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino-converter-files/ZscriptScriptModule.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/arduino-core-module/commands/ZscriptIdCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/arduino-core-module/commands/ZscriptIdCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/arduino-core-module/commands/ZscriptIdCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/arduino-core-module/commands/ZscriptIdCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/arduino-core-module/commands/ZscriptResetCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/arduino-core-module/commands/ZscriptResetCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/arduino-core-module/commands/ZscriptResetCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/arduino-core-module/commands/ZscriptResetCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/arduino-core-module/persistence/PersistenceSystem.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/arduino-core-module/persistence/PersistenceSystem.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/arduino-core-module/persistence/PersistenceSystem.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/arduino-core-module/persistence/PersistenceSystem.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/ethernet-module/ZscriptEthernetSystem.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/ethernet-module/ZscriptEthernetSystem.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/ethernet-module/ZscriptEthernetSystem.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/ethernet-module/ZscriptEthernetSystem.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/ethernet-module/channels/ZscriptTcpChannel.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/ethernet-module/channels/ZscriptTcpChannel.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/ethernet-module/channels/ZscriptTcpChannel.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/ethernet-module/channels/ZscriptTcpChannel.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/ethernet-module/channels/ZscriptUdpChannel.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/ethernet-module/channels/ZscriptUdpChannel.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/ethernet-module/channels/ZscriptUdpChannel.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/ethernet-module/channels/ZscriptUdpChannel.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/I2cManager.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cManager.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/I2cManager.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cManager.hpp diff --git a/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-basic.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-basic.hpp new file mode 100644 index 000000000..dfb4d1c08 --- /dev/null +++ b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-basic.hpp @@ -0,0 +1,73 @@ +/* + * Zscript Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zscript team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ +#define SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ + + +#include +#include + + +#include "commands/I2cSetupCommand.hpp" +#include "commands/GeneralI2cAction.hpp" + +#include "commands/I2cCapabilitiesCommand.hpp" + +#ifdef ZSCRIPT_HPP_INCLUDED +#error Must be included before Zscript.hpp +#endif + +#define MODULE_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_SWITCH_005 MODULE_SWITCH_UTIL(i2c_module::I2cModule::execute) + + +namespace Zscript { +namespace i2c_module { + +template +class I2cModule : public ZscriptModule { + +public: + + + static void setup() { + Wire.begin(); + } + + static void poll() { + } + + static void execute(ZscriptCommandContext ctx, uint8_t bottomBits) { + switch (bottomBits) { + case ZscriptI2cCapabilitiesCommand::CODE: + ZscriptI2cCapabilitiesCommand::execute(ctx, MODULE_CAPABILITIES(005)); + break; + case ZscriptI2cSetupCommand::CODE: + ZscriptI2cSetupCommand::execute(ctx); + break; + case GeneralI2cAction::SEND_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::SEND); + break; + case GeneralI2cAction::RECEIVE_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::RECEIVE); + break; + case GeneralI2cAction::SEND_RECEIVE_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::SEND_RECEIVE); + break; + default: + ctx.status(ResponseStatus::COMMAND_NOT_FOUND); + break; + } + } + +}; + +} +} + +#endif /* SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ */ diff --git a/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelAndCommands.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelAndCommands.hpp new file mode 100644 index 000000000..f8967239b --- /dev/null +++ b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelAndCommands.hpp @@ -0,0 +1,87 @@ +/* + * Zscript Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zscript team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ +#define SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ + + +#include +#include + + +#include "commands/I2cChannelInfo.hpp" +#include "commands/I2cChannelSetup.hpp" + +#include "commands/I2cSetupCommand.hpp" +#include "commands/GeneralI2cAction.hpp" + +#include "commands/I2cCapabilitiesCommand.hpp" + +#ifdef ZSCRIPT_HPP_INCLUDED +#error Must be included before Zscript.hpp +#endif + +#define MODULE_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_SWITCH_005 MODULE_SWITCH_UTIL(i2c_module::I2cModule::execute) + + +namespace Zscript { +namespace i2c_module { + +template +class I2cModule : public ZscriptModule { + +public: + static I2cChannel channel; + + + static void setup() { + channel.setup(); + channel.setAddress(ZscriptParams::i2cChannelAddress); + } + + static void poll() { + } + + static void execute(ZscriptCommandContext ctx, uint8_t bottomBits) { + switch (bottomBits) { + case ZscriptI2cCapabilitiesCommand::CODE: + ZscriptI2cCapabilitiesCommand::execute(ctx, MODULE_CAPABILITIES(005)); + break; + case ZscriptI2cSetupCommand::CODE: + ZscriptI2cSetupCommand::execute(ctx); + break; + case GeneralI2cAction::SEND_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::SEND); + break; + case GeneralI2cAction::RECEIVE_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::RECEIVE); + break; + case GeneralI2cAction::SEND_RECEIVE_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::SEND_RECEIVE); + break; + case ZscriptI2cChannelInfoCommand::CODE: + ZscriptI2cChannelInfoCommand::execute(ctx); + break; + case ZscriptI2cChannelSetupCommand::CODE: + ZscriptI2cChannelSetupCommand::execute(ctx); + break; + default: + ctx.status(ResponseStatus::COMMAND_NOT_FOUND); + break; + } + } + +}; + +template +I2cChannel I2cModule::channel; + +} +} + +#endif /* SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ */ diff --git a/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelAndNotification.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelAndNotification.hpp new file mode 100644 index 000000000..3da8c39c6 --- /dev/null +++ b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelAndNotification.hpp @@ -0,0 +1,144 @@ +/* + * Zscript Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zscript team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ +#define SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ + +#define ZSCRIPT_HAVE_I2C_MODULE + +#include +#include + +#if defined(ZSCRIPT_SUPPORT_ADDRESSING) +#include +#endif + +#if defined(ZSCRIPT_SUPPORT_NOTIFICATIONS) +#include +#include +#include "notifications/I2cNotification.hpp" +#endif + +#include "commands/I2cChannelInfo.hpp" +#include "commands/I2cChannelSetup.hpp" + +#include "commands/I2cSetupCommand.hpp" +#include "commands/GeneralI2cAction.hpp" + +#include "commands/I2cCapabilitiesCommand.hpp" + +#ifdef ZSCRIPT_HPP_INCLUDED +#error Must be included before Zscript.hpp +#endif + +#define MODULE_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_SWITCH_005 MODULE_SWITCH_UTIL(i2c_module::I2cModule::execute) + +#if defined(ZSCRIPT_SUPPORT_ADDRESSING) +#define MODULE_ADDRESS_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_ADDRESS_SWITCH_005 ADDRESS_SWITCH_UTIL(i2c_module::I2cModule::address) +#endif +#define MODULE_NOTIFICATION_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_NOTIFICATION_SWITCH_005 NOTIFICATION_SWITCH_UTIL(i2c_module::I2cModule::notification) + +namespace Zscript { + +namespace i2c_module { + +template +class I2cModule : public ZscriptModule { + static bool isAddressing; + static bool giveNotifs; + + static void smBusAlertReceived() { + if (giveNotifs) { + notifSrc.set(NULL, 0x50, isAddressing); + } + } + + +public: + static I2cChannel channel; + + + static GenericCore::ZscriptNotificationSource notifSrc; + + static void setup() { + pinMode(ZP::i2cAlertInPin, INPUT_PULLUP); + attachInterrupt(digitalPinToInterrupt(ZP::i2cAlertInPin), &smBusAlertReceived, FALLING); + pinMode(ZP::i2cAlertInPin, INPUT_PULLUP); + channel.setup(); + channel.setAddress(ZscriptParams::i2cChannelAddress); + } + + static void poll() { + if (digitalRead(ZP::i2cAlertInPin) == LOW) { + smBusAlertReceived(); + } + } + + static void execute(ZscriptCommandContext ctx, uint8_t bottomBits) { + switch (bottomBits) { + case ZscriptI2cCapabilitiesCommand::CODE: + ZscriptI2cCapabilitiesCommand::execute(ctx, MODULE_CAPABILITIES(005)); + break; + case ZscriptI2cSetupCommand::CODE: + ZscriptI2cSetupCommand::execute(ctx, &isAddressing, &giveNotifs + ); + break; + case GeneralI2cAction::SEND_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::SEND); + break; + case GeneralI2cAction::RECEIVE_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::RECEIVE); + break; + case GeneralI2cAction::SEND_RECEIVE_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::SEND_RECEIVE); + break; + case ZscriptI2cChannelInfoCommand::CODE: + ZscriptI2cChannelInfoCommand::execute(ctx); + break; + case ZscriptI2cChannelSetupCommand::CODE: + ZscriptI2cChannelSetupCommand::execute(ctx); + break; + default: + ctx.status(ResponseStatus::COMMAND_NOT_FOUND); + break; + } + } + +#if defined(ZSCRIPT_SUPPORT_ADDRESSING) + static void address(ZscriptAddressingContext ctx) { + if (!isAddressing) { + ctx.status(ResponseStatus::ADDRESS_NOT_FOUND); + return; + } + GeneralI2cAction::executeAddressing(ctx); + } +#endif + + static void notification(ZscriptNotificationContext ctx, bool moveAlong) { + ZscriptI2cNotification::notification(ctx, moveAlong, isAddressing); + } +}; + +template +I2cChannel I2cModule::channel; + +template +bool I2cModule::isAddressing = false; + +template +bool I2cModule::giveNotifs = false; + +template +GenericCore::ZscriptNotificationSource I2cModule::notifSrc; +} + +} + +#endif /* SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ */ diff --git a/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelOnly.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelOnly.hpp new file mode 100644 index 000000000..f7e7f82fe --- /dev/null +++ b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-channelOnly.hpp @@ -0,0 +1,72 @@ +/* + * Zscript Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zscript team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ +#define SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ + + +#include +#include + + +#include "commands/I2cChannelInfo.hpp" +#include "commands/I2cChannelSetup.hpp" + +#include "commands/I2cCapabilitiesCommand.hpp" + +#ifdef ZSCRIPT_HPP_INCLUDED +#error Must be included before Zscript.hpp +#endif + +#define MODULE_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_SWITCH_005 MODULE_SWITCH_UTIL(i2c_module::I2cModule::execute) + + +namespace Zscript { +namespace i2c_module { + +template +class I2cModule : public ZscriptModule { + +public: + static I2cChannel channel; + + + static void setup() { + channel.setup(); + channel.setAddress(ZscriptParams::i2cChannelAddress); + } + + static void poll() { + } + + static void execute(ZscriptCommandContext ctx, uint8_t bottomBits) { + switch (bottomBits) { + case ZscriptI2cCapabilitiesCommand::CODE: + ZscriptI2cCapabilitiesCommand::execute(ctx, MODULE_CAPABILITIES(005)); + break; + case ZscriptI2cChannelInfoCommand::CODE: + ZscriptI2cChannelInfoCommand::execute(ctx); + break; + case ZscriptI2cChannelSetupCommand::CODE: + ZscriptI2cChannelSetupCommand::execute(ctx); + break; + default: + ctx.status(ResponseStatus::COMMAND_NOT_FOUND); + break; + } + } + +}; + +template +I2cChannel I2cModule::channel; + +} +} + +#endif /* SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ */ diff --git a/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-notifications.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-notifications.hpp new file mode 100644 index 000000000..32d7cf3cc --- /dev/null +++ b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule-notifications.hpp @@ -0,0 +1,131 @@ +/* + * Zscript Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zscript team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ +#define SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ + + +#define ZSCRIPT_HAVE_I2C_MODULE + +#include +#include + +#if defined(ZSCRIPT_SUPPORT_ADDRESSING) +#include +#endif + +#if defined(ZSCRIPT_SUPPORT_NOTIFICATIONS) +#include +#include +#include "notifications/I2cNotification.hpp" +#endif + +#include "commands/I2cSetupCommand.hpp" +#include "commands/GeneralI2cAction.hpp" + +#include "commands/I2cCapabilitiesCommand.hpp" + +#ifdef ZSCRIPT_HPP_INCLUDED +#error Must be included before Zscript.hpp +#endif + +#define MODULE_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_SWITCH_005 MODULE_SWITCH_UTIL(i2c_module::I2cModule::execute) + +#if defined(ZSCRIPT_SUPPORT_ADDRESSING) +#define MODULE_ADDRESS_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_ADDRESS_SWITCH_005 ADDRESS_SWITCH_UTIL(i2c_module::I2cModule::address) +#endif +#define MODULE_NOTIFICATION_EXISTS_005 EXISTENCE_MARKER_UTIL +#define MODULE_NOTIFICATION_SWITCH_005 NOTIFICATION_SWITCH_UTIL(i2c_module::I2cModule::notification) + +namespace Zscript { + +namespace i2c_module { + +template +class I2cModule : public ZscriptModule { + static bool isAddressing; + static bool giveNotifs; + + static void smBusAlertReceived() { + if (giveNotifs) { + notifSrc.set(NULL, 0x50, isAddressing); + } + } + + +public: + + + static GenericCore::ZscriptNotificationSource notifSrc; + + static void setup() { + pinMode(ZP::i2cAlertInPin, INPUT_PULLUP); + attachInterrupt(digitalPinToInterrupt(ZP::i2cAlertInPin), &smBusAlertReceived, FALLING); + pinMode(ZP::i2cAlertInPin, INPUT_PULLUP); + Wire.begin(); + } + + static void poll() { + if (digitalRead(ZP::i2cAlertInPin) == LOW) { + smBusAlertReceived(); + } + } + + static void execute(ZscriptCommandContext ctx, uint8_t bottomBits) { + switch (bottomBits) { + case ZscriptI2cCapabilitiesCommand::CODE: + ZscriptI2cCapabilitiesCommand::execute(ctx, MODULE_CAPABILITIES(005)); + break; + case ZscriptI2cSetupCommand::CODE: + ZscriptI2cSetupCommand::execute(ctx, &isAddressing, &giveNotifs); + break; + case GeneralI2cAction::SEND_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::SEND); + break; + case GeneralI2cAction::RECEIVE_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::RECEIVE); + break; + case GeneralI2cAction::SEND_RECEIVE_CODE: + GeneralI2cAction::executeSendReceive(ctx, GeneralI2cAction::ActionType::SEND_RECEIVE); + break; + default: + ctx.status(ResponseStatus::COMMAND_NOT_FOUND); + break; + } + } + +#if defined(ZSCRIPT_SUPPORT_ADDRESSING) + static void address(ZscriptAddressingContext ctx) { + if (!isAddressing) { + ctx.status(ResponseStatus::ADDRESS_NOT_FOUND); + return; + } + GeneralI2cAction::executeAddressing(ctx); + } +#endif + + static void notification(ZscriptNotificationContext ctx, bool moveAlong) { + ZscriptI2cNotification::notification(ctx, moveAlong, isAddressing); + } +}; + + +template +bool I2cModule::isAddressing = false; + +template +bool I2cModule::giveNotifs = false; + +template +GenericCore::ZscriptNotificationSource I2cModule::notifSrc; +} + +} + +#endif /* SRC_MAIN_CPP_ARDUINO_I2C_MODULE_ZSCRIPTI2CMODULE_HPP_ */ diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/I2cModule.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/I2cModule.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/I2cModule.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/channels/I2cChannel.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/channels/I2cChannel.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/channels/I2cChannel.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/channels/I2cChannel.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/GeneralI2cAction.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/GeneralI2cAction.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/GeneralI2cAction.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/GeneralI2cAction.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/I2cCapabilitiesCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/I2cCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/I2cCapabilitiesCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/I2cCapabilitiesCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/I2cChannelInfo.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/I2cChannelInfo.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/I2cChannelInfo.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/I2cChannelInfo.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/I2cChannelSetup.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/I2cChannelSetup.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/I2cChannelSetup.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/I2cChannelSetup.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/I2cSetupCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/I2cSetupCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/commands/I2cSetupCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/commands/I2cSetupCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/i2c-module/notifications/I2cNotification.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/notifications/I2cNotification.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/i2c-module/notifications/I2cNotification.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/i2c-module/notifications/I2cNotification.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/PinManager.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/PinManager.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/PinManager.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/PinManager.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/PinModule.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/PinModule.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/PinModule.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/PinModule.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/AtoDPinReadCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/AtoDPinReadCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/AtoDPinReadCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/AtoDPinReadCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/AtoDPinSetupCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/AtoDPinSetupCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/AtoDPinSetupCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/AtoDPinSetupCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinReadCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinReadCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinReadCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinReadCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinSetupCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinSetupCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinSetupCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinSetupCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinWriteCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinWriteCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinWriteCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DigitalPinWriteCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DtoAPinSetupCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DtoAPinSetupCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DtoAPinSetupCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DtoAPinSetupCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DtoAPinWriteCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DtoAPinWriteCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/DtoAPinWriteCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/DtoAPinWriteCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/PinCapabilitiesCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/PinCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/PinCapabilitiesCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/PinCapabilitiesCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/PwmPinSetupCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/PwmPinSetupCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/PwmPinSetupCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/PwmPinSetupCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/commands/PwmPinWriteCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/PwmPinWriteCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/commands/PwmPinWriteCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/commands/PwmPinWriteCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/notifications/AnalogNotification.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/notifications/AnalogNotification.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/notifications/AnalogNotification.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/notifications/AnalogNotification.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/pins-module/notifications/DigitalNotification.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/notifications/DigitalNotification.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/pins-module/notifications/DigitalNotification.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/pins-module/notifications/DigitalNotification.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/servo-module/GeneralServo.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/GeneralServo.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/servo-module/GeneralServo.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/GeneralServo.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/servo-module/ServoModule.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/ServoModule.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/servo-module/ServoModule.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/ServoModule.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/servo-module/commands/ServoCapabilitiesCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/commands/ServoCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/servo-module/commands/ServoCapabilitiesCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/commands/ServoCapabilitiesCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/servo-module/commands/ServoReadCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/commands/ServoReadCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/servo-module/commands/ServoReadCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/commands/ServoReadCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/servo-module/commands/ServoSetupCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/commands/ServoSetupCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/servo-module/commands/ServoSetupCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/commands/ServoSetupCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/servo-module/commands/ServoWriteCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/commands/ServoWriteCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/servo-module/commands/ServoWriteCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/servo-module/commands/ServoWriteCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/uart-module/UartModule.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/UartModule.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/uart-module/UartModule.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/UartModule.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/uart-module/channels/UartChannel.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/channels/UartChannel.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/uart-module/channels/UartChannel.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/channels/UartChannel.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/uart-module/commands/UartCapabilitiesCommand.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/commands/UartCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/uart-module/commands/UartCapabilitiesCommand.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/commands/UartCapabilitiesCommand.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/uart-module/commands/UartChannelInfo.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/commands/UartChannelInfo.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/uart-module/commands/UartChannelInfo.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/commands/UartChannelInfo.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/uart-module/commands/UartChannelSetup.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/commands/UartChannelSetup.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/uart-module/commands/UartChannelSetup.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/commands/UartChannelSetup.hpp diff --git a/receivers/native/arduino/src/main/c++/arduino/uart-module/commands/UartUtil.hpp b/receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/commands/UartUtil.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/arduino/uart-module/commands/UartUtil.hpp rename to receivers/generic-c++/arduino/src/main/c++/arduino/uart-module/commands/UartUtil.hpp diff --git a/receivers/native/arduino/src/main/c++/examples/I2cChannelDemo/I2cChannelDemo.ino b/receivers/generic-c++/arduino/src/main/c++/examples/I2cChannelDemo/I2cChannelDemo.ino similarity index 100% rename from receivers/native/arduino/src/main/c++/examples/I2cChannelDemo/I2cChannelDemo.ino rename to receivers/generic-c++/arduino/src/main/c++/examples/I2cChannelDemo/I2cChannelDemo.ino diff --git a/receivers/native/arduino/src/main/c++/examples/I2cChannelDemo/ZscriptParameters.hpp b/receivers/generic-c++/arduino/src/main/c++/examples/I2cChannelDemo/ZscriptParameters.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/examples/I2cChannelDemo/ZscriptParameters.hpp rename to receivers/generic-c++/arduino/src/main/c++/examples/I2cChannelDemo/ZscriptParameters.hpp diff --git a/receivers/native/arduino/src/main/c++/examples/UartChannelDemo/UartChannelDemo.ino b/receivers/generic-c++/arduino/src/main/c++/examples/UartChannelDemo/UartChannelDemo.ino similarity index 100% rename from receivers/native/arduino/src/main/c++/examples/UartChannelDemo/UartChannelDemo.ino rename to receivers/generic-c++/arduino/src/main/c++/examples/UartChannelDemo/UartChannelDemo.ino diff --git a/receivers/native/arduino/src/main/c++/examples/UartChannelDemo/ZscriptParameters.hpp b/receivers/generic-c++/arduino/src/main/c++/examples/UartChannelDemo/ZscriptParameters.hpp similarity index 100% rename from receivers/native/arduino/src/main/c++/examples/UartChannelDemo/ZscriptParameters.hpp rename to receivers/generic-c++/arduino/src/main/c++/examples/UartChannelDemo/ZscriptParameters.hpp diff --git a/receivers/native/arduino/src/main/resources/library-setup/keywords.txt b/receivers/generic-c++/arduino/src/main/resources/library-setup/keywords.txt similarity index 100% rename from receivers/native/arduino/src/main/resources/library-setup/keywords.txt rename to receivers/generic-c++/arduino/src/main/resources/library-setup/keywords.txt diff --git a/receivers/native/arduino/src/main/resources/library-setup/library.properties b/receivers/generic-c++/arduino/src/main/resources/library-setup/library.properties similarity index 100% rename from receivers/native/arduino/src/main/resources/library-setup/library.properties rename to receivers/generic-c++/arduino/src/main/resources/library-setup/library.properties diff --git a/receivers/native/arduino/src/test/c++/examples/I2cChannelDemo/main.cpp b/receivers/generic-c++/arduino/src/test/c++/examples/I2cChannelDemo/main.cpp similarity index 100% rename from receivers/native/arduino/src/test/c++/examples/I2cChannelDemo/main.cpp rename to receivers/generic-c++/arduino/src/test/c++/examples/I2cChannelDemo/main.cpp diff --git a/receivers/native/generic-core/Makefile b/receivers/generic-c++/core/Makefile similarity index 100% rename from receivers/native/generic-core/Makefile rename to receivers/generic-c++/core/Makefile diff --git a/receivers/native/generic-core/pom.xml b/receivers/generic-c++/core/pom.xml similarity index 100% rename from receivers/native/generic-core/pom.xml rename to receivers/generic-c++/core/pom.xml diff --git a/receivers/native/generic-core/src/main/c++/zscript/AbstractOutStream.hpp b/receivers/generic-c++/core/src/main/c++/zscript/AbstractOutStream.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/AbstractOutStream.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/AbstractOutStream.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/LanguageVersion.hpp b/receivers/generic-c++/core/src/main/c++/zscript/LanguageVersion.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/LanguageVersion.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/LanguageVersion.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/ResponseTypes.hpp b/receivers/generic-c++/core/src/main/c++/zscript/ResponseTypes.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/ResponseTypes.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/ResponseTypes.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/Zchars.hpp b/receivers/generic-c++/core/src/main/c++/zscript/Zchars.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/Zchars.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/Zchars.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/Zscript.hpp b/receivers/generic-c++/core/src/main/c++/zscript/Zscript.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/Zscript.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/Zscript.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/ZscriptChannel.hpp b/receivers/generic-c++/core/src/main/c++/zscript/ZscriptChannel.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/ZscriptChannel.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/ZscriptChannel.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/ZscriptIncludes.hpp b/receivers/generic-c++/core/src/main/c++/zscript/ZscriptIncludes.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/ZscriptIncludes.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/ZscriptIncludes.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/ZscriptResponseStatus.hpp b/receivers/generic-c++/core/src/main/c++/zscript/ZscriptResponseStatus.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/ZscriptResponseStatus.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/ZscriptResponseStatus.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/CommandOutStream.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/CommandOutStream.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/CommandOutStream.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/CommandOutStream.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/DiscardingOutStream.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/DiscardingOutStream.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/DiscardingOutStream.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/DiscardingOutStream.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/LockSet.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/LockSet.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/LockSet.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/LockSet.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/LockSystem.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/LockSystem.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/LockSystem.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/LockSystem.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptAction.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptAction.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptAction.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptAction.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptAddressingContext.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptAddressingContext.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptAddressingContext.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptAddressingContext.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptCommandContext.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptCommandContext.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptCommandContext.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptCommandContext.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptExecutor.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptExecutor.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptExecutor.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptExecutor.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptNotificationContext.hpp b/receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptNotificationContext.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/execution/ZscriptNotificationContext.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/execution/ZscriptNotificationContext.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/ModuleRegistry.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/ModuleRegistry.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/ModuleRegistry.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/ModuleRegistry.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/ZscriptCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/ZscriptCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/ZscriptCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/ZscriptCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/ZscriptModule.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/ZscriptModule.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/ZscriptModule.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/ZscriptModule.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/core/ActivateCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/core/ActivateCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/core/ActivateCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/core/ActivateCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/core/CapabilitiesCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/core/CapabilitiesCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/core/CapabilitiesCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/core/CapabilitiesCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/core/ChannelInfoCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/core/ChannelInfoCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/core/ChannelInfoCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/core/ChannelInfoCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/core/CoreModule.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/core/CoreModule.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/core/CoreModule.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/core/CoreModule.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/core/EchoCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/core/EchoCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/core/EchoCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/core/EchoCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/outerCore/ChannelSetupCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/outerCore/ChannelSetupCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/outerCore/ChannelSetupCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/outerCore/ChannelSetupCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/outerCore/ExtendedCapabilitiesCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/outerCore/ExtendedCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/outerCore/ExtendedCapabilitiesCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/outerCore/ExtendedCapabilitiesCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/outerCore/OuterCoreModule.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/outerCore/OuterCoreModule.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/outerCore/OuterCoreModule.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/outerCore/OuterCoreModule.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceCapabilitiesCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceCapabilitiesCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceCapabilitiesCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceModule.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceModule.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceModule.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceModule.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceSetupCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceSetupCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceSetupCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceSetupCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceWriteCommand.hpp b/receivers/generic-c++/core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceWriteCommand.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceWriteCommand.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/modules/scriptSpace/ScriptSpaceWriteCommand.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/notifications/ZscriptNotificationSource.hpp b/receivers/generic-c++/core/src/main/c++/zscript/notifications/ZscriptNotificationSource.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/notifications/ZscriptNotificationSource.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/notifications/ZscriptNotificationSource.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/scriptSpace/ScriptSpace.hpp b/receivers/generic-c++/core/src/main/c++/zscript/scriptSpace/ScriptSpace.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/scriptSpace/ScriptSpace.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/scriptSpace/ScriptSpace.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/scriptSpace/ScriptSpaceOutStream.hpp b/receivers/generic-c++/core/src/main/c++/zscript/scriptSpace/ScriptSpaceOutStream.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/scriptSpace/ScriptSpaceOutStream.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/scriptSpace/ScriptSpaceOutStream.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/semanticParser/SemanticParser.hpp b/receivers/generic-c++/core/src/main/c++/zscript/semanticParser/SemanticParser.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/semanticParser/SemanticParser.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/semanticParser/SemanticParser.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/tokenizer/ScriptSpaceBuffer.hpp b/receivers/generic-c++/core/src/main/c++/zscript/tokenizer/ScriptSpaceBuffer.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/tokenizer/ScriptSpaceBuffer.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/tokenizer/ScriptSpaceBuffer.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/tokenizer/TokenBufferFlags.hpp b/receivers/generic-c++/core/src/main/c++/zscript/tokenizer/TokenBufferFlags.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/tokenizer/TokenBufferFlags.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/tokenizer/TokenBufferFlags.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/tokenizer/TokenRingBuffer.hpp b/receivers/generic-c++/core/src/main/c++/zscript/tokenizer/TokenRingBuffer.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/tokenizer/TokenRingBuffer.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/tokenizer/TokenRingBuffer.hpp diff --git a/receivers/native/generic-core/src/main/c++/zscript/tokenizer/ZscriptTokenizer.hpp b/receivers/generic-c++/core/src/main/c++/zscript/tokenizer/ZscriptTokenizer.hpp similarity index 100% rename from receivers/native/generic-core/src/main/c++/zscript/tokenizer/ZscriptTokenizer.hpp rename to receivers/generic-c++/core/src/main/c++/zscript/tokenizer/ZscriptTokenizer.hpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/default-cli/default-cli.cpp b/receivers/generic-c++/core/src/test/c++/zscript/default-cli/default-cli.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/default-cli/default-cli.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/default-cli/default-cli.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/notifications/NotificationTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/notifications/NotificationTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/notifications/NotificationTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/notifications/NotificationTest.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/scriptSpace/ScriptSpaceTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/scriptSpace/ScriptSpaceTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/scriptSpace/ScriptSpaceTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/scriptSpace/ScriptSpaceTest.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/scriptSpace/StringChannel.hpp b/receivers/generic-c++/core/src/test/c++/zscript/scriptSpace/StringChannel.hpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/scriptSpace/StringChannel.hpp rename to receivers/generic-c++/core/src/test/c++/zscript/scriptSpace/StringChannel.hpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/semanticParser/BufferOutStream.hpp b/receivers/generic-c++/core/src/test/c++/zscript/semanticParser/BufferOutStream.hpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/semanticParser/BufferOutStream.hpp rename to receivers/generic-c++/core/src/test/c++/zscript/semanticParser/BufferOutStream.hpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/semanticParser/ParserActionTester.hpp b/receivers/generic-c++/core/src/test/c++/zscript/semanticParser/ParserActionTester.hpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/semanticParser/ParserActionTester.hpp rename to receivers/generic-c++/core/src/test/c++/zscript/semanticParser/ParserActionTester.hpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserAddressingTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserAddressingTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserAddressingTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserAddressingTest.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserAsyncCommandTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserAsyncCommandTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserAsyncCommandTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserAsyncCommandTest.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserMulticommandTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserMulticommandTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserMulticommandTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserMulticommandTest.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserTest.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserTokenWaitTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserTokenWaitTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/semanticParser/SemanticParserTokenWaitTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/semanticParser/SemanticParserTokenWaitTest.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/test-defines.hpp b/receivers/generic-c++/core/src/test/c++/zscript/test-defines.hpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/test-defines.hpp rename to receivers/generic-c++/core/src/test/c++/zscript/test-defines.hpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/tokenizer/ZscriptTokenBufferReaderTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/tokenizer/ZscriptTokenBufferReaderTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/tokenizer/ZscriptTokenBufferReaderTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/tokenizer/ZscriptTokenBufferReaderTest.cpp diff --git a/receivers/native/generic-core/src/test/c++/zscript/tokenizer/ZscriptTokenizerTest.cpp b/receivers/generic-c++/core/src/test/c++/zscript/tokenizer/ZscriptTokenizerTest.cpp similarity index 100% rename from receivers/native/generic-core/src/test/c++/zscript/tokenizer/ZscriptTokenizerTest.cpp rename to receivers/generic-c++/core/src/test/c++/zscript/tokenizer/ZscriptTokenizerTest.cpp diff --git a/receivers/native/cpp-model-components/pom.xml b/receivers/generic-c++/cpp-model-components/pom.xml similarity index 100% rename from receivers/native/cpp-model-components/pom.xml rename to receivers/generic-c++/cpp-model-components/pom.xml diff --git a/receivers/native/cpp-model-components/src/main/contexts/zchars-list.yaml b/receivers/generic-c++/cpp-model-components/src/main/contexts/zchars-list.yaml similarity index 100% rename from receivers/native/cpp-model-components/src/main/contexts/zchars-list.yaml rename to receivers/generic-c++/cpp-model-components/src/main/contexts/zchars-list.yaml diff --git a/receivers/native/cpp-model-components/src/main/contexts/zstatus-list.yaml b/receivers/generic-c++/cpp-model-components/src/main/contexts/zstatus-list.yaml similarity index 100% rename from receivers/native/cpp-model-components/src/main/contexts/zstatus-list.yaml rename to receivers/generic-c++/cpp-model-components/src/main/contexts/zstatus-list.yaml diff --git a/receivers/native/cpp-model-components/src/main/templates/CppCommandKeyDefs.mustache b/receivers/generic-c++/cpp-model-components/src/main/templates/CppCommandKeyDefs.mustache similarity index 100% rename from receivers/native/cpp-model-components/src/main/templates/CppCommandKeyDefs.mustache rename to receivers/generic-c++/cpp-model-components/src/main/templates/CppCommandKeyDefs.mustache diff --git a/receivers/native/cpp-model-components/src/main/templates/CppZchars.mustache b/receivers/generic-c++/cpp-model-components/src/main/templates/CppZchars.mustache similarity index 100% rename from receivers/native/cpp-model-components/src/main/templates/CppZchars.mustache rename to receivers/generic-c++/cpp-model-components/src/main/templates/CppZchars.mustache diff --git a/receivers/native/cpp-model-components/src/main/templates/CppZscriptStatus.mustache b/receivers/generic-c++/cpp-model-components/src/main/templates/CppZscriptStatus.mustache similarity index 100% rename from receivers/native/cpp-model-components/src/main/templates/CppZscriptStatus.mustache rename to receivers/generic-c++/cpp-model-components/src/main/templates/CppZscriptStatus.mustache diff --git a/receivers/native/cpp-model-components/src/test/c++/zscript/notifications/ZscriptGeneratedCodeTest.cpp b/receivers/generic-c++/cpp-model-components/src/test/c++/zscript/notifications/ZscriptGeneratedCodeTest.cpp similarity index 100% rename from receivers/native/cpp-model-components/src/test/c++/zscript/notifications/ZscriptGeneratedCodeTest.cpp rename to receivers/generic-c++/cpp-model-components/src/test/c++/zscript/notifications/ZscriptGeneratedCodeTest.cpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoD.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/adc/aditf5_v1/impl/AtoD.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoD.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/adc/aditf5_v1/impl/AtoD.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoDManager.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/adc/aditf5_v1/impl/AtoDManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoDManager.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/adc/aditf5_v1/impl/AtoDManager.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/adc/aditf5_v1/impl/AtoDManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/adc/aditf5_v1/impl/AtoDManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDcpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/adc/aditf5_v1/impl/AtoDcpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDcpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/adc/aditf5_v1/impl/AtoDcpp.hpp diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/README b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/README new file mode 100644 index 000000000..147ca1914 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/README @@ -0,0 +1,15 @@ +Found two distinct types of I2C subsystem, provided more obscure features aren't used: +Looking inside implementations: +grep -r "I2C" . | grep -i -o "version=\"[^\"]*\"" | sort -u +gives: +Version="F0-i2c2_v1_1_Cube" +Version="i2c1_v1_5_Cube" +Version="i2c2_v1_1_Cube" +Version="i2c2_v1_1F7_Cube" +Version="i2c2_v1_1U5_Cube" +Version="STM32MP13_i2c1_v1_0" +Version="STM32MP_i2c2_v1_3" +Version="STM32U5xx" + +STM32U5xx is grep shrapnel, and all the i2c2 versions are equivalent enough to use the same library. +Note also that the STM32MP13_i2c1_v1_0 chips also use the i2c2_v1 implementation. The reason for this is unknown. diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/I2cLowLevel_dma.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/I2cLowLevel_dma.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/I2cLowLevel_dma.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/I2cLowLevel_interrupt.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/I2cLowLevel_interrupt.hpp new file mode 100644 index 000000000..e69de29bb diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/I2cLowLevel_synchronous.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/I2cLowLevel_synchronous.hpp new file mode 100644 index 000000000..e69de29bb diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2c.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2c.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2c.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2c.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cInternal.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cInternal.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cInternal.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2cManager.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2cManager.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cManager.hpp diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cManagercpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cManagercpp.hpp new file mode 100644 index 000000000..b27257fb5 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cManagercpp.hpp @@ -0,0 +1,49 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CMANAGERCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CMANAGERCPP_HPP_ + + +template +I2c I2cManager::i2cs[HW::i2cCount]; + +template +I2cInternal getI2cInternal_internal(I2cIdentifier id) { + if (id == 0) { +#ifdef USE_I2C_1 + return I2cInternal(I2C_SDA(I2C_1, I2C_1_SDA), I2C_SCL(I2C_1, I2C_1_SCL), (I2cRegisters*) 0x40005400); +#else + return I2cInternal(); +#endif + } else { +#ifdef USE_I2C_2 + return I2cInternal(I2C_SDA(I2C_2, I2C_2_SDA), I2C_SCL(I2C_2, I2C_2_SCL), (I2cRegisters*) 0x40005800); +#else + return I2cInternal(); +#endif + } +} + +template +void I2cManager::interrupt(uint8_t id) { + i2cs[id].interrupt(); +} + +template +void I2cManager::init() { + + InterruptManager::setInterrupt(&I2cManager::interrupt, InterruptType::I2cInt); + + for (int i = 0; i < HW::i2cCount; ++i) { + i2cs[i].setI2c(getI2cInternal_internal < LL > (i), i); + i2cs[i].init(); + InterruptManager::enableInterrupt(InterruptType::I2cInt, i, 10); + } +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CMANAGERCPP_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cRegisters.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cRegisters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cRegisters.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2cRegisters.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2ccpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2ccpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2ccpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c1_v1/dma/I2ccpp.hpp diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/I2cLowLevel_dma.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/I2cLowLevel_dma.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/I2cLowLevel_dma.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/I2cLowLevel_interrupt.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/I2cLowLevel_interrupt.hpp new file mode 100644 index 000000000..e69de29bb diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/I2cLowLevel_synchronous.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/I2cLowLevel_synchronous.hpp new file mode 100644 index 000000000..e69de29bb diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2c.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2c.hpp new file mode 100644 index 000000000..16c4a4c62 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2c.hpp @@ -0,0 +1,158 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2C_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2C_HPP_ + + + +enum I2cFrequency { + kHz10, kHz100, kHz400, kHz1000 +}; +#include "specific/I2cInternal.hpp" + +enum I2cTerminationStatus { + Complete, // Successful completion - stopped when expected + AddressNack, // No response to address - device missing or busy + DataNack, // No response to a data byte - device stopped ack'ing. Probably bad. + Address2Nack, // No response to second address in send+receive pair. Eg bus noise, or device reset? + BusError, // Bus had a (bad) failure, eg jammed, or a STOP at wrong time, but recovered to usable state + BusJammed, // Bus jammed and recovery failed. Probably very bad. + BusBusy, // MultiMaster, so bus unavailable (MM not supported well at this time) + MemoryError, // DMA error - probably indicates a bug! Might imply buffer error? + OtherError // eg setup error, or unknown error - probably a bug. +}; + +template +class I2cManager; + +// All methods guarantee that the callback is called. All methods use DMAs if the device supports them. +template +class I2c { +private: + I2cInternal i2c; + I2cIdentifier id; + +#ifdef I2C_DMA + Dma *dma = NULL; + DmaMuxRequest requestTx = DMAMUX_NO_MUX; + DmaMuxRequest requestRx = DMAMUX_NO_MUX; + + void dmaInterrupt(DmaTerminationStatus status); +#endif + + uint16_t address = 0; + uint16_t position = 0; + uint16_t rxLen = 0; + uint16_t txLen = 0; + const uint8_t *txData = NULL; + uint8_t *rxData = NULL; + volatile I2cState state; + void (*volatile callback)(I2c*, I2cTerminationStatus); + + friend class I2cManager ; + + void interrupt(); + + void finish(); + + void restartReceive(); + + I2cTerminationStatus transmit10(uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, bool stop); + +public: + +#ifdef I2C_DMA + I2c::I2c(I2cInternal i2c, I2cIdentifier id, DmaMuxRequest requestTx, DmaMuxRequest requestRx) : + i2c(i2c), id(id), requestTx(requestTx), requestRx(requestRx), state(), callback(NULL) { + } +#endif + + I2c::I2c(I2cInternal i2c, I2cIdentifier id) : + i2c(i2c), id(id), state(), callback(NULL) { + } + +#ifdef I2C_DMA + void setDma(Dma *dma) { + this->dma = dma; + } +#endif + + bool init(); + + void setFrequency(I2cFrequency freq); + + I2cTerminationStatus transmit10(uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen) { + return transmit10(address, tenBit, txData, txLen, true); + } + I2cTerminationStatus receive10(uint16_t address, bool tenBit, uint8_t *rxData, uint16_t rxLen); + + I2cTerminationStatus transmitReceive10(uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, uint16_t rxLen) { + I2cTerminationStatus result = transmit10(address, tenBit, txData, txLen, false); + if (result == Complete) { + result = receive10(address, tenBit, rxData, rxLen); + if (result == AddressNack) { + return Address2Nack; + } + return result; + } else { + return result; + } + } + + void asyncTransmit10(PeripheralOperationMode mode, uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, + void (*callback)(I2c*, I2cTerminationStatus)); + void asyncReceive10(PeripheralOperationMode mode, uint16_t address, bool tenBit, uint8_t *rxData, uint16_t rxLen, + void (*callback)(I2c*, I2cTerminationStatus)); + void asyncTransmitReceive10(PeripheralOperationMode mode, uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, + uint16_t rxLen, void (*callback)(I2c*, I2cTerminationStatus)); + + void asyncTransmit(PeripheralOperationMode mode, uint8_t address, const uint8_t *txData, uint16_t txLen, void (*callback)(I2c*, I2cTerminationStatus)) { + asyncTransmit10(mode, address, false, txData, txLen, callback); + } + void asyncReceive(PeripheralOperationMode mode, uint8_t address, uint8_t *rxData, uint16_t rxLen, void (*callback)(I2c*, I2cTerminationStatus)) { + asyncReceive10(mode, address, false, rxData, rxLen, callback); + } + void asyncTransmitReceive(PeripheralOperationMode mode, uint8_t address, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, uint16_t rxLen, + void (*callback)(I2c*, I2cTerminationStatus)) { + asyncTransmitReceive10(mode, address, false, txData, txLen, rxData, rxLen, callback); + } + + I2cTerminationStatus transmit(uint8_t address, const uint8_t *txData, uint16_t txLen) { + return transmit10(address, false, txData, txLen); + } + I2cTerminationStatus receive(uint8_t address, uint8_t *rxData, uint16_t rxLen) { + return receive10(address, false, rxData, rxLen); + } + I2cTerminationStatus transmitReceive(uint8_t address, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, uint16_t rxLen) { + return transmitReceive10(address, false, txData, txLen, rxData, rxLen); + } + bool isSetUp() { + return i2c.isSetUp(); + } + + bool lock() { + if (!state.lockBool) { + state.lockBool = true; + return true; + } + return false; + } + + bool isLocked() { + return state.lockBool; + } + + void unlock() { + state.lockBool = false; + } +}; + +#include "specific/I2ccpp.hpp" +#include "I2cManager.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2C_HPP_ */ diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cInternal.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2cInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cInternal.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2cInternal.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2cManager.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2cManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2cManager.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2cManager.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cManagercpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2cManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cManagercpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2cManagercpp.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cRegisters.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2cRegisters.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cRegisters.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2cRegisters.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2ccpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2ccpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2ccpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/i2c/i2c2_v1/dma/I2ccpp.hpp diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/PinsLowLevel.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/PinsLowLevel.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/PinsLowLevel.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/Gpio.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/Gpio.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/Gpio.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/Gpio.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/GpioManager.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/GpioManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/GpioManager.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/GpioManager.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioManagercpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/GpioManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioManagercpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/GpioManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioNames.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/GpioNames.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioNames.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/GpioNames.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioPort.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/GpioPort.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioPort.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/GpioPort.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/Gpiocpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/Gpiocpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/Gpiocpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/pins/gpio_v1/impl/Gpiocpp.hpp diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_dma.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_dma.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_dma.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_interrupt.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_interrupt.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_interrupt.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_synchronous.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_synchronous.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v1/UartLowLevel_synchronous.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_dma.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_dma.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_dma.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_interrupt.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_interrupt.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_interrupt.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_synchronous.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_synchronous.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/UartLowLevel_synchronous.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Serial.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/Serial.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Serial.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/Serial.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/SerialRingBuffer.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/SerialRingBuffer.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/SerialRingBuffer.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/SerialRingBuffer.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Uart.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/Uart.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Uart.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/Uart.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartInternal.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartInternal.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartInternal.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/UartManager.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/UartManager.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartManager.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartManagercpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartManagercpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/serial-module/lowlevel/specific/UartPins.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartPins.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/serial-module/lowlevel/specific/UartPins.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartPins.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartRegisters.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartRegisters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartRegisters.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/UartRegisters.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/Uartcpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/Uartcpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/Uartcpp.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v2/dma/Uartcpp.hpp diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_dma.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_dma.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_dma.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_interrupt.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_interrupt.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_interrupt.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_synchronous.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_synchronous.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/UartLowLevel_synchronous.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Serial.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Serial.hpp new file mode 100644 index 000000000..88fb0d19f --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Serial.hpp @@ -0,0 +1,103 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIAL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIAL_HPP_ + +#include + +enum SerialError { + SerialNoError = 0, + SerialParityError = 1, + SerialNoiseError = 2, + SerialFramingError = 3, + SerialOverflowError = 32 +}; + +//always does 8 bit bytes, no parity - just for simplicity +class Serial { +// virtual void init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop) = 0; +// //the buffer overflow handler can read/skip in the callback to clear space - if it doesn't clear enough space we abort the write +// +// virtual void setTargetValue(void (*volatile targetValueCallback)(SerialIdentifier), uint8_t targetValue) = 0; +// virtual void clearTargetValue() = 0; +// virtual SerialIdentifier getId() = 0; +// virtual bool write(uint8_t datum) = 0; + +// virtual uint16_t getWriteLength() = 0; +// +// virtual bool attemptWrite(uint8_t datum) = 0; +// +// virtual bool canAttemptWrite(uint16_t length) = 0; +// +// virtual void endWrite(bool complete) = 0; + +// virtual void transmitWriteBuffer() = 0; +// +// virtual SerialError getError(uint16_t length) = 0; +// +// virtual uint16_t skip(uint16_t length) = 0; +// virtual uint16_t available() = 0; +// virtual int16_t read() = 0; //-1 if no data +// +// virtual uint16_t availablePeek() = 0; +// virtual int16_t peek() = 0; //-1 if no data +// +// virtual void endPeek(bool skipTo) = 0; +// virtual void resetPeek() = 0; +// virtual void skipToPeek() = 0; +// +// virtual int32_t getDistance(uint8_t value) = 0; //returns the number of bytes until the specified value appears, including the value + +protected: + SerialIdentifier id; + +public: + SerialIdentifier getId() { + return id; + } + virtual uint32_t getMaxBaud() = 0; + virtual uint32_t getMinBaud() = 0; + + virtual void init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop) = 0; + //the buffer overflow handler can read/skip in the callback to clear space - if it doesn't clear enough space we abort the write + + virtual void setTargetValue(void (*volatile targetValueCallback)(SerialIdentifier), uint8_t targetValue) = 0; + virtual void clearTargetValue() = 0; + virtual bool write(uint8_t datum) = 0; + + virtual bool write(const uint8_t *buffer, uint16_t length) = 0; + virtual bool canWrite(uint16_t length) = 0; + + virtual bool attemptWrite(const uint8_t *buffer, uint16_t length) = 0; //starts writing without allowing read yet - used to discover if a message will fit + virtual bool attemptWrite(uint8_t datum) = 0; + + virtual bool canAttemptWrite(uint16_t length) = 0; + + virtual void cancelWrite() = 0; //undoes an attempted write + virtual void completeWrite() = 0; //allows reading of any attempted write + virtual void transmitWriteBuffer() = 0; + + virtual SerialError getError(uint16_t length) = 0; + + virtual uint16_t skip(uint16_t length) = 0; + virtual uint16_t available() = 0; + virtual uint16_t read(uint8_t *buffer, uint16_t length) = 0; + virtual int16_t read() = 0; //-1 if no data + + virtual uint16_t availablePeek() = 0; + virtual uint16_t peek(uint8_t *buffer, uint16_t length) = 0; + virtual int16_t peek() = 0; //-1 if no data + + virtual void resetPeek() = 0; + virtual void skipToPeek() = 0; + + virtual int32_t getDistance(uint8_t value) = 0; //returns the number of bytes until the specified value appears, including the value + +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIAL_HPP_ */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/SerialRingBuffer.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/SerialRingBuffer.hpp new file mode 100644 index 000000000..81d537b61 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/SerialRingBuffer.hpp @@ -0,0 +1,299 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIALRINGBUFFER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIALRINGBUFFER_HPP_ + +#include +#include "Serial.hpp" + +template +class SerialRingBuffer { +private: + // in theory, everything should work, but if the optimiser changes the order a bit, + // there could be conditions (in extreme conditions) where the current read byte gets overwritten... would need to check the machine code to be sure + + // we don't fill in the last possible space, so we know the difference between full and empty... + void (*overflowCallback)(SerialIdentifier); // this is called from both write and attemptWrite - a bit weird but kind of useful... + uint16_t writePos; + uint16_t tempWritePos; + uint16_t readPos; + uint16_t peekPos; + SerialIdentifier id; + uint8_t data[size]; + +public: + SerialRingBuffer() : + overflowCallback(NULL), writePos(0), tempWritePos(0), readPos(0), peekPos(0), id(0) { + } + + SerialRingBuffer(void (*overflowCallback)(SerialIdentifier), SerialIdentifier id) : + overflowCallback(overflowCallback), writePos(0), tempWritePos(0), readPos(0), peekPos(0), id(id) { + } + + void setCallback(void (*overflowCallback)(SerialIdentifier), SerialIdentifier id) { + this->overflowCallback = overflowCallback; + this->id = id; + } + + bool write(uint8_t datum) { + if ((readPos == 0 && writePos == size - 1) || writePos == readPos - 1) { + if (overflowCallback != NULL) { + overflowCallback(id); + } + if ((readPos == 0 && writePos == size - 1) || writePos == readPos - 1) { + return false; + } + } + data[writePos++] = datum; + if (writePos == size) { + writePos = 0; + } + tempWritePos = writePos; + return true; + } + + bool write(const uint8_t *buffer, uint16_t length) { + if (!canWrite(length)) { + if (overflowCallback != NULL) { + overflowCallback(id); + } + if (!canWrite(length)) { + return false; + } + } + for (int i = 0; i < length; i++) { + data[writePos++] = buffer[i]; + if (writePos == size) { + writePos = 0; + } + } + tempWritePos = writePos; + return true; + } + + bool canWrite(uint16_t length) { + uint16_t maxLength; + if (writePos < readPos) { + maxLength = readPos - writePos - 1; // -1 due to not filling last space... + } else { + maxLength = size - writePos + readPos - 1; + } + return length <= maxLength; + } + + bool attemptWrite(const uint8_t *buffer, uint16_t length) { //starts writing without allowing read yet - used to discover if a message will fit + if (!canWrite(length)) { + if (overflowCallback != NULL) { + overflowCallback(id); + } + if (!canWrite(length)) { + return false; + } + } + for (uint16_t i = 0; i < length; i++) { + data[tempWritePos++] = buffer[i]; + if (tempWritePos == size) { + tempWritePos = 0; + } + + } + return true; + } + + bool attemptWrite(uint8_t datum) { + if ((readPos == 0 && tempWritePos == size - 1) || tempWritePos == readPos - 1) { + if (overflowCallback != NULL) { + overflowCallback(id); + } + if ((readPos == 0 && tempWritePos == size - 1) || tempWritePos == readPos - 1) { + return false; + } + } + data[tempWritePos++] = datum; + if (tempWritePos == size) { + tempWritePos = 0; + } + return true; + } + + bool canAttemptWrite(uint16_t length) { + uint16_t maxLength; + if (tempWritePos < readPos) { + maxLength = readPos - tempWritePos - 1; // -1 due to not filling last space... + } else { + maxLength = size - tempWritePos + readPos - 1; // -1 due to not filling last space... + } + return length <= maxLength; + } + + void cancelWrite() { //undoes an attempted write + tempWritePos = writePos; + } + + void completeWrite() { //allows reading of any attempted write + writePos = tempWritePos; + } + + uint16_t skip(uint16_t length) { + if (length == 0) { + peekPos = readPos; + return 0; + } + uint16_t skipped = 0; + if (writePos < readPos) { + if (size - readPos > length) { + readPos += length; + peekPos = readPos; + return length + skipped; + } else { + skipped = size - readPos; + length = length - (size - readPos); + readPos = 0; + } + } + if (writePos - readPos >= length) { + readPos += length; + peekPos = readPos; + return length + skipped; + } else { + uint16_t tmp = writePos - readPos; + readPos = writePos; + peekPos = readPos; + return tmp + skipped; + } + } + + uint16_t available() { + if (writePos < readPos) { + return size - readPos + writePos; + } else { + return writePos - readPos; + } + } + + uint16_t read(uint8_t *buffer, uint16_t length) { + uint16_t i = 0; + while (i < length && readPos != writePos) { + buffer[i++] = data[readPos]; + readPos++; + if (readPos == size) { + readPos = 0; + } + } + peekPos = readPos; + return i; + } + + uint16_t read16(uint16_t *buffer, uint16_t length) { + uint16_t bufferPos = 0; + uint16_t i = 0; + bool halfWord = false; + while (i < length && readPos != writePos) { + if (halfWord) { + buffer[bufferPos++] |= data[readPos] << 8; + } else { + buffer[bufferPos] = data[readPos]; + } + halfWord = !halfWord; + i++; + readPos++; + if (readPos == size) { + readPos = 0; + } + } + peekPos = readPos; + return i; + } + + int16_t read() { //-1 if no data + if (readPos == writePos) { + return -1; + } + uint8_t datum = data[readPos]; + readPos++; + if (readPos == size) { + readPos = 0; + } + peekPos = readPos; + return datum; + } + + uint16_t availablePeek() { + if (writePos < peekPos) { + return size - peekPos + writePos; + } else { + return writePos - peekPos; + } + } + + uint16_t peek(uint8_t *buffer, uint16_t length) { + uint16_t i = 0; + while (i < length && peekPos != writePos) { + buffer[i++] = data[peekPos]; + peekPos++; + if (peekPos == size) { + peekPos = 0; + } + } + return i; + } + int16_t peek() { //-1 if no data + if (peekPos == writePos) { + return -1; + } + uint8_t datum = data[peekPos]; + peekPos++; + if (peekPos == size) { + peekPos = 0; + } + return datum; + } + + void resetPeek() { + peekPos = readPos; + } + + void skipToPeek() { + readPos = peekPos; + } + + //The following are all for DMA based emptying/filling + uint8_t* getCurrentLinearRead() { + return data + readPos; + } + + uint16_t getLinearReadLength() { + if (writePos < readPos) { + return size - readPos; + } else { + return writePos - readPos; + } + } + + uint8_t* getCurrentLinearWrite() { + return data + writePos; + } + + uint16_t getLinearWriteLength() { + if (writePos < readPos) { + return readPos - writePos - 1; + } else { + return size - writePos; // -1 due to not filling last space... + } + } + + void skipWrite(uint16_t length) { + if (writePos + length < size) { + writePos += length; + } else { + writePos = writePos + length - size; + } + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIALRINGBUFFER_HPP_ */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Uart.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Uart.hpp new file mode 100644 index 000000000..efcf81c71 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Uart.hpp @@ -0,0 +1,147 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UART_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UART_HPP_ + +#include +#include "specific/UartInternal.hpp" +#include +#include "Serial.hpp" +#include "SerialRingBuffer.hpp" + +template +class UartManager; + +template +void UartDmaCallback(Dma *dma, DmaTerminationStatus status); + +template +void UartTxOverflowCallback(SerialIdentifier id); + +//always does 8 bit bytes, no parity - just for simplicity +template +class Uart: public Serial { + //TODO: Use a dma for Rx as well? +private: + void (*volatile targetValueCallback)(SerialIdentifier); + void (*rxOverflowCallback)(SerialIdentifier); + SerialRingBuffer rxBuffer; + SerialRingBuffer txBuffer; + UartInternal uart; + DmaMuxRequest requestTx = DMAMUX_NO_MUX; + Dma *txDma = NULL; + uint16_t dmaStartDist = 0; + uint16_t availableData = 0; + uint16_t peekDist = 0; + uint8_t targetValue = 0; + + friend void UartDmaCallback(Dma*, DmaTerminationStatus); + friend void UartTxOverflowCallback(SerialIdentifier); + friend UartManager ; + + void interrupt(); + + void dmaInterrupt(DmaTerminationStatus status); + + void txOverflowInterrupt(); + +public: + void setUart(UartInternal uart, Dma *txDma, DmaMuxRequest requestTx) { + this->id = uart.getId(); + this->uart = uart; + this->txDma = txDma; + this->requestTx = requestTx; + } + void setUart(UartInternal uart, Dma *txDma) { + this->id = uart.getId(); + this->uart = uart; + this->txDma = txDma; + this->requestTx = DMAMUX_NO_MUX; + } + uint32_t getMaxBaud() { + return ClockManager::getClock(SysClock)->getFreqKhz() * 1000 / 16; + } + uint32_t getMinBaud() { + return 0; + } + void init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop); + //the buffer overflow handler can read/skip in the callback to clear space - if it doesn't clear enough space we abort the write + + void setTargetValue(void (*volatile targetValueCallback)(SerialIdentifier), uint8_t targetValue) { + this->targetValueCallback = targetValueCallback; + this->targetValue = targetValue; + } + + void clearTargetValue() { + this->targetValueCallback = NULL; + } + + bool write(uint8_t datum) { + return txBuffer.write(datum); + } + + bool write(const uint8_t *buffer, uint16_t length) { + return txBuffer.write(buffer, length); + } + + bool canWrite(uint16_t length) { + return txBuffer.canWrite(length); + } + + bool attemptWrite(const uint8_t *buffer, uint16_t length) { //starts writing without allowing read yet - used to discover if a message will fit + return txBuffer.attemptWrite(buffer, length); + } + + bool attemptWrite(uint8_t datum) { + return txBuffer.attemptWrite(datum); + } + + bool canAttemptWrite(uint16_t length) { + return txBuffer.canAttemptWrite(length); + } + + void cancelWrite() { //undoes an attempted write + txBuffer.cancelWrite(); + } + + void completeWrite() { //allows reading of any attempted write + txBuffer.completeWrite(); + } + + void transmitWriteBuffer(); + + void clearRxFifo(); + + SerialError getError(uint16_t length); + + uint16_t skip(uint16_t length); + + uint16_t available() { + clearRxFifo(); + return availableData; + } + + uint16_t read(uint8_t *buffer, uint16_t length); + + int16_t read(); //-1 if no data + + uint16_t availablePeek(); + + uint16_t peek(uint8_t *buffer, uint16_t length); + + int16_t peek(); //-1 if no data + + void resetPeek(); + + void skipToPeek(); + + int32_t getDistance(uint8_t value); //returns the number of bytes until the specified value appears, including the value +}; +#include "specific/Uartcpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UART_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartInternal.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartInternal.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartInternal.hpp diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartManager.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartManager.hpp new file mode 100644 index 000000000..c9ef122ec --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartManager.hpp @@ -0,0 +1,60 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UARTMANAGER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UARTMANAGER_HPP_ + +#include +#include "Uart.hpp" +#ifdef USE_USB_SERIAL +#include +#endif + +class Serial; + +template +class UartManager { + typedef typename LL::HW HW; + private: + static Uart uarts[HW::uartCount]; + + static uint16_t mask; + + static void interrupt(uint8_t id); + + UartManager() { + } + +public: + static void maskSerial(SerialIdentifier id) { + mask |= (1 << id); + } + static void unmaskSerial(SerialIdentifier id) { + mask &= ~(1 << id); + } + static bool isMasked(SerialIdentifier id) { + return (mask & (1 << id)) != 0; + } + + static void init(); + + static Serial* getUartById(SerialIdentifier id) { + +#ifdef USE_USB_SERIAL + if (id == HW::uartCount) { + return &Usb::usb; + } +#endif + return uarts + id; + } +}; +template +uint16_t UartManager::mask = 0; + +#include "specific/UartManagercpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UARTMANAGER_HPP_ */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartManagercpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartManagercpp.hpp new file mode 100644 index 000000000..f27088cd1 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartManagercpp.hpp @@ -0,0 +1,111 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTMANAGERCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTMANAGERCPP_HPP_ + +#include "UartInternal.hpp" +#include + + +template +Uart UartManager::uarts[] = { + +#ifdef USE_UART_1 + Uart() +#endif +#ifdef USE_UART_2 + , Uart() +#endif +#ifdef USE_UART_3 + , Uart() +#endif +#ifdef USE_UART_4 + , Uart() +#endif +#ifdef USE_UART_5 + , Uart() +#endif +#ifdef USE_UART_6 + , Uart() +#endif + }; + +template +void UartManager::interrupt(uint8_t id) { + UartManager < LL > ::uarts[id].interrupt(); +} + +template +UartInternal getUartInternal(SerialIdentifier id) { + if (id == 0) { +#ifdef USE_UART_1 + return UartInternal(UART_RX(UART_1, UART_1_RX), UART_TX(UART_1, UART_1_TX), (UartRegisters*) 0x40013800, id); +#else + return UartInternal(); +#endif + } else if (id == 1) { +#ifdef USE_UART_2 + return UartInternal(UART_RX(UART_2, UART_2_RX), UART_TX(UART_2, UART_2_TX), (UartRegisters*) 0x40004400, id); +#else + return UartInternal(); +#endif + } else if (id == 2) { +#ifdef USE_UART_3 + return UartInternal(UART_RX(UART_3, UART_3_RX), UART_TX(UART_3, UART_3_TX), (UartRegisters*) 0x40004800, id); +#else + return UartInternal(); +#endif + } else if (id == 3) { +#ifdef USE_UART_4 + return UartInternal(UART_RX(UART_4, UART_4_RX), UART_TX(UART_4, UART_4_TX), (UartRegisters*) 0x40004C00, id); +#else + return UartInternal(); +#endif + } else if (id == 4) { +#ifdef USE_UART_5 + return UartInternal(UART_RX(UART_5, UART_5_RX), UART_TX(UART_5, UART_5_TX), (UartRegisters*) 0x40005000, id); +#else + return UartInternal(); +#endif + } else { +#ifdef USE_UART_6 + return UartInternal(UART_RX(UART_6, UART_6_RX), UART_TX(UART_6, UART_6_TX), (UartRegisters*) 0x40008000, id); +#else + return UartInternal(); +#endif + } +} +DmaMuxRequest getUartMuxTxRequest(SerialIdentifier id) { + if (id == 0) { + return DMAMUX_USART1_TX; + } else if (id == 1) { + return DMAMUX_USART2_TX; + } else if (id == 2) { + return DMAMUX_USART3_TX; + } else if (id == 3) { + return DMAMUX_UART4_TX; + } else if (id == 4) { + return DMAMUX_UART5_TX; + } else { + return DMAMUX_LPUART1_TX; + } +} + +template +void UartManager::init() { + InterruptManager::setInterrupt(&UartManager::interrupt, UartInt); + for (int i = 0; i < HW::uartCount; ++i) { + uarts[i].setUart(getUartInternal < LL > (i), DmaManager < LL > ::getDmaById(LL::uart1TxDma + i), getUartMuxTxRequest(i)); + InterruptManager::enableInterrupt(UartInt, i, 8); + } +#ifdef USE_USB_SERIAL + Usb::usb.setId(HW::uartCount); +#endif +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTMANAGERCPP_HPP_ */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartRegisters.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartRegisters.hpp new file mode 100644 index 000000000..430aa6f7f --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/UartRegisters.hpp @@ -0,0 +1,28 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTREGISTERS_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTREGISTERS_HPP_ + +#include + +struct UartRegisters { + volatile uint32_t CR1; + volatile uint32_t CR2; + volatile uint32_t CR3; + volatile uint32_t BRR; + volatile uint32_t GTPR; + volatile uint32_t RTOR; + volatile uint32_t RQR; + volatile uint32_t ISR; + volatile uint32_t ICR; + volatile uint32_t RDR; + volatile uint32_t TDR; + volatile uint32_t PRESC; +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTREGISTERS_HPP_ */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Uartcpp.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Uartcpp.hpp new file mode 100644 index 000000000..027b55788 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci2_v3/dma/Uartcpp.hpp @@ -0,0 +1,303 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTCPP_HPP_ + +#include "../Uart.hpp" +#include "../UartManager.hpp" +#include + +template +void UartDmaCallback(Dma *dma, DmaTerminationStatus status) { + for (int i = 0; i < LL::HW::uartCount; ++i) { + if (((Uart*) UartManager::getUartById(i))->txDma == dma) { + ((Uart*) UartManager::getUartById(i))->dmaInterrupt(status); + break; + } + } +} + +template +void UartTxOverflowCallback(SerialIdentifier id) { + ((Uart*) UartManager::getUartById(id))->txOverflowInterrupt(); +} + +template +void Uart::transmitWriteBuffer() { + if (txDma->lock()) { + dmaStartDist = txBuffer.getLinearReadLength(); + if (dmaStartDist != 0) { + txDma->peripheralWrite(requestTx, txBuffer.getCurrentLinearRead(), true, (uint8_t*) uart.getTransmitRegister(), false, + dmaStartDist, false, Medium, &UartDmaCallback, false); + } else { + txDma->unlock(); + } + } +} + +template +void Uart::clearRxFifo() { + bool fitted = true; // use boolean to avoid atomicity issues... + while (uart.hasRxFifoData()) { + if (!rxBuffer.canWrite(4)) { //this ensures that we can always write the current byte + 2 more bytes (for overflow marking) + fitted = false; + break; + } + int16_t datum = uart.read(); + if (datum < 0) { + if (datum != -SerialFramingError) { + rxBuffer.write(LL::uartEscapingChar); + rxBuffer.write((uint8_t) - datum); + } + } else if (datum == LL::uartEscapingChar) { + rxBuffer.write(LL::uartEscapingChar); + rxBuffer.write(LL::uartEscapingChar); + if (targetValueCallback != NULL && targetValue == LL::uartEscapingChar) { + targetValueCallback(uart.getId()); + } + availableData++; + } else { + rxBuffer.write((uint8_t) datum); + if (targetValueCallback != NULL && targetValue == datum) { + targetValueCallback(uart.getId()); + } + availableData++; + } + } + if (!fitted) { + if (rxBuffer.canWrite(2)) { // the first time we overrun, we can always write this, but if we repeatedly overrun, we might not + rxBuffer.write(LL::uartEscapingChar); + rxBuffer.write(SerialOverflowError); + } + if (rxOverflowCallback != NULL) { + rxOverflowCallback(uart.getId()); + } + while (uart.hasRxFifoData()) { //flush remaining data, as we can't fit it in... + uart.read(); + } + } +} + +template +SerialError Uart::getError(uint16_t length) { + clearRxFifo(); + peekDist = 0; + rxBuffer.resetPeek(); + for (int16_t i = 0; i < length; ++i) { + int16_t val = rxBuffer.peek(); + if (val == -1) { + break; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.peek(); + if (val != LL::uartEscapingChar) { + rxBuffer.resetPeek(); + return (SerialError) val; + } + } + } + rxBuffer.resetPeek(); + return SerialNoError; +} + +template +uint16_t Uart::read(uint8_t *buffer, uint16_t length) { + clearRxFifo(); + peekDist = 0; + uint16_t i; + for (i = 0; i < length; ++i) { + int16_t val = rxBuffer.read(); + if (val == -1) { + break; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.read(); + if (val == LL::uartEscapingChar) { + buffer[i] = val; + } else { + i--; + } + } else { + buffer[i] = val; + } + } + availableData -= i; + return i; +} + +template +int16_t Uart::read() { + clearRxFifo(); + peekDist = 0; + while (true) { + int16_t val = rxBuffer.read(); + if (val == LL::uartEscapingChar) { + val = rxBuffer.read(); + if (val == LL::uartEscapingChar) { + availableData--; + return val; + } + } else { + if (val != -1) { + availableData--; + } + return val; // this includes if read returned -1 + } + } + +} + +template +int32_t Uart::getDistance(uint8_t value) { + clearRxFifo(); + rxBuffer.resetPeek(); + uint16_t i = 0; + while (true) { + int16_t val = rxBuffer.peek(); + if (val == -1) { + rxBuffer.resetPeek(); + return -1; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.peek(); + if (val == LL::uartEscapingChar) { + if (value == val) { + break; + } + } else { + i--; + } + } else if (val == value) { + break; + } + i++; + } + rxBuffer.resetPeek(); + peekDist = 0; + return i + 1; +} + +template +uint16_t Uart::skip(uint16_t length) { // there is no efficient skip, as we need to exclude escaped characters + clearRxFifo(); + uint16_t i; + for (i = 0; i < length; ++i) { + int16_t val = rxBuffer.read(); + if (val == -1) { + break; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.read(); + if (val != LL::uartEscapingChar) { + i--; + } + } + } + availableData -= i; + peekDist = 0; + return i; +} + +template +uint16_t Uart::availablePeek() { + clearRxFifo(); + return availableData - peekDist; +} + +template +uint16_t Uart::peek(uint8_t *buffer, uint16_t length) { + clearRxFifo(); + uint16_t i; + for (i = 0; i < length; ++i) { + int16_t val = rxBuffer.peek(); + if (val == -1) { + break; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.peek(); + if (val == LL::uartEscapingChar) { + buffer[i] = val; + } else { + i--; + } + } else { + buffer[i] = val; + } + } + peekDist += i; + return i; +} + +template +int16_t Uart::peek() { + clearRxFifo(); + while (true) { + int16_t val = rxBuffer.peek(); + if (val == LL::uartEscapingChar) { + val = rxBuffer.peek(); + if (val == LL::uartEscapingChar) { + peekDist++; + return val; + } + } else { + if (val != -1) { + peekDist++; + } + return val; // this includes if read returned -1 + } + } +} //-1 if no data + +template +void Uart::resetPeek() { + clearRxFifo(); + peekDist = 0; + rxBuffer.resetPeek(); +} + +template +void Uart::skipToPeek() { + clearRxFifo(); + availableData -= peekDist; + peekDist = 0; + rxBuffer.skipToPeek(); +} + +template +void Uart::txOverflowInterrupt() { + transmitWriteBuffer(); // in case somebody forgot, as that would do it... + uint16_t remainingLength = txDma->fetchRemainingTransferLength(); + txBuffer.skip(dmaStartDist - remainingLength); // move along as much as the DMA has allowed in the time since we last did that + dmaStartDist -= remainingLength; +} + +template +void Uart::dmaInterrupt(DmaTerminationStatus status) { + //FIXME: Do something with interesting failure states... + (void) status; + txBuffer.skip(dmaStartDist); + dmaStartDist = txBuffer.getLinearReadLength(); + txDma->halt(); + if (dmaStartDist == 0) { + txDma->unlock(); + } else { + txDma->peripheralWrite(requestTx, txBuffer.getCurrentLinearRead(), true, (uint8_t*) uart.getTransmitRegister(), false, + dmaStartDist, false, Medium, &UartDmaCallback, false); + } +} + +template +void Uart::init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop) { +// buffer overflow callback can be NULL + this->rxOverflowCallback = bufferOverflowCallback; + this->txBuffer.setCallback(&UartTxOverflowCallback, uart.getId()); + uart.init(baud_rate, singleNdoubleStop); +} + +template +void Uart::interrupt() { + clearRxFifo(); + uart.clearFlags(); +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTCPP_HPP_ */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_dma.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_dma.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_dma.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_interrupt.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_interrupt.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_interrupt.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_synchronous.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_synchronous.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v1/UartLowLevel_synchronous.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_dma.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_dma.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_dma.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_interrupt.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_interrupt.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_interrupt.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_synchronous.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_synchronous.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/uart/sci3_v2/UartLowLevel_synchronous.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/UsbLowLevel.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/UsbLowLevel.hpp new file mode 100644 index 000000000..10db2c098 --- /dev/null +++ b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/UsbLowLevel.hpp @@ -0,0 +1,6 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/Usb.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/Usb.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/Usb.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/Usb.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbDefaultEndpoint.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbDefaultEndpoint.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbDefaultEndpoint.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbDefaultEndpoint.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbEndpointRegister.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbEndpointRegister.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbEndpointRegister.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbEndpointRegister.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInternal.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInternal.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbInternal.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInterruptDataEndpoint.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbInterruptDataEndpoint.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInterruptDataEndpoint.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbInterruptDataEndpoint.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbRegisters.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbRegisters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbRegisters.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usb_device/usb1_v2/impl/UsbRegisters.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/Ucpd.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/Ucpd.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/Ucpd.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/Ucpd.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdInternal.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdLowLevel.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdLowLevel.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdLowLevel.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdLowLevel.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdMessages.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdMessages.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdMessages.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdMessages.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParsedExtendedSourceCapabilitiesMessage.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParsedExtendedSourceCapabilitiesMessage.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedManufacturerInfoMessage.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParsedManufacturerInfoMessage.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedManufacturerInfoMessage.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParsedManufacturerInfoMessage.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedPPSStatusMessage.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParsedPPSStatusMessage.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedPPSStatusMessage.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParsedPPSStatusMessage.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedStatusMessage.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParsedStatusMessage.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedStatusMessage.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParsedStatusMessage.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdParser.hpp b/receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParser.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdParser.hpp rename to receivers/generic-c++/zll/STM32/src/main/c++/zscript/usbc_pd/ucpd_v1/impl/UcpdParser.hpp diff --git a/receivers/native/arm/.pydevproject b/receivers/generic-c++/zll/arm/.pydevproject similarity index 100% rename from receivers/native/arm/.pydevproject rename to receivers/generic-c++/zll/arm/.pydevproject diff --git a/receivers/native/arm/examples/pom.xml b/receivers/generic-c++/zll/arm/examples/pom.xml similarity index 100% rename from receivers/native/arm/examples/pom.xml rename to receivers/generic-c++/zll/arm/examples/pom.xml diff --git a/receivers/native/arm/examples/stm32g484re-minimal/pom.xml b/receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/pom.xml similarity index 100% rename from receivers/native/arm/examples/stm32g484re-minimal/pom.xml rename to receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/pom.xml diff --git a/receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/common/startup_stm32g484xx.s b/receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/common/startup_stm32g484xx.s similarity index 100% rename from receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/common/startup_stm32g484xx.s rename to receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/common/startup_stm32g484xx.s diff --git a/receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/common/system_stm32g4xx.c b/receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/common/system_stm32g4xx.c similarity index 100% rename from receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/common/system_stm32g4xx.c rename to receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/common/system_stm32g4xx.c diff --git a/receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/main/GeneralLLSetup.hpp b/receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/main/GeneralLLSetup.hpp similarity index 100% rename from receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/main/GeneralLLSetup.hpp rename to receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/main/GeneralLLSetup.hpp diff --git a/receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/main/ZcodeParameters.hpp b/receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/main/ZcodeParameters.hpp similarity index 100% rename from receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/main/ZcodeParameters.hpp rename to receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/main/ZcodeParameters.hpp diff --git a/receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/main/test-minimal.cpp b/receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/main/test-minimal.cpp similarity index 100% rename from receivers/native/arm/examples/stm32g484re-minimal/src/main/c++/main/test-minimal.cpp rename to receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/c++/main/test-minimal.cpp diff --git a/receivers/native/arm/examples/stm32g484re-minimal/src/main/ld/STM32G484QETX_FLASH.ld b/receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/ld/STM32G484QETX_FLASH.ld similarity index 100% rename from receivers/native/arm/examples/stm32g484re-minimal/src/main/ld/STM32G484QETX_FLASH.ld rename to receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/ld/STM32G484QETX_FLASH.ld diff --git a/receivers/native/arm/examples/stm32g484re-minimal/src/main/openocd/openocd.cfg b/receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/openocd/openocd.cfg similarity index 100% rename from receivers/native/arm/examples/stm32g484re-minimal/src/main/openocd/openocd.cfg rename to receivers/generic-c++/zll/arm/examples/stm32g484re-minimal/src/main/openocd/openocd.cfg diff --git a/receivers/native/arm/examples/stm32g484re/pom.xml b/receivers/generic-c++/zll/arm/examples/stm32g484re/pom.xml similarity index 100% rename from receivers/native/arm/examples/stm32g484re/pom.xml rename to receivers/generic-c++/zll/arm/examples/stm32g484re/pom.xml diff --git a/receivers/native/arm/examples/stm32g484re/src/main/c++/common/startup_stm32g484xx.s b/receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/common/startup_stm32g484xx.s similarity index 100% rename from receivers/native/arm/examples/stm32g484re/src/main/c++/common/startup_stm32g484xx.s rename to receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/common/startup_stm32g484xx.s diff --git a/receivers/native/arm/examples/stm32g484re/src/main/c++/common/system_stm32g4xx.c b/receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/common/system_stm32g4xx.c similarity index 100% rename from receivers/native/arm/examples/stm32g484re/src/main/c++/common/system_stm32g4xx.c rename to receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/common/system_stm32g4xx.c diff --git a/receivers/native/arm/examples/stm32g484re/src/main/c++/main/GeneralLLSetup.hpp b/receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/main/GeneralLLSetup.hpp similarity index 100% rename from receivers/native/arm/examples/stm32g484re/src/main/c++/main/GeneralLLSetup.hpp rename to receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/main/GeneralLLSetup.hpp diff --git a/receivers/native/arm/examples/stm32g484re/src/main/c++/main/ZcodeParameters.hpp b/receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/main/ZcodeParameters.hpp similarity index 100% rename from receivers/native/arm/examples/stm32g484re/src/main/c++/main/ZcodeParameters.hpp rename to receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/main/ZcodeParameters.hpp diff --git a/receivers/native/arm/examples/stm32g484re/src/main/c++/main/main.cpp b/receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/main/main.cpp similarity index 100% rename from receivers/native/arm/examples/stm32g484re/src/main/c++/main/main.cpp rename to receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/c++/main/main.cpp diff --git a/receivers/native/arm/examples/stm32g484re/src/main/ld/STM32G484QETX_FLASH.ld b/receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/ld/STM32G484QETX_FLASH.ld similarity index 100% rename from receivers/native/arm/examples/stm32g484re/src/main/ld/STM32G484QETX_FLASH.ld rename to receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/ld/STM32G484QETX_FLASH.ld diff --git a/receivers/native/arm/examples/stm32g484re/src/main/openocd/openocd.cfg b/receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/openocd/openocd.cfg similarity index 100% rename from receivers/native/arm/examples/stm32g484re/src/main/openocd/openocd.cfg rename to receivers/generic-c++/zll/arm/examples/stm32g484re/src/main/openocd/openocd.cfg diff --git a/receivers/native/arm/implementations/pom.xml b/receivers/generic-c++/zll/arm/implementations/pom.xml similarity index 100% rename from receivers/native/arm/implementations/pom.xml rename to receivers/generic-c++/zll/arm/implementations/pom.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32C0xx_453_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32C0xx_453_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32C0xx_453_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32C0xx_453_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32C0xx_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32C0xx_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32C0xx_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32C0xx_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F031_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F031_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F031_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F031_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F042_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F042_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F042_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F042_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F051_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F051_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F051_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F051_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F052_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F052_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F052_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F052_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F091_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F091_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F091_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F091_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F217_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F217_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F217_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F217_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F302_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F302_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F302_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F302_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F303E_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F303E_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F303E_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F303E_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F303_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F303_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F303_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F303_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F333_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F333_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F333_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F333_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F373_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F373_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F373_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F373_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F401_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F401_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F401_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F401_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F410_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F410_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F410_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F410_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F411_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F411_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F411_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F411_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F412_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F412_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F412_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F412_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F413_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F413_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F413_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F413_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F417_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F417_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F417_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F417_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F427_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F427_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F427_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F427_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F446_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F446_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F446_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F446_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F469_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F469_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F469_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F469_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F72x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F72x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F72x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F72x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F746_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F746_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F746_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F746_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32F76x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F76x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32F76x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32F76x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32G03x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G03x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32G03x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G03x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32G05x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G05x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32G05x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G05x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32G07x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G07x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32G07x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G07x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32G0Bx_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G0Bx_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32G0Bx_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G0Bx_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32G43x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G43x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32G43x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G43x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32G47x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G47x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32G47x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G47x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32G49x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G49x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32G49x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32G49x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32H72_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32H72_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32H72_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32H72_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32H747_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32H747_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32H747_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32H747_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32H7A2_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32H7A2_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32H7A2_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32H7A2_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L021_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L021_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L021_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L021_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L031_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L031_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L031_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L031_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L051_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L051_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L051_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L051_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L071_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L071_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L071_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L071_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L152x8_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L152x8_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L152x8_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L152x8_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L152xC_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L152xC_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L152xC_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L152xC_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L15xxA_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L15xxA_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L15xxA_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L15xxA_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L162xD_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L162xD_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L162xD_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L162xD_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L162xE_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L162xE_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L162xE_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L162xE_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L41x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L41x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L41x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L41x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L43x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L43x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L43x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L43x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L45x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L45x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L45x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L45x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L47x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L47x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L47x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L47x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L49x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L49x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L49x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L49x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L4P_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L4P_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L4P_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L4P_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L4Rx_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L4Rx_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L4Rx_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L4Rx_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32L55x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L55x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32L55x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32L55x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32MP13x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32MP13x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32MP13x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32MP13x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32MPU_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32MPU_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32MPU_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32MPU_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32U59x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32U59x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32U59x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32U59x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32U5x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32U5x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32U5x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32U5x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32WB35x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WB35x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32WB35x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WB35x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32WB3x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WB3x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32WB3x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WB3x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32WB55x_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WB55x_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32WB55x_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WB55x_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32WB5Mx_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WB5Mx_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32WB5Mx_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WB5Mx_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/GPIO-STM32WL_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WL_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/GPIO-STM32WL_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/GPIO-STM32WL_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F100x8_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F100x8_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F100x8_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F100x8_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F100xC_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F100xC_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F100xC_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F100xC_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103x4_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103x4_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103x4_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103x4_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103x8_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103x8_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103x8_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103x8_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103xC_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103xC_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103xC_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103xC_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103xF_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103xF_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103xF_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F103xF_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F107_gpio_v1_0_Modes.xml b/receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F107_gpio_v1_0_Modes.xml similarity index 100% rename from receivers/native/arm/implementations/resources/AF/doesntWork/GPIO-STM32F107_gpio_v1_0_Modes.xml rename to receivers/generic-c++/zll/arm/implementations/resources/AF/doesntWork/GPIO-STM32F107_gpio_v1_0_Modes.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C011D6Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C011D6Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C011D6Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C011D6Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C011F(4-6)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C011F(4-6)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C011F(4-6)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C011F(4-6)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C011F(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C011F(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C011F(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C011F(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C011J(4-6)Mx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C011J(4-6)Mx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C011J(4-6)Mx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C011J(4-6)Mx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C031C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C031C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C031C(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031C(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C031C(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031C(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C031F(4-6)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031F(4-6)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C031F(4-6)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031F(4-6)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C031G(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031G(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C031G(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031G(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C031K(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031K(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C031K(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031K(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32C031K(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031K(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32C031K(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32C031K(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F030C6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030C6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F030C6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030C6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F030C8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030C8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F030C8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030C8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F030CCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030CCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F030CCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030CCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F030F4Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030F4Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F030F4Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030F4Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F030K6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030K6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F030K6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030K6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F030R8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030R8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F030R8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030R8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F030RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F030RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F030RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F031C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F031C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F031E6Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031E6Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F031E6Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031E6Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F031F(4-6)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031F(4-6)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F031F(4-6)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031F(4-6)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F031G(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031G(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F031G(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031G(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F031K(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031K(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F031K(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031K(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F031K6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031K6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F031K6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F031K6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F038C6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038C6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F038C6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038C6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F038E6Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038E6Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F038E6Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038E6Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F038F6Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038F6Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F038F6Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038F6Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F038G6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038G6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F038G6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038G6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F038K6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038K6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F038K6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F038K6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F042C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F042C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F042C(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042C(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F042C(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042C(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F042F4Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042F4Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F042F4Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042F4Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F042F6Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042F6Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F042F6Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042F6Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F042G(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042G(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F042G(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042G(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F042K(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042K(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F042K(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042K(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F042K(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042K(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F042K(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042K(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F042T6Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042T6Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F042T6Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F042T6Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F048C6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F048C6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F048C6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F048C6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F048G6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F048G6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F048G6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F048G6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F048T6Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F048T6Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F048T6Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F048T6Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051C4Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C4Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051C4Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C4Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051C4Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C4Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051C4Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C4Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051C6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051C6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051C6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051C6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051C8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051C8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051C8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051C8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051C8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051K4Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K4Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051K4Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K4Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051K4Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K4Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051K4Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K4Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051K6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051K6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051K6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051K6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051K8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051K8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051K8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051K8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051K8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051R4Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051R4Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051R4Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051R4Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051R6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051R6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051R6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051R6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051R8Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051R8Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051R8Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051R8Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051R8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051R8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051R8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051R8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F051T8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051T8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F051T8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F051T8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F058C8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F058C8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F058C8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F058C8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F058R8Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F058R8Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F058R8Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F058R8Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F058R8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F058R8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F058R8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F058R8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F058T8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F058T8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F058T8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F058T8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F070C6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F070C6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F070C6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F070C6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F070CBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F070CBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F070CBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F070CBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F070F6Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F070F6Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F070F6Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F070F6Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F070RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F070RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F070RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F070RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F071C(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071C(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F071C(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071C(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F071C(8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071C(8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F071C(8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071C(8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F071CBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071CBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F071CBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071CBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F071RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F071RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F071V(8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071V(8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F071V(8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071V(8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F071V(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071V(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F071V(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F071V(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F072C(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072C(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F072C(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072C(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F072C(8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072C(8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F072C(8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072C(8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F072CBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072CBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F072CBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072CBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F072R(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072R(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F072R(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072R(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F072RBHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072RBHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F072RBHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072RBHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F072RBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072RBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F072RBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072RBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F072V(8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072V(8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F072V(8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072V(8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F072V(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072V(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F072V(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F072V(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F078CBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078CBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F078CBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078CBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F078CBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078CBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F078CBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078CBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F078CBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078CBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F078CBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078CBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F078RBHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078RBHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F078RBHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078RBHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F078RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F078RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F078VBHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078VBHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F078VBHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078VBHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F078VBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078VBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F078VBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F078VBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F091C(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091C(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F091C(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091C(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F091C(B-C)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091C(B-C)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F091C(B-C)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091C(B-C)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F091R(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091R(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F091R(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091R(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F091RCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091RCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F091RCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091RCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F091RCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091RCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F091RCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091RCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F091V(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091V(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F091V(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091V(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F091VCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091VCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F091VCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F091VCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F098CCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098CCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F098CCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098CCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F098CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F098CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F098RCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098RCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F098RCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098RCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F098RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F098RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F098RCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098RCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F098RCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098RCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F098VCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098VCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F098VCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098VCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F098VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F098VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F098VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100C(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100C(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100C(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100C(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100R(4-6)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(4-6)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100R(4-6)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(4-6)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100R(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100R(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100R(8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100R(8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100R(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100R(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100R(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100R(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100R(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100V(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100V(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100V(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100V(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100V(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100V(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100V(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100V(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F100Z(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100Z(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F100Z(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F100Z(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101C(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101C(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101C(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101C(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101C(8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101C(8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101C(8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101C(8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101R(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101R(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101R(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101R(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101R(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101R(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101R(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101R(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101R(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101R(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101R(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101R(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101R(F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101R(F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101R(F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101R(F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101RBHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101RBHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101RBHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101RBHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101T(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101T(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101T(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101T(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101T(8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101T(8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101T(8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101T(8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101V(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101V(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101V(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101V(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101V(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101V(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101V(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101V(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101V(F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101V(F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101V(F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101V(F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101Z(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101Z(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101Z(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101Z(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F101Z(F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101Z(F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F101Z(F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F101Z(F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F102C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F102C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F102C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F102C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F102C(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F102C(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F102C(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F102C(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F102R(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F102R(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F102R(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F102R(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F102R(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F102R(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F102R(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F102R(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103C(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103C(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103C(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103C(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103C6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103C6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103C6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103C6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103CBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103CBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103CBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103CBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103R(4-6)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(4-6)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103R(4-6)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(4-6)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103R(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103R(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103R(8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103R(8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103R(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103R(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103R(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103R(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103R(C-D-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(C-D-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103R(C-D-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(C-D-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103R(F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103R(F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103R(F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103T(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103T(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103T(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103T(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103T(8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103T(8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103T(8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103T(8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103V(8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103V(8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103V(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103V(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103V(C-D-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(C-D-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103V(C-D-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(C-D-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103V(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103V(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103V(F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103V(F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103V(F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103VBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103VBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103VBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103VBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103Z(C-D-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103Z(C-D-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103Z(C-D-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103Z(C-D-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103Z(C-D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103Z(C-D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103Z(C-D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103Z(C-D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103Z(F-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103Z(F-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103Z(F-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103Z(F-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F103Z(F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103Z(F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F103Z(F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F103Z(F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F105R(8-B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F105R(8-B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F105R(8-B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F105R(8-B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F105V(8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F105V(8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F105V(8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F105V(8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F105V(8-B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F105V(8-B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F105V(8-B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F105V(8-B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F107R(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F107R(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F107R(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F107R(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F107V(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F107V(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F107V(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F107V(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F107VCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F107VCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F107VCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F107VCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F205R(B-C-E-F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205R(B-C-E-F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F205R(B-C-E-F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205R(B-C-E-F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F205R(E-G)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205R(E-G)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F205R(E-G)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205R(E-G)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F205RGEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205RGEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F205RGEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205RGEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F205V(B-C-E-F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205V(B-C-E-F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F205V(B-C-E-F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205V(B-C-E-F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F205Z(C-E-F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205Z(C-E-F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F205Z(C-E-F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F205Z(C-E-F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F207I(C-E-F-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F207I(C-E-F-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F207I(C-E-F-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F207I(C-E-F-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F207I(C-E-F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F207I(C-E-F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F207I(C-E-F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F207I(C-E-F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F207V(C-E-F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F207V(C-E-F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F207V(C-E-F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F207V(C-E-F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F207Z(C-E-F-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F207Z(C-E-F-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F207Z(C-E-F-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F207Z(C-E-F-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F215R(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F215R(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F215R(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F215R(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F215V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F215V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F215V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F215V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F215Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F215Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F215Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F215Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F217I(E-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F217I(E-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F217I(E-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F217I(E-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F217I(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F217I(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F217I(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F217I(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F217V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F217V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F217V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F217V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F217Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F217Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F217Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F217Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F301C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F301C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F301C8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301C8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F301C8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301C8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F301K(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301K(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F301K(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301K(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F301K(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301K(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F301K(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301K(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F301R(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301R(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F301R(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F301R(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302C(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302C(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302C(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302C(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302C8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302C8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302C8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302C8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302K(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302K(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302K(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302K(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302R(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302R(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302R(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302R(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302R(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302R(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302R(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302R(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302R(D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302R(D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302R(D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302R(D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302V(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302V(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302V(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302V(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302V(D-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302V(D-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302V(D-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302V(D-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302V(D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302V(D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302V(D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302V(D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302VCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302VCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302VCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302VCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F302Z(D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302Z(D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F302Z(D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F302Z(D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303C(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303C(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303C(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303C(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303C8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303C8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303C8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303C8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303K(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303K(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303K(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303K(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303K(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303K(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303K(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303K(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303R(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303R(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303R(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303R(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303R(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303R(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303R(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303R(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303R(D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303R(D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303R(D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303R(D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303V(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303V(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303V(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303V(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303V(D-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303V(D-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303V(D-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303V(D-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303V(D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303V(D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303V(D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303V(D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303VCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303VCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303VCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303VCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303VEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303VEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303VEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303VEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F303Z(D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303Z(D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F303Z(D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F303Z(D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F318C8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F318C8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F318C8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F318C8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F318C8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F318C8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F318C8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F318C8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F318K8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F318K8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F318K8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F318K8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F328C8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F328C8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F328C8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F328C8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F334C(4-6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334C(4-6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F334C(4-6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334C(4-6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F334C8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334C8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F334C8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334C8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F334K(4-6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334K(4-6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F334K(4-6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334K(4-6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F334K(4-6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334K(4-6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F334K(4-6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334K(4-6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F334R(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334R(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F334R(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F334R(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F358CCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F358CCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F358CCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F358CCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F358RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F358RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F358RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F358RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F358VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F358VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F358VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F358VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F373C(8-B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F373C(8-B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F373C(8-B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F373C(8-B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F373R(8-B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F373R(8-B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F373R(8-B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F373R(8-B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F373V(8-B-C)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F373V(8-B-C)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F373V(8-B-C)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F373V(8-B-C)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F373V(8-B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F373V(8-B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F373V(8-B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F373V(8-B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F378CCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378CCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F378CCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378CCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F378RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F378RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F378RCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378RCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F378RCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378RCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F378VCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378VCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F378VCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378VCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F378VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F378VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F378VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F398VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F398VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F398VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F398VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401C(B-C)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401C(B-C)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401C(B-C)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401C(B-C)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401C(B-C)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401C(B-C)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401C(B-C)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401C(B-C)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401C(D-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401C(D-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401C(D-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401C(D-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401C(D-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401C(D-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401C(D-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401C(D-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401CCFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401CCFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401CCFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401CCFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401R(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401R(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401R(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401R(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401R(D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401R(D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401R(D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401R(D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401V(B-C)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401V(B-C)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401V(B-C)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401V(B-C)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401V(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401V(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401V(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401V(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401V(D-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401V(D-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401V(D-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401V(D-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F401V(D-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401V(D-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F401V(D-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F401V(D-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F405O(E-G)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F405O(E-G)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F405O(E-G)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F405O(E-G)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F405RGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F405RGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F405RGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F405RGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F405VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F405VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F405VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F405VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F405ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F405ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F405ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F405ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F407I(E-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F407I(E-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F407I(E-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F407I(E-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F407I(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F407I(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F407I(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F407I(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F407V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F407V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F407V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F407V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F407Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F407Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F407Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F407Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F410C(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410C(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F410C(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410C(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F410C(8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410C(8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F410C(8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410C(8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F410R(8-B)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410R(8-B)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F410R(8-B)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410R(8-B)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F410R(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410R(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F410R(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410R(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F410T(8-B)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410T(8-B)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F410T(8-B)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F410T(8-B)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F411C(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411C(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F411C(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411C(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F411C(C-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411C(C-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F411C(C-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411C(C-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F411R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F411R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F411V(C-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411V(C-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F411V(C-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411V(C-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F411V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F411V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F411V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F412C(E-G)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412C(E-G)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F412C(E-G)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412C(E-G)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F412R(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412R(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F412R(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412R(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F412R(E-G)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412R(E-G)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F412R(E-G)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412R(E-G)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F412R(E-G)YxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412R(E-G)YxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F412R(E-G)YxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412R(E-G)YxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F412V(E-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412V(E-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F412V(E-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412V(E-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F412V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F412V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F412Z(E-G)Jx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412Z(E-G)Jx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F412Z(E-G)Jx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412Z(E-G)Jx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F412Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F412Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F412Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F413C(G-H)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413C(G-H)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F413C(G-H)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413C(G-H)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F413M(G-H)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413M(G-H)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F413M(G-H)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413M(G-H)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F413R(G-H)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413R(G-H)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F413R(G-H)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413R(G-H)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F413V(G-H)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413V(G-H)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F413V(G-H)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413V(G-H)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F413V(G-H)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413V(G-H)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F413V(G-H)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413V(G-H)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F413Z(G-H)Jx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413Z(G-H)Jx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F413Z(G-H)Jx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413Z(G-H)Jx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F413Z(G-H)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413Z(G-H)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F413Z(G-H)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F413Z(G-H)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F415OGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F415OGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F415OGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F415OGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F415RGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F415RGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F415RGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F415RGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F415VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F415VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F415VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F415VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F415ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F415ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F415ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F415ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F417I(E-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F417I(E-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F417I(E-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F417I(E-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F417I(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F417I(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F417I(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F417I(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F417V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F417V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F417V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F417V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F417Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F417Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F417Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F417Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F423CHUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423CHUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F423CHUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423CHUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F423MHYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423MHYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F423MHYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423MHYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F423RHTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423RHTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F423RHTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423RHTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F423VHHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423VHHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F423VHHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423VHHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F423VHTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423VHTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F423VHTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423VHTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F423ZHJx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423ZHJx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F423ZHJx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423ZHJx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F423ZHTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423ZHTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F423ZHTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F423ZHTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F427A(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427A(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F427A(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427A(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F427I(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427I(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F427I(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427I(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F427I(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427I(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F427I(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427I(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F427V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F427V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F427Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F427Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F427Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429A(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429A(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429A(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429A(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429B(E-G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429B(E-G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429B(E-G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429B(E-G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429I(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429I(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429I(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429I(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429I(E-G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429I(E-G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429I(E-G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429I(E-G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429N(E-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429N(E-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429N(E-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429N(E-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429NIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429NIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429NIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429NIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429ZGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429ZGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429ZGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429ZGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F429ZIYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429ZIYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F429ZIYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F429ZIYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F437AIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437AIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F437AIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437AIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F437I(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437I(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F437I(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437I(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F437I(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437I(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F437I(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437I(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F437V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F437V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F437Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F437Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F437Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F439AIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439AIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F439AIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439AIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F439B(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439B(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F439B(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439B(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F439I(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439I(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F439I(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439I(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F439I(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439I(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F439I(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439I(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F439N(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439N(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F439N(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439N(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F439V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F439V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F439Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F439Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F439Z(G-I)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439Z(G-I)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F439Z(G-I)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F439Z(G-I)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F446M(C-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446M(C-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F446M(C-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446M(C-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F446R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F446R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F446V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F446V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F446Z(C-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446Z(C-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F446Z(C-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446Z(C-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F446Z(C-E)Jx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446Z(C-E)Jx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F446Z(C-E)Jx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446Z(C-E)Jx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F446Z(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446Z(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F446Z(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F446Z(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469A(E-G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469A(E-G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469A(E-G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469A(E-G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469A(E-G-I)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469A(E-G-I)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469A(E-G-I)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469A(E-G-I)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469B(E-G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469B(E-G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469B(E-G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469B(E-G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469I(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469I(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469I(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469I(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469I(E-G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469I(E-G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469I(E-G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469I(E-G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469N(E-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469N(E-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469N(E-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469N(E-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469NIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469NIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469NIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469NIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F469ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F469ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F469ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F479A(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479A(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F479A(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479A(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F479A(G-I)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479A(G-I)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F479A(G-I)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479A(G-I)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F479B(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479B(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F479B(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479B(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F479I(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479I(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F479I(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479I(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F479I(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479I(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F479I(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479I(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F479N(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479N(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F479N(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479N(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F479V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F479V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F479Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F479Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F479Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F722I(C-E)Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722I(C-E)Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F722I(C-E)Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722I(C-E)Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F722I(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722I(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F722I(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722I(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F722R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F722R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F722V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F722V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F722Z(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722Z(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F722Z(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F722Z(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F723I(C-E)Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723I(C-E)Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F723I(C-E)Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723I(C-E)Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F723I(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723I(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F723I(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723I(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F723V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F723V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F723V(C-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723V(C-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F723V(C-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723V(C-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F723Z(C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723Z(C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F723Z(C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723Z(C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F723Z(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723Z(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F723Z(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F723Z(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F730I8Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F730I8Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F730I8Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F730I8Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F730R8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F730R8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F730R8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F730R8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F730V8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F730V8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F730V8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F730V8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F730Z8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F730Z8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F730Z8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F730Z8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F732IEKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732IEKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F732IEKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732IEKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F732IETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732IETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F732IETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732IETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F732RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F732RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F732VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F732VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F732ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F732ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F732ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F733IEKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733IEKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F733IEKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733IEKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F733IETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733IETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F733IETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733IETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F733VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F733VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F733VEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733VEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F733VEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733VEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F733ZEIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733ZEIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F733ZEIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733ZEIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F733ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F733ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F733ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F745I(E-G)Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745I(E-G)Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F745I(E-G)Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745I(E-G)Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F745I(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745I(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F745I(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745I(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F745V(E-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745V(E-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F745V(E-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745V(E-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F745V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F745V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F745Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F745Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F745Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746B(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746B(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746B(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746B(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746I(E-G)Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746I(E-G)Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746I(E-G)Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746I(E-G)Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746IETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746IETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746IETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746IETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746IGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746IGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746IGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746IGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746NEHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746NEHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746NEHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746NEHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746NGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746NGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746NGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746NGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746V(E-G)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746V(E-G)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746V(E-G)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746V(E-G)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746Z(E-G)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746Z(E-G)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746Z(E-G)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746Z(E-G)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F746ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F746ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F746ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F750N8Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F750N8Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F750N8Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F750N8Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F750V8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F750V8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F750V8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F750V8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F750Z8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F750Z8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F750Z8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F750Z8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F756BGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756BGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F756BGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756BGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F756IGKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756IGKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F756IGKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756IGKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F756IGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756IGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F756IGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756IGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F756NGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756NGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F756NGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756NGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F756VGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756VGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F756VGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756VGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F756VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F756VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F756ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F756ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F756ZGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756ZGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F756ZGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F756ZGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F765B(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765B(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F765B(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765B(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F765I(G-I)Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765I(G-I)Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F765I(G-I)Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765I(G-I)Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F765I(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765I(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F765I(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765I(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F765N(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765N(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F765N(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765N(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F765V(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765V(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F765V(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765V(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F765V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F765V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F765Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F765Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F765Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767B(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767B(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767B(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767B(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767I(G-I)Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767I(G-I)Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767I(G-I)Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767I(G-I)Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767I(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767I(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767I(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767I(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767N(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767N(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767N(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767N(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767VGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767VGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767VGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767VGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767VIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767VIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767VIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767VIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F767ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F767ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F767ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F768AIYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F768AIYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F768AIYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F768AIYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F769A(G-I)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769A(G-I)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F769A(G-I)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769A(G-I)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F769B(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769B(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F769B(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769B(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F769IGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769IGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F769IGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769IGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F769IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F769IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F769NGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769NGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F769NGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769NGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F769NIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769NIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F769NIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F769NIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F777BITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777BITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F777BITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777BITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F777IIKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777IIKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F777IIKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777IIKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F777IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F777IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F777NIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777NIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F777NIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777NIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F777VIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777VIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F777VIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777VIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F777VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F777VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F777ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F777ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F777ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F778AIYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F778AIYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F778AIYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F778AIYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F779AIYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F779AIYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F779AIYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F779AIYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F779BITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F779BITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F779BITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F779BITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F779IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F779IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F779IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F779IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32F779NIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F779NIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32F779NIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32F779NIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G030C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G030C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G030C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G030C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G030F6Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G030F6Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G030F6Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G030F6Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G030J6Mx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G030J6Mx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G030J6Mx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G030J6Mx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G030K(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G030K(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G030K(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G030K(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G031C(4-6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031C(4-6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G031C(4-6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031C(4-6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G031C(4-6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031C(4-6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G031C(4-6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031C(4-6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G031F(4-6-8)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031F(4-6-8)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G031F(4-6-8)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031F(4-6-8)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G031G(4-6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031G(4-6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G031G(4-6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031G(4-6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G031J(4-6)Mx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031J(4-6)Mx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G031J(4-6)Mx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031J(4-6)Mx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G031K(4-6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031K(4-6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G031K(4-6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031K(4-6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G031K(4-6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031K(4-6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G031K(4-6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031K(4-6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G031Y8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031Y8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G031Y8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G031Y8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G041C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G041C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G041C(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041C(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G041C(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041C(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G041F(6-8)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041F(6-8)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G041F(6-8)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041F(6-8)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G041G(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041G(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G041G(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041G(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G041J6Mx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041J6Mx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G041J6Mx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041J6Mx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G041K(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041K(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G041K(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041K(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G041K(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041K(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G041K(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041K(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G041Y8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041Y8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G041Y8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G041Y8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G050C6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050C6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G050C6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050C6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G050C8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050C8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G050C8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050C8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G050F6Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050F6Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G050F6Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050F6Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G050K6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050K6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G050K6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050K6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G050K8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050K8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G050K8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G050K8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G051C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G051C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G051C(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051C(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G051C(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051C(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G051F(6-8)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051F(6-8)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G051F(6-8)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051F(6-8)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G051F8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051F8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G051F8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051F8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G051G(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051G(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G051G(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051G(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G051K(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051K(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G051K(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051K(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G051K(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051K(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G051K(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G051K(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G061C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G061C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G061C(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061C(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G061C(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061C(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G061F(6-8)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061F(6-8)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G061F(6-8)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061F(6-8)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G061F8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061F8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G061F8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061F8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G061G(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061G(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G061G(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061G(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G061K(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061K(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G061K(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061K(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G061K(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061K(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G061K(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G061K(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G070CBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G070CBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G070CBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G070CBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G070KBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G070KBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G070KBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G070KBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G070RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G070RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G070RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G070RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071C(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071C(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071C(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071C(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071C(6-8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071C(6-8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071C(6-8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071C(6-8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071EBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071EBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071EBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071EBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071G(6-8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071G(6-8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071G(6-8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071G(6-8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071G(8-B)UxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071G(8-B)UxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071G(8-B)UxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071G(8-B)UxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071K(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071K(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071K(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071K(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071K(6-8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071K(6-8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071K(6-8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071K(6-8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071K(8-B)TxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071K(8-B)TxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071K(8-B)TxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071K(8-B)TxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071K(8-B)UxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071K(8-B)UxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071K(8-B)UxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071K(8-B)UxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071R(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071R(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071R(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071R(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G071RBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071RBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G071RBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G071RBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081CBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081CBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081CBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081CBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081CBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081CBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081CBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081CBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081EBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081EBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081EBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081EBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081GBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081GBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081GBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081GBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081GBUxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081GBUxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081GBUxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081GBUxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081KBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081KBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081KBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081KBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081KBTxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081KBTxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081KBTxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081KBTxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081KBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081KBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081KBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081KBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081KBUxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081KBUxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081KBUxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081KBUxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081RBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081RBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081RBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081RBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G081RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G081RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G081RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B0CETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B0CETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B0CETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B0CETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B0KETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B0KETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B0KETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B0KETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B0RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B0RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B0RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B0RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B0VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B0VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B0VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B0VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1C(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1C(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1C(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1C(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1C(B-C-E)TxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1C(B-C-E)TxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1C(B-C-E)TxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1C(B-C-E)TxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1C(B-C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1C(B-C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1C(B-C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1C(B-C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1C(B-C-E)UxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1C(B-C-E)UxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1C(B-C-E)UxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1C(B-C-E)UxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1K(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1K(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1K(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1K(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1K(B-C-E)TxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1K(B-C-E)TxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1K(B-C-E)TxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1K(B-C-E)TxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1K(B-C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1K(B-C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1K(B-C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1K(B-C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1K(B-C-E)UxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1K(B-C-E)UxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1K(B-C-E)UxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1K(B-C-E)UxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1M(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1M(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1M(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1M(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1NEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1NEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1NEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1NEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1R(B-C-E)IxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1R(B-C-E)IxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1R(B-C-E)IxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1R(B-C-E)IxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1R(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1R(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1R(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1R(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1R(B-C-E)TxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1R(B-C-E)TxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1R(B-C-E)TxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1R(B-C-E)TxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1V(B-C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1V(B-C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1V(B-C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1V(B-C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0B1V(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1V(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0B1V(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0B1V(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1C(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1C(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1C(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1C(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1C(C-E)TxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1C(C-E)TxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1C(C-E)TxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1C(C-E)TxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1C(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1C(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1C(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1C(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1C(C-E)UxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1C(C-E)UxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1C(C-E)UxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1C(C-E)UxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1K(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1K(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1K(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1K(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1K(C-E)TxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1K(C-E)TxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1K(C-E)TxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1K(C-E)TxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1K(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1K(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1K(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1K(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1K(C-E)UxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1K(C-E)UxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1K(C-E)UxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1K(C-E)UxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1M(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1M(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1M(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1M(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1NEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1NEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1NEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1NEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1R(C-E)IxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1R(C-E)IxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1R(C-E)IxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1R(C-E)IxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1R(C-E)TxN.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1R(C-E)TxN.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1R(C-E)TxN.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1R(C-E)TxN.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1V(C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1V(C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1V(C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1V(C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G0C1V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G0C1V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G0C1V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431C(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431C(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431C(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431C(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431C(6-8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431C(6-8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431C(6-8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431C(6-8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431CBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431CBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431CBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431CBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431K(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431K(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431K(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431K(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431K(6-8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431K(6-8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431K(6-8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431K(6-8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431M(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431M(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431M(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431M(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431R(6-8-B)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431R(6-8-B)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431R(6-8-B)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431R(6-8-B)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431R(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431R(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431R(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431R(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G431V(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431V(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G431V(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G431V(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441CBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441CBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441CBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441CBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441CBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441CBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441CBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441CBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441CBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441CBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441CBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441CBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441KBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441KBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441KBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441KBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441KBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441KBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441KBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441KBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441MBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441MBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441MBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441MBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441RBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441RBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441RBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441RBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G441VBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441VBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G441VBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G441VBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471C(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471C(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471C(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471C(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471C(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471C(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471C(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471C(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471M(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471M(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471M(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471M(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471MEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471MEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471MEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471MEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471Q(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471Q(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471Q(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471Q(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471V(C-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471V(C-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471V(C-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471V(C-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471V(C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471V(C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471V(C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471V(C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G471V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G471V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G471V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473C(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473C(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473C(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473C(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473C(B-C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473C(B-C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473C(B-C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473C(B-C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473M(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473M(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473M(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473M(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473MEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473MEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473MEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473MEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473P(B-C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473P(B-C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473P(B-C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473P(B-C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473Q(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473Q(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473Q(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473Q(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473R(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473R(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473R(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473R(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473V(B-C-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473V(B-C-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473V(B-C-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473V(B-C-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G473V(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473V(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G473V(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G473V(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474C(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474C(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474C(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474C(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474C(B-C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474C(B-C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474C(B-C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474C(B-C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474M(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474M(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474M(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474M(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474MEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474MEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474MEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474MEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474P(B-C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474P(B-C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474P(B-C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474P(B-C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474Q(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474Q(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474Q(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474Q(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474R(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474R(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474R(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474R(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474V(B-C-E)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474V(B-C-E)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474V(B-C-E)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474V(B-C-E)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G474V(B-C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474V(B-C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G474V(B-C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G474V(B-C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483CETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483CETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483CETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483CETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483CEUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483CEUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483CEUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483CEUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483METx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483METx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483METx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483METx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483MEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483MEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483MEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483MEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483PEIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483PEIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483PEIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483PEIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483QETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483QETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483QETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483QETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483VEHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483VEHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483VEHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483VEHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G483VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G483VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G483VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484CETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484CETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484CETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484CETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484CEUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484CEUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484CEUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484CEUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484METx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484METx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484METx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484METx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484MEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484MEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484MEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484MEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484PEIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484PEIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484PEIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484PEIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484QETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484QETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484QETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484QETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484VEHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484VEHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484VEHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484VEHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G484VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G484VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G484VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491C(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491C(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491C(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491C(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491C(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491C(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491C(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491C(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491K(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491K(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491K(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491K(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491M(C-E)Sx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491M(C-E)Sx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491M(C-E)Sx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491M(C-E)Sx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491M(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491M(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491M(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491M(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491R(C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491R(C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491R(C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491R(C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491REYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491REYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491REYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491REYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G491V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G491V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G491V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1CETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1CETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1CETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1CETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1CEUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1CEUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1CEUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1CEUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1KEUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1KEUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1KEUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1KEUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1MESx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1MESx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1MESx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1MESx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1METx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1METx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1METx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1METx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1REIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1REIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1REIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1REIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1REYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1REYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1REYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1REYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32G4A1VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32G4A1VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32G4A1VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H723VEHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723VEHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H723VEHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723VEHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H723VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H723VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H723VGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723VGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H723VGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723VGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H723VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H723VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H723ZEIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723ZEIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H723ZEIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723ZEIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H723ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H723ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H723ZGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723ZGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H723ZGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723ZGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H723ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H723ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H723ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725AEIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725AEIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725AEIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725AEIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725AGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725AGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725AGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725AGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725IEKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725IEKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725IEKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725IEKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725IETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725IETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725IETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725IETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725IGKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725IGKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725IGKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725IGKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725IGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725IGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725IGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725IGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725REVx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725REVx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725REVx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725REVx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725RGVx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725RGVx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725RGVx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725RGVx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725VEHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VEHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725VEHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VEHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725VGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725VGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725VGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725VGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725VGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H725ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H725ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H725ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H730ABIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730ABIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H730ABIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730ABIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H730IBKxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730IBKxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H730IBKxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730IBKxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H730IBTxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730IBTxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H730IBTxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730IBTxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H730VBHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730VBHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H730VBHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730VBHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H730VBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730VBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H730VBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730VBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H730ZBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730ZBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H730ZBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730ZBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H730ZBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730ZBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H730ZBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H730ZBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H733VGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H733VGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H733VGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H733VGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H733VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H733VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H733VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H733VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H733ZGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H733ZGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H733ZGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H733ZGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H733ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H733ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H733ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H733ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H735AGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735AGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H735AGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735AGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H735IGKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735IGKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H735IGKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735IGKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H735IGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735IGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H735IGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735IGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H735RGVx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735RGVx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H735RGVx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735RGVx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H735VGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735VGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H735VGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735VGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H735VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H735VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H735VGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735VGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H735VGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735VGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H735ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H735ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H735ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H742A(G-I)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742A(G-I)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H742A(G-I)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742A(G-I)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H742B(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742B(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H742B(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742B(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H742I(G-I)Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742I(G-I)Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H742I(G-I)Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742I(G-I)Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H742I(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742I(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H742I(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742I(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H742V(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742V(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H742V(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742V(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H742V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H742V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H742X(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742X(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H742X(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742X(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H742Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H742Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H742Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743A(G-I)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743A(G-I)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743A(G-I)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743A(G-I)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743BGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743BGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743BGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743BGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743BITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743BITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743BITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743BITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743IGKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743IGKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743IGKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743IGKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743IGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743IGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743IGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743IGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743IIKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743IIKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743IIKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743IIKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743V(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743V(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743V(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743V(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743XGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743XGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743XGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743XGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743XIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743XIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743XIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743XIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H743ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H743ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H743ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745BGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745BGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745BGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745BGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745BITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745BITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745BITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745BITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745IGKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745IGKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745IGKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745IGKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745IGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745IGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745IGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745IGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745IIKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745IIKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745IIKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745IIKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745XGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745XGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745XGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745XGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745XIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745XIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745XIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745XIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H745ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H745ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H745ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H747A(G-I)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747A(G-I)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H747A(G-I)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747A(G-I)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H747BGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747BGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H747BGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747BGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H747BITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747BITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H747BITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747BITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H747IGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747IGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H747IGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747IGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H747IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H747IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H747XGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747XGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H747XGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747XGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H747XIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747XIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H747XIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747XIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H747ZIYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747ZIYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H747ZIYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H747ZIYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H750IBKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750IBKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H750IBKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750IBKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H750IBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750IBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H750IBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750IBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H750VBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750VBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H750VBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750VBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H750XBHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750XBHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H750XBHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750XBHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H750ZBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750ZBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H750ZBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H750ZBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H753AIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753AIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H753AIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753AIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H753BITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753BITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H753BITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753BITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H753IIKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753IIKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H753IIKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753IIKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H753IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H753IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H753VIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753VIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H753VIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753VIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H753VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H753VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H753XIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753XIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H753XIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753XIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H753ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H753ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H753ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H755BITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755BITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H755BITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755BITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H755IIKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755IIKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H755IIKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755IIKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H755IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H755IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H755XIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755XIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H755XIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755XIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H755ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H755ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H755ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H757AIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757AIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H757AIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757AIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H757BITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757BITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H757BITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757BITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H757IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H757IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H757XIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757XIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H757XIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757XIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H757ZIYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757ZIYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H757ZIYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H757ZIYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3A(G-I)IxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3A(G-I)IxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3A(G-I)IxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3A(G-I)IxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3I(G-I)Kx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3I(G-I)Kx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3I(G-I)Kx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3I(G-I)Kx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3I(G-I)KxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3I(G-I)KxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3I(G-I)KxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3I(G-I)KxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3I(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3I(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3I(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3I(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3I(G-I)TxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3I(G-I)TxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3I(G-I)TxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3I(G-I)TxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3L(G-I)HxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3L(G-I)HxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3L(G-I)HxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3L(G-I)HxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3N(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3N(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3N(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3N(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3QIYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3QIYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3QIYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3QIYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3R(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3R(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3R(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3R(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3V(G-I)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3V(G-I)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3V(G-I)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3V(G-I)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3V(G-I)HxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3V(G-I)HxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3V(G-I)HxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3V(G-I)HxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3V(G-I)TxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3V(G-I)TxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3V(G-I)TxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3V(G-I)TxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7A3Z(G-I)TxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3Z(G-I)TxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7A3Z(G-I)TxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7A3Z(G-I)TxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B0ABIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0ABIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B0ABIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0ABIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B0IBKxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0IBKxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B0IBKxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0IBKxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B0IBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0IBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B0IBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0IBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B0RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B0RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B0VBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0VBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B0VBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0VBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B0ZBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0ZBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B0ZBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B0ZBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3AIIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3AIIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3AIIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3AIIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3IIKx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3IIKx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3IIKx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3IIKx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3IIKxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3IIKxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3IIKxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3IIKxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3IITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3IITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3IITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3IITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3IITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3IITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3IITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3IITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3LIHxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3LIHxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3LIHxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3LIHxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3NIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3NIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3NIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3NIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3QIYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3QIYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3QIYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3QIYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3RITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3RITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3RITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3RITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3VIHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3VIHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3VIHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3VIHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3VIHxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3VIHxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3VIHxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3VIHxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3VITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3VITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3VITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3VITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32H7B3ZITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3ZITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32H7B3ZITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32H7B3ZITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L010C6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010C6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L010C6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010C6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L010F4Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010F4Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L010F4Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010F4Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L010K4Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010K4Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L010K4Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010K4Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L010K8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010K8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L010K8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010K8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L010R8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010R8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L010R8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010R8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L010RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L010RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L010RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L011D(3-4)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011D(3-4)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L011D(3-4)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011D(3-4)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L011E(3-4)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011E(3-4)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L011E(3-4)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011E(3-4)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L011F(3-4)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011F(3-4)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L011F(3-4)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011F(3-4)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L011F(3-4)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011F(3-4)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L011F(3-4)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011F(3-4)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L011G(3-4)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011G(3-4)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L011G(3-4)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011G(3-4)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L011K(3-4)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011K(3-4)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L011K(3-4)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011K(3-4)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L011K(3-4)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011K(3-4)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L011K(3-4)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L011K(3-4)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L021D4Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021D4Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L021D4Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021D4Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L021F4Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021F4Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L021F4Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021F4Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L021F4Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021F4Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L021F4Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021F4Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L021G4Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021G4Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L021G4Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021G4Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L021K4Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021K4Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L021K4Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021K4Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L021K4Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021K4Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L021K4Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L021K4Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L031C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L031C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L031C(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031C(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L031C(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031C(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L031E(4-6)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031E(4-6)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L031E(4-6)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031E(4-6)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L031F(4-6)Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031F(4-6)Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L031F(4-6)Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031F(4-6)Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L031G(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031G(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L031G(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031G(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L031G6UxS.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031G6UxS.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L031G6UxS.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031G6UxS.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L031K(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031K(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L031K(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031K(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L031K(4-6)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031K(4-6)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L031K(4-6)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L031K(4-6)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L041C(4-6)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041C(4-6)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L041C(4-6)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041C(4-6)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L041C6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041C6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L041C6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041C6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L041E6Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041E6Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L041E6Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041E6Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L041F6Px.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041F6Px.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L041F6Px.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041F6Px.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L041G6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041G6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L041G6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041G6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L041G6UxS.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041G6UxS.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L041G6UxS.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041G6UxS.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L041K6Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041K6Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L041K6Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041K6Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L041K6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041K6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L041K6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L041K6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L051C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L051C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L051C(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051C(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L051C(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051C(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L051K(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051K(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L051K(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051K(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L051K(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051K(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L051K(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051K(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L051R(6-8)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051R(6-8)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L051R(6-8)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051R(6-8)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L051R(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051R(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L051R(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051R(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L051T(6-8)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051T(6-8)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L051T(6-8)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L051T(6-8)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L052C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L052C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L052C(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052C(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L052C(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052C(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L052K(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052K(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L052K(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052K(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L052K(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052K(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L052K(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052K(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L052R(6-8)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052R(6-8)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L052R(6-8)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052R(6-8)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L052R(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052R(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L052R(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052R(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L052T(6-8)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052T(6-8)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L052T(6-8)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052T(6-8)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L052T8Fx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052T8Fx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L052T8Fx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L052T8Fx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L053C(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L053C(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L053C(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L053C(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L053C(6-8)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L053C(6-8)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L053C(6-8)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L053C(6-8)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L053R(6-8)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L053R(6-8)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L053R(6-8)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L053R(6-8)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L053R(6-8)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L053R(6-8)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L053R(6-8)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L053R(6-8)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L062C8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L062C8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L062C8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L062C8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L062K8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L062K8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L062K8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L062K8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L062K8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L062K8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L062K8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L062K8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L063C8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L063C8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L063C8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L063C8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L063C8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L063C8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L063C8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L063C8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L063R8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L063R8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L063R8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L063R8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071C(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071C(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071C(B-Z)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C(B-Z)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071C(B-Z)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C(B-Z)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071C(B-Z)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C(B-Z)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071C(B-Z)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C(B-Z)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071C8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071C8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071C8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071C8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071C8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071K(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071K(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071K(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071K(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071K(B-Z)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071K(B-Z)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071K(B-Z)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071K(B-Z)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071K8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071K8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071K8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071K8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071R(B-Z)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071R(B-Z)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071R(B-Z)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071R(B-Z)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071R(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071R(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071R(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071R(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071V(B-Z)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071V(B-Z)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071V(B-Z)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071V(B-Z)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071V(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071V(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071V(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071V(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071V8Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071V8Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071V8Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071V8Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L071V8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071V8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L071V8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L071V8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072C(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072C(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072C(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072C(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072C(B-Z)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072C(B-Z)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072C(B-Z)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072C(B-Z)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072C(B-Z)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072C(B-Z)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072C(B-Z)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072C(B-Z)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072CZEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072CZEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072CZEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072CZEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072K(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072K(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072K(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072K(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072K(B-Z)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072K(B-Z)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072K(B-Z)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072K(B-Z)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072R(B-Z)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072R(B-Z)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072R(B-Z)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072R(B-Z)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072R(B-Z)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072R(B-Z)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072R(B-Z)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072R(B-Z)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072R(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072R(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072R(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072R(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072V(B-Z)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072V(B-Z)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072V(B-Z)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072V(B-Z)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072V(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072V(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072V(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072V(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072V8Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072V8Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072V8Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072V8Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L072V8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072V8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L072V8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L072V8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073C(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073C(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073C(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073C(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073C(B-Z)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073C(B-Z)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073C(B-Z)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073C(B-Z)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073CZYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073CZYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073CZYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073CZYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073R(B-Z)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073R(B-Z)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073R(B-Z)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073R(B-Z)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073R(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073R(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073R(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073R(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073RZIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073RZIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073RZIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073RZIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073V(B-Z)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073V(B-Z)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073V(B-Z)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073V(B-Z)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073V(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073V(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073V(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073V(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073V8Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073V8Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073V8Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073V8Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L073V8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073V8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L073V8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L073V8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L081C(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L081C(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L081C(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L081C(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L081CZUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L081CZUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L081CZUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L081CZUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L081KZTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L081KZTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L081KZTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L081KZTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L081KZUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L081KZUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L081KZUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L081KZUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L082CZUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L082CZUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L082CZUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L082CZUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L082CZYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L082CZYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L082CZYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L082CZYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L082K(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L082K(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L082K(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L082K(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L082K(B-Z)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L082K(B-Z)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L082K(B-Z)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L082K(B-Z)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L083C(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083C(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L083C(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083C(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L083CZUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083CZUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L083CZUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083CZUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L083R(B-Z)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083R(B-Z)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L083R(B-Z)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083R(B-Z)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L083R(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083R(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L083R(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083R(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L083V(B-Z)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083V(B-Z)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L083V(B-Z)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083V(B-Z)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L083V(B-Z)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083V(B-Z)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L083V(B-Z)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083V(B-Z)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L083V8Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083V8Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L083V8Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083V8Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L083V8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083V8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L083V8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L083V8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L100C6Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100C6Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L100C6Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100C6Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L100C6UxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100C6UxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L100C6UxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100C6UxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L100R(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100R(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L100R(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100R(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L100R(8-B)TxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100R(8-B)TxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L100R(8-B)TxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100R(8-B)TxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L100RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L100RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L100RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151C(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151C(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151C(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151C(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151C(6-8-B)TxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151C(6-8-B)TxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151C(6-8-B)TxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151C(6-8-B)TxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151C(6-8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151C(6-8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151C(6-8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151C(6-8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151C(6-8-B)UxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151C(6-8-B)UxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151C(6-8-B)UxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151C(6-8-B)UxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151CCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151CCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151CCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151CCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151QCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151QCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151QCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151QCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151QDHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151QDHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151QDHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151QDHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151QEHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151QEHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151QEHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151QEHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151R(6-8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151R(6-8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151R(6-8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151R(6-8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151R(6-8-B)HxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151R(6-8-B)HxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151R(6-8-B)HxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151R(6-8-B)HxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151R(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151R(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151R(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151R(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151R(6-8-B)TxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151R(6-8-B)TxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151R(6-8-B)TxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151R(6-8-B)TxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151RCTxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RCTxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151RCTxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RCTxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151RCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151RCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151RDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151RDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151RDYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RDYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151RDYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RDYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151UCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151UCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151UCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151UCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151V(8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151V(8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151V(8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151V(8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151V(8-B)HxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151V(8-B)HxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151V(8-B)HxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151V(8-B)HxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151V(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151V(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151V(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151V(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151V(8-B)TxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151V(8-B)TxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151V(8-B)TxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151V(8-B)TxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151VCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151VCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151VCTxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VCTxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151VCTxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VCTxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151VDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151VDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151VDTxX.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VDTxX.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151VDTxX.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VDTxX.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151VDYxX.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VDYxX.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151VDYxX.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VDYxX.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151VEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151VEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151VEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151ZCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151ZCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151ZCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151ZCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151ZDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151ZDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151ZDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151ZDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L151ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L151ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L151ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152C(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152C(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152C(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152C(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152C(6-8-B)TxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152C(6-8-B)TxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152C(6-8-B)TxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152C(6-8-B)TxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152C(6-8-B)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152C(6-8-B)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152C(6-8-B)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152C(6-8-B)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152C(6-8-B)UxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152C(6-8-B)UxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152C(6-8-B)UxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152C(6-8-B)UxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152CCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152CCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152CCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152CCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152QCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152QCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152QCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152QCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152QDHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152QDHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152QDHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152QDHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152QEHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152QEHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152QEHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152QEHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152R(6-8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152R(6-8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152R(6-8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152R(6-8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152R(6-8-B)HxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152R(6-8-B)HxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152R(6-8-B)HxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152R(6-8-B)HxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152R(6-8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152R(6-8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152R(6-8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152R(6-8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152R(6-8-B)TxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152R(6-8-B)TxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152R(6-8-B)TxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152R(6-8-B)TxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152RCTxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RCTxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152RCTxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RCTxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152RDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152RDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152RDYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RDYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152RDYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RDYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152UCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152UCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152UCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152UCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152V(8-B)Hx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152V(8-B)Hx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152V(8-B)Hx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152V(8-B)Hx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152V(8-B)HxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152V(8-B)HxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152V(8-B)HxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152V(8-B)HxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152V(8-B)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152V(8-B)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152V(8-B)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152V(8-B)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152V(8-B)TxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152V(8-B)TxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152V(8-B)TxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152V(8-B)TxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152VCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152VCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152VCTxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VCTxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152VCTxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VCTxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152VDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152VDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152VDTxX.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VDTxX.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152VDTxX.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VDTxX.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152VEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152VEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152VEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152ZCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152ZCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152ZCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152ZCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152ZDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152ZDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152ZDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152ZDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L152ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L152ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L152ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162QCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162QCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162QCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162QCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162QDHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162QDHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162QDHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162QDHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162RCTxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RCTxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162RCTxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RCTxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162RDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162RDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162RDYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RDYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162RDYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RDYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162VCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162VCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162VCTxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VCTxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162VCTxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VCTxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162VDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162VDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162VDYxX.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VDYxX.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162VDYxX.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VDYxX.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162VEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162VEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162VEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162ZCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162ZCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162ZCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162ZCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162ZDTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162ZDTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162ZDTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162ZDTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L162ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L162ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L162ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412C8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412C8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412C8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412C8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412C8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412C8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412C8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412C8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412CBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412CBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412CBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412CBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412CBTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412CBTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412CBTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412CBTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412CBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412CBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412CBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412CBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412CBUxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412CBUxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412CBUxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412CBUxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412K8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412K8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412K8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412K8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412K8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412K8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412K8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412K8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412KBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412KBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412KBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412KBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412KBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412KBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412KBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412KBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412R8Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412R8Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412R8Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412R8Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412R8Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412R8Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412R8Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412R8Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412RBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412RBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412RBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412RBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412RBIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412RBIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412RBIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412RBIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412RBTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412RBTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412RBTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412RBTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412T8Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412T8Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412T8Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412T8Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412TBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412TBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412TBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412TBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L412TBYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412TBYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L412TBYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L412TBYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L422CBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422CBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L422CBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422CBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L422CBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422CBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L422CBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422CBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L422KBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422KBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L422KBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422KBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L422KBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422KBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L422KBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422KBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L422RBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422RBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L422RBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422RBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L422RBTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422RBTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L422RBTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422RBTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L422TBYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422TBYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L422TBYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L422TBYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431C(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431C(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431C(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431C(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431C(B-C)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431C(B-C)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431C(B-C)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431C(B-C)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431C(B-C)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431C(B-C)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431C(B-C)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431C(B-C)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431K(B-C)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431K(B-C)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431K(B-C)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431K(B-C)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431R(B-C)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431R(B-C)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431R(B-C)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431R(B-C)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431R(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431R(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431R(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431R(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431R(B-C)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431R(B-C)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431R(B-C)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431R(B-C)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431VCIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431VCIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431VCIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431VCIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L431VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L431VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L431VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L432K(B-C)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L432K(B-C)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L432K(B-C)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L432K(B-C)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433C(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433C(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433C(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433C(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433C(B-C)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433C(B-C)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433C(B-C)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433C(B-C)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433C(B-C)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433C(B-C)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433C(B-C)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433C(B-C)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433R(B-C)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433R(B-C)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433R(B-C)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433R(B-C)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433R(B-C)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433R(B-C)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433R(B-C)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433R(B-C)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433R(B-C)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433R(B-C)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433R(B-C)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433R(B-C)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433RCTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433RCTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433RCTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433RCTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433VCIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433VCIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433VCIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433VCIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L433VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L433VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L433VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L442KCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L442KCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L442KCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L442KCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443CCFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443CCFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443CCFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443CCFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443CCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443CCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443CCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443CCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443CCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443CCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443CCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443CCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443RCIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443RCIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443RCIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443RCIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443RCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443RCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443RCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443RCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443RCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443RCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443RCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443RCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443VCIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443VCIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443VCIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443VCIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L443VCTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443VCTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L443VCTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L443VCTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L451C(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451C(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L451C(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451C(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L451CETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451CETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L451CETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451CETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L451R(C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451R(C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L451R(C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451R(C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L451R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L451R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L451R(C-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451R(C-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L451R(C-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451R(C-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L451V(C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451V(C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L451V(C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451V(C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L451V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L451V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L451V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452C(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452C(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452C(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452C(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452CETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452CETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452CETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452CETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452CETxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452CETxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452CETxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452CETxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452R(C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452R(C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452R(C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452R(C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452R(C-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452R(C-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452R(C-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452R(C-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452RETxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452RETxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452RETxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452RETxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452REYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452REYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452REYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452REYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452V(C-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452V(C-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452V(C-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452V(C-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L452V(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452V(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L452V(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L452V(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L462CETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462CETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L462CETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462CETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L462CEUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462CEUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L462CEUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462CEUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L462REIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462REIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L462REIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462REIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L462RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L462RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L462REYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462REYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L462REYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462REYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L462VEIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462VEIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L462VEIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462VEIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L462VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L462VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L462VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L471Q(E-G)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471Q(E-G)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L471Q(E-G)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471Q(E-G)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L471R(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471R(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L471R(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471R(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L471V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L471V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L471Z(E-G)Jx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471Z(E-G)Jx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L471Z(E-G)Jx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471Z(E-G)Jx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L471Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L471Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L471Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L475R(C-E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L475R(C-E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L475R(C-E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L475R(C-E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L475V(C-E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L475V(C-E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L475V(C-E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L475V(C-E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476J(E-G)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476J(E-G)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476J(E-G)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476J(E-G)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476JGYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476JGYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476JGYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476JGYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476M(E-G)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476M(E-G)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476M(E-G)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476M(E-G)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476Q(E-G)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476Q(E-G)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476Q(E-G)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476Q(E-G)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476QGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476QGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476QGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476QGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476R(C-E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476R(C-E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476R(C-E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476R(C-E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476V(C-E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476V(C-E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476V(C-E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476V(C-E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476VGYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476VGYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476VGYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476VGYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476ZGJx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476ZGJx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476ZGJx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476ZGJx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L476ZGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476ZGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L476ZGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L476ZGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L485J(C-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L485J(C-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L485J(C-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L485J(C-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L486JGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486JGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L486JGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486JGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L486QGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486QGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L486QGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486QGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L486RGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486RGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L486RGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486RGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L486VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L486VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L486ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L486ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L486ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496A(E-G)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496A(E-G)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496A(E-G)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496A(E-G)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496AGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496AGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496AGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496AGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496Q(E-G)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496Q(E-G)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496Q(E-G)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496Q(E-G)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496QGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496QGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496QGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496QGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496QGIxS.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496QGIxS.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496QGIxS.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496QGIxS.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496R(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496R(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496R(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496R(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496RGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496RGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496RGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496RGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496V(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496V(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496V(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496V(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496VGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496VGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496VGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496VGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496VGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496VGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496VGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496VGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496VGYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496VGYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496VGYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496VGYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496WGYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496WGYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496WGYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496WGYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496Z(E-G)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496Z(E-G)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496Z(E-G)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496Z(E-G)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L496ZGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496ZGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L496ZGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L496ZGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6AGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6AGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6AGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6AGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6AGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6AGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6AGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6AGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6QGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6QGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6QGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6QGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6QGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6QGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6QGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6QGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6RGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6RGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6RGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6RGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6RGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6RGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6RGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6RGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6VGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6VGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6VGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6VGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6VGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6VGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6VGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6VGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6VGYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6VGYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6VGYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6VGYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4A6ZGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6ZGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4A6ZGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4A6ZGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5A(G-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5A(G-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5A(G-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5A(G-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5AGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5AGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5AGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5AGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5C(G-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5C(G-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5C(G-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5C(G-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5C(G-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5C(G-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5C(G-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5C(G-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5CGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5CGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5CGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5CGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5CGUxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5CGUxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5CGUxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5CGUxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5Q(G-E)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5Q(G-E)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5Q(G-E)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5Q(G-E)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5QGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5QGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5QGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5QGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5QGIxS.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5QGIxS.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5QGIxS.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5QGIxS.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5R(G-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5R(G-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5R(G-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5R(G-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5RGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5RGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5RGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5RGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5V(G-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5V(G-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5V(G-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5V(G-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5V(G-E)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5V(G-E)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5V(G-E)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5V(G-E)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5VGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5VGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5VGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5VGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5VGYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5VGYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5VGYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5VGYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5Z(G-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5Z(G-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5Z(G-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5Z(G-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4P5ZGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5ZGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4P5ZGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4P5ZGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5AGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5AGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5AGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5AGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5AGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5AGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5AGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5AGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5CGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5CGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5CGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5CGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5CGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5CGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5CGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5CGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5CGUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5CGUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5CGUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5CGUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5CGUxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5CGUxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5CGUxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5CGUxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5QGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5QGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5QGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5QGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5QGIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5QGIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5QGIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5QGIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5RGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5RGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5RGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5RGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5RGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5RGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5RGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5RGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5VGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5VGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5VGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5VGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5VGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5VGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5VGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5VGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5VGYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5VGYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5VGYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5VGYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4Q5ZGTxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5ZGTxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4Q5ZGTxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4Q5ZGTxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5A(G-I)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5A(G-I)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5A(G-I)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5A(G-I)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5AIIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5AIIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5AIIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5AIIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5Q(G-I)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5Q(G-I)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5Q(G-I)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5Q(G-I)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5QGIxS.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5QGIxS.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5QGIxS.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5QGIxS.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5QIIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5QIIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5QIIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5QIIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5Z(G-I)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5Z(G-I)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5Z(G-I)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5Z(G-I)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R5ZITxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5ZITxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R5ZITxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R5ZITxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R7AIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R7AIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R7AIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R7AIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R7VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R7VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R7VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R7VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R7ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R7ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R7ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R7ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R9A(G-I)Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9A(G-I)Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R9A(G-I)Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9A(G-I)Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R9V(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9V(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R9V(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9V(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R9Z(G-I)Jx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9Z(G-I)Jx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R9Z(G-I)Jx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9Z(G-I)Jx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R9Z(G-I)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9Z(G-I)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R9Z(G-I)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9Z(G-I)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R9Z(G-I)Yx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9Z(G-I)Yx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R9Z(G-I)Yx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9Z(G-I)Yx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4R9ZIYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9ZIYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4R9ZIYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4R9ZIYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S5AIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5AIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S5AIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5AIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S5QIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5QIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S5QIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5QIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S5VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S5VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S5ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S5ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S5ZIYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5ZIYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S5ZIYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S5ZIYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S7AIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S7AIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S7AIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S7AIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S7VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S7VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S7VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S7VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S7ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S7ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S7ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S7ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S9AIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9AIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S9AIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9AIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S9VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S9VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S9ZIJx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9ZIJx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S9ZIJx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9ZIJx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S9ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S9ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L4S9ZIYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9ZIYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L4S9ZIYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L4S9ZIYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552C(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552C(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552C(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552C(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552C(C-E)Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552C(C-E)Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552C(C-E)Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552C(C-E)Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552CETxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552CETxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552CETxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552CETxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552CEUxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552CEUxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552CEUxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552CEUxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552MEYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552MEYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552MEYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552MEYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552MEYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552MEYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552MEYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552MEYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552Q(C-E)IxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552Q(C-E)IxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552Q(C-E)IxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552Q(C-E)IxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552QEIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552QEIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552QEIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552QEIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552QEIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552QEIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552QEIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552QEIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552R(C-E)Tx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552R(C-E)Tx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552R(C-E)Tx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552R(C-E)Tx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552RETxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552RETxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552RETxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552RETxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552RETxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552RETxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552RETxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552RETxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552V(C-E)TxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552V(C-E)TxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552V(C-E)TxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552V(C-E)TxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552Z(C-E)TxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552Z(C-E)TxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552Z(C-E)TxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552Z(C-E)TxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L552ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L552ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L552ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562CETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562CETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562CETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562CETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562CETxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562CETxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562CETxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562CETxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562CEUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562CEUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562CEUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562CEUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562CEUxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562CEUxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562CEUxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562CEUxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562MEYxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562MEYxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562MEYxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562MEYxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562MEYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562MEYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562MEYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562MEYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562QEIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562QEIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562QEIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562QEIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562QEIxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562QEIxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562QEIxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562QEIxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562QEIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562QEIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562QEIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562QEIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562RETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562RETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562RETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562RETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562RETxP.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562RETxP.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562RETxP.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562RETxP.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562RETxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562RETxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562RETxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562RETxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562VETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562VETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562VETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562VETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562VETxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562VETxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562VETxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562VETxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562ZETx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562ZETx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562ZETx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562ZETx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32L562ZETxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562ZETxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32L562ZETxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32L562ZETxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131AAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131AAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131AAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131AAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131AAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131AAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131AAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131AAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131AAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131AAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131AAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131AAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131CAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131CAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131CAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131CAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131CAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131CAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131CAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131CAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131CAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131CAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131CAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131CAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131DAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131DAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131DAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131DAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131DAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131DAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131DAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131DAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131DAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131DAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131DAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131DAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131FAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131FAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131FAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131FAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131FAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131FAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131FAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131FAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP131FAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131FAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP131FAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP131FAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133AAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133AAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133AAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133AAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133AAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133AAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133AAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133AAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133AAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133AAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133AAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133AAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133CAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133CAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133CAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133CAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133CAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133CAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133CAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133CAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133CAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133CAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133CAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133CAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133DAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133DAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133DAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133DAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133DAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133DAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133DAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133DAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133DAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133DAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133DAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133DAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133FAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133FAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133FAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133FAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133FAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133FAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133FAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133FAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP133FAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133FAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP133FAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP133FAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135AAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135AAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135AAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135AAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135AAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135AAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135AAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135AAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135AAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135AAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135AAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135AAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135CAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135CAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135CAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135CAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135CAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135CAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135CAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135CAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135CAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135CAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135CAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135CAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135DAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135DAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135DAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135DAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135DAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135DAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135DAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135DAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135DAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135DAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135DAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135DAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135FAEx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135FAEx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135FAEx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135FAEx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135FAFx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135FAFx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135FAFx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135FAFx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP135FAGx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135FAGx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP135FAGx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP135FAGx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151AAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151AAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151AAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151AAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151AABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151AABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151AABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151AABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151AACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151AACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151AACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151AACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151AADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151AADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151AADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151AADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151CAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151CAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151CAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151CAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151CABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151CABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151CABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151CABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151CACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151CACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151CACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151CACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151CADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151CADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151CADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151CADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151DAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151DAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151DAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151DAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151DABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151DABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151DABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151DABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151DACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151DACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151DACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151DACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151DADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151DADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151DADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151DADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151FAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151FAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151FAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151FAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151FABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151FABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151FABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151FABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151FACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151FACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151FACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151FACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP151FADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151FADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP151FADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP151FADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153AAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153AAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153AAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153AAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153AABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153AABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153AABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153AABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153AACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153AACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153AACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153AACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153AADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153AADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153AADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153AADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153CAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153CAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153CAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153CAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153CABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153CABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153CABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153CABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153CACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153CACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153CACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153CACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153CADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153CADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153CADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153CADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153DAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153DAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153DAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153DAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153DABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153DABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153DABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153DABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153DACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153DACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153DACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153DACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153DADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153DADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153DADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153DADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153FAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153FAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153FAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153FAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153FABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153FABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153FABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153FABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153FACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153FACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153FACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153FACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP153FADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153FADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP153FADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP153FADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157AAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157AAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157AAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157AAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157AABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157AABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157AABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157AABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157AACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157AACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157AACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157AACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157AADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157AADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157AADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157AADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157CAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157CAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157CAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157CAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157CABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157CABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157CABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157CABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157CACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157CACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157CACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157CACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157CADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157CADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157CADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157CADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157DAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157DAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157DAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157DAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157DABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157DABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157DABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157DABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157DACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157DACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157DACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157DACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157DADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157DADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157DADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157DADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157FAAx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157FAAx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157FAAx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157FAAx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157FABx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157FABx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157FABx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157FABx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157FACx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157FACx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157FACx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157FACx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32MP157FADx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157FADx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32MP157FADx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32MP157FADx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575AGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575AGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575AGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575AGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575AGIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575AGIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575AGIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575AGIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575AIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575AIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575AIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575AIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575AIIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575AIIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575AIIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575AIIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575CGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575CGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575CGTxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CGTxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575CGTxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CGTxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575CGUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CGUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575CGUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CGUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575CGUxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CGUxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575CGUxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CGUxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575CITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575CITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575CITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575CITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575CIUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CIUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575CIUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CIUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575CIUxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CIUxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575CIUxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575CIUxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575OGYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575OGYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575OGYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575OGYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575OIYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575OIYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575OIYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575OIYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575QGIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575QGIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575QGIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575QGIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575QGIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575QGIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575QGIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575QGIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575QIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575QIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575QIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575QIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575QIIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575QIIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575QIIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575QIIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575RGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575RGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575RGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575RGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575RGTxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575RGTxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575RGTxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575RGTxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575RITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575RITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575RITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575RITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575RITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575RITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575RITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575RITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575VGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575VGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575VGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575VGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575VGTxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575VGTxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575VGTxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575VGTxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575VITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575VITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575VITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575VITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575ZGTx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575ZGTx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575ZGTx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575ZGTx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575ZGTxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575ZGTxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575ZGTxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575ZGTxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U575ZITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575ZITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U575ZITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U575ZITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585AIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585AIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585AIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585AIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585AIIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585AIIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585AIIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585AIIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585CITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585CITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585CITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585CITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585CITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585CITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585CITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585CITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585CIUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585CIUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585CIUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585CIUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585CIUxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585CIUxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585CIUxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585CIUxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585OIYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585OIYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585OIYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585OIYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585QIIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585QIIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585QIIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585QIIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585QIIxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585QIIxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585QIIxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585QIIxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585RITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585RITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585RITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585RITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585RITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585RITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585RITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585RITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585VITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585VITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585VITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585VITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585VITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585VITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585VITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585VITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585ZITx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585ZITx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585ZITx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585ZITx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U585ZITxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585ZITxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U585ZITxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U585ZITxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U595ZJTxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U595ZJTxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U595ZJTxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U595ZJTxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U599BJYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U599BJYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U599BJYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U599BJYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U599NIHxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U599NIHxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U599NIHxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U599NIHxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U599NJHxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U599NJHxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U599NJHxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U599NJHxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U5A5ZJTxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U5A5ZJTxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U5A5ZJTxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U5A5ZJTxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U5A9BJYxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U5A9BJYxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U5A9BJYxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U5A9BJYxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32U5A9NJHxQ.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U5A9NJHxQ.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32U5A9NJHxQ.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32U5A9NJHxQ.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB10CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB10CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB10CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB10CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB15CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB15CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB15CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB15CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB15CCUxE.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB15CCUxE.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB15CCUxE.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB15CCUxE.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB15CCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB15CCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB15CCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB15CCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB1MMCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB1MMCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB1MMCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB1MMCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB30CEUxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB30CEUxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB30CEUxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB30CEUxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB35C(C-E)UxA.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB35C(C-E)UxA.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB35C(C-E)UxA.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB35C(C-E)UxA.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB50CGUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB50CGUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB50CGUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB50CGUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55CEUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55CEUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55CEUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55CEUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55CGUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55CGUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55CGUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55CGUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55RCVx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55RCVx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55RCVx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55RCVx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55REVx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55REVx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55REVx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55REVx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55RGVx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55RGVx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55RGVx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55RGVx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55VCQx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VCQx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55VCQx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VCQx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55VCYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VCYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55VCYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VCYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55VEQx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VEQx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55VEQx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VEQx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55VEYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VEYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55VEYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VEYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55VGQx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VGQx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55VGQx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VGQx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55VGYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VGYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55VGYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VGYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB55VYYx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VYYx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB55VYYx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB55VYYx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WB5MMGHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB5MMGHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WB5MMGHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WB5MMGHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WL54CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL54CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WL54CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL54CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WL54JCIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL54JCIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WL54JCIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL54JCIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WL55CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL55CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WL55CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL55CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WL55JCIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL55JCIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WL55JCIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL55JCIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WL5MOCHx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL5MOCHx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WL5MOCHx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WL5MOCHx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE4C8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4C8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE4C8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4C8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE4CBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4CBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE4CBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4CBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE4CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE4CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE4J8Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4J8Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE4J8Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4J8Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE4JBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4JBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE4JBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4JBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE4JCIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4JCIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE4JCIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE4JCIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE5C8Ux.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5C8Ux.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE5C8Ux.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5C8Ux.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE5CBUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5CBUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE5CBUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5CBUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE5CCUx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5CCUx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE5CCUx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5CCUx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE5J8Ix.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5J8Ix.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE5J8Ix.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5J8Ix.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE5JBIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5JBIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE5JBIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5JBIx.xml diff --git a/receivers/native/arm/implementations/resources/pins/STM32WLE5JCIx.xml b/receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5JCIx.xml similarity index 100% rename from receivers/native/arm/implementations/resources/pins/STM32WLE5JCIx.xml rename to receivers/generic-c++/zll/arm/implementations/resources/pins/STM32WLE5JCIx.xml diff --git a/receivers/native/arm/implementations/resources/stm32targets.xml b/receivers/generic-c++/zll/arm/implementations/resources/stm32targets.xml similarity index 100% rename from receivers/native/arm/implementations/resources/stm32targets.xml rename to receivers/generic-c++/zll/arm/implementations/resources/stm32targets.xml diff --git a/receivers/native/arm/implementations/src/main/afTable.py b/receivers/generic-c++/zll/arm/implementations/src/main/afTable.py similarity index 99% rename from receivers/native/arm/implementations/src/main/afTable.py rename to receivers/generic-c++/zll/arm/implementations/src/main/afTable.py index 19096cd58..3afc1deae 100755 --- a/receivers/native/arm/implementations/src/main/afTable.py +++ b/receivers/generic-c++/zll/arm/implementations/src/main/afTable.py @@ -155,7 +155,7 @@ out.write(" */\n\n") for type in sorted(peripheralPinTypes[func]): - out.write("#define FIND_VALUE_"+func+"_"+type+"_inner(INDEX,PIN) I2C##_"+func+"_##PIN\n") + out.write("#define FIND_VALUE_"+func+"_"+type+"_inner(INDEX,PIN) INDEX##_"+func+"_##PIN\n") out.write("#define FIND_VALUE_"+func+"_"+type+"(INDEX,PIN) FIND_VALUE_"+func+"_"+type+"_inner(INDEX,PIN)\n\n") for i in range(maxOfPeripheral[func]): periphName = func+str(i) diff --git a/receivers/native/arm/implementations/src/main/c++/llIncludes.hpp b/receivers/generic-c++/zll/arm/implementations/src/main/c++/llIncludes.hpp similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/llIncludes.hpp rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/llIncludes.hpp diff --git a/receivers/native/arm/implementations/src/main/c++/llPinCheck.hpp b/receivers/generic-c++/zll/arm/implementations/src/main/c++/llPinCheck.hpp similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/llPinCheck.hpp rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/llPinCheck.hpp diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32C0xx.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32C0xx.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32C0xx.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32C0xx.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F031.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F031.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F031.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F031.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F042.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F042.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F042.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F042.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F051.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F051.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F051.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F051.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F052.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F052.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F052.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F052.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F091.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F091.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F091.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F091.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F217.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F217.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F217.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F217.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F302.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F302.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F302.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F302.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F303.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F303.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F303.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F303.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F303E.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F303E.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F303E.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F303E.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F333.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F333.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F333.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F333.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F373.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F373.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F373.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F373.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F401.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F401.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F401.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F401.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F410.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F410.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F410.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F410.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F411.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F411.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F411.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F411.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F412.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F412.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F412.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F412.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F413.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F413.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F413.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F413.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F417.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F417.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F417.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F417.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F427.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F427.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F427.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F427.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F446.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F446.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F446.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F446.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F469.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F469.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F469.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F469.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F72x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F72x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F72x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F72x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F746.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F746.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F746.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F746.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F76x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F76x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F76x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32F76x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G03x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G03x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G03x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G03x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G05x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G05x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G05x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G05x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G07x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G07x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G07x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G07x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G0Bx.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G0Bx.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G0Bx.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G0Bx.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G43x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G43x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G43x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G43x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G47x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G47x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G47x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G47x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G49x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G49x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G49x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32G49x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H72.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H72.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H72.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H72.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H747.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H747.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H747.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H747.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H7A2.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H7A2.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H7A2.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32H7A2.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L021.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L021.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L021.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L021.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L031.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L031.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L031.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L031.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L051.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L051.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L051.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L051.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L071.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L071.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L071.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L071.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L152x8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L152x8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L152x8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L152x8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L152xC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L152xC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L152xC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L152xC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L15xxA.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L15xxA.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L15xxA.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L15xxA.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L162xD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L162xD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L162xD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L162xD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L162xE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L162xE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L162xE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L162xE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L41x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L41x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L41x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L41x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L43x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L43x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L43x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L43x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L45x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L45x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L45x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L45x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L47x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L47x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L47x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L47x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L49x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L49x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L49x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L49x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L4P.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L4P.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L4P.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L4P.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L4Rx.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L4Rx.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L4Rx.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L4Rx.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L55x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L55x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L55x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32L55x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32MP13x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32MP13x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32MP13x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32MP13x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32MPU.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32MPU.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32MPU.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32MPU.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32U59x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32U59x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32U59x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32U59x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32U5x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32U5x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32U5x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32U5x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB35x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB35x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB35x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB35x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB3x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB3x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB3x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB3x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB55x.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB55x.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB55x.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB55x.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB5Mx.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB5Mx.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB5Mx.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WB5Mx.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WL.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WL.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WL.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/AlternateFunction/STM32WL.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_adf.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_adf.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_adf.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_adf.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_audioclk.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_audioclk.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_audioclk.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_audioclk.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_can.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_can.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_can.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_can.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_cec.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_cec.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_cec.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_cec.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_cm.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_cm.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_cm.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_cm.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_comp.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_comp.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_comp.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_comp.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_comp_tim.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_comp_tim.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_comp_tim.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_comp_tim.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_crs.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_crs.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_crs.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_crs.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dcmi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dcmi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dcmi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dcmi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dcmipp.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dcmipp.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dcmipp.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dcmipp.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtck.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtck.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtck.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtck.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtdo.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtdo.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtdo.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtdo.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtms.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtms.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtms.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_jtms.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_pwr.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_pwr.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_pwr.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_pwr.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_rf.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_rf.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_rf.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_rf.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_subghzspi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_subghzspi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_subghzspi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_debug_subghzspi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dfsdm.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dfsdm.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dfsdm.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dfsdm.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dsihost.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dsihost.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dsihost.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_dsihost.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_eth.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_eth.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_eth.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_eth.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_eventout.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_eventout.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_eventout.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_eventout.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ext_pa.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ext_pa.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ext_pa.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ext_pa.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fdcan.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fdcan.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fdcan.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fdcan.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmc.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmc.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmc.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmc.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmc_nce.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmc_nce.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmc_nce.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmc_nce.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmpi2c.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmpi2c.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmpi2c.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fmpi2c.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fsmc.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fsmc.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fsmc.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fsmc.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fsmc_nce.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fsmc_nce.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fsmc_nce.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_fsmc_nce.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hdmi_cec.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hdmi_cec.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hdmi_cec.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hdmi_cec.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hdp.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hdp.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hdp.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hdp.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hrtim.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hrtim.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hrtim.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hrtim.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hspi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hspi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hspi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_hspi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2c.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2c.h similarity index 85% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2c.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2c.h index dd2a63a05..242176497 100644 --- a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2c.h +++ b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2c.h @@ -3,13 +3,13 @@ * Timestamp: 2022-12-19T23:52:17.402050 */ -#define FIND_VALUE_I2C_SCL_inner(INDEX,PIN) I2C##_I2C_##PIN +#define FIND_VALUE_I2C_SCL_inner(INDEX,PIN) INDEX##_I2C_##PIN #define FIND_VALUE_I2C_SCL(INDEX,PIN) FIND_VALUE_I2C_SCL_inner(INDEX,PIN) -#define FIND_VALUE_I2C_SDA_inner(INDEX,PIN) I2C##_I2C_##PIN +#define FIND_VALUE_I2C_SDA_inner(INDEX,PIN) INDEX##_I2C_##PIN #define FIND_VALUE_I2C_SDA(INDEX,PIN) FIND_VALUE_I2C_SDA_inner(INDEX,PIN) -#define FIND_VALUE_I2C_SMBA_inner(INDEX,PIN) I2C##_I2C_##PIN +#define FIND_VALUE_I2C_SMBA_inner(INDEX,PIN) INDEX##_I2C_##PIN #define FIND_VALUE_I2C_SMBA(INDEX,PIN) FIND_VALUE_I2C_SMBA_inner(INDEX,PIN) #ifdef USE_I2C0 diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s2ext.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s2ext.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s2ext.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s2ext.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s3ext.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s3ext.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s3ext.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_i2s3ext.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ir.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ir.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ir.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ir.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lcd.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lcd.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lcd.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lcd.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lptim.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lptim.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lptim.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lptim.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lpuart.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lpuart.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lpuart.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_lpuart.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ltdc.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ltdc.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ltdc.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ltdc.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_mdf.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_mdf.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_mdf.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_mdf.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_mdios.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_mdios.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_mdios.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_mdios.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_octospi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_octospi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_octospi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_octospi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_octospim_p.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_octospim_p.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_octospim_p.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_octospim_p.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_opamp.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_opamp.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_opamp.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_opamp.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_pssi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_pssi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_pssi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_pssi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_pwr.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_pwr.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_pwr.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_pwr.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_quadspi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_quadspi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_quadspi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_quadspi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_quadspi_bk.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_quadspi_bk.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_quadspi_bk.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_quadspi_bk.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc_mco.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc_mco.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc_mco.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc_mco.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc_osc.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc_osc.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc_osc.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rcc_osc.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rf.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rf.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rf.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rf.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rf_tx_mod_ext.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rf_tx_mod_ext.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rf_tx_mod_ext.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rf_tx_mod_ext.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rtc.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rtc.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rtc.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rtc.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rtc_out.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rtc_out.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rtc_out.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_rtc_out.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sai.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sai.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sai.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sai.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sdio.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sdio.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sdio.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sdio.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sdmmc.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sdmmc.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sdmmc.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sdmmc.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_spdifrx.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_spdifrx.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_spdifrx.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_spdifrx.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_spi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_spi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_spi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_spi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_swpmi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_swpmi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_swpmi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_swpmi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_ir.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_ir.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_ir.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_ir.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtck.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtck.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtck.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtck.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtdo.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtdo.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtdo.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtdo.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtms.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtms.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtms.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_jtms.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_pvd.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_pvd.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_pvd.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_pvd.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_v_ref.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_v_ref.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_v_ref.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_sys_v_ref.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tim.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tim.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tim.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tim.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_timx.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_timx.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_timx.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_timx.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_trig.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_trig.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_trig.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_trig.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ts_g.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ts_g.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ts_g.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ts_g.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tsc.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tsc.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tsc.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tsc.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tsc_g.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tsc_g.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tsc_g.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_tsc_g.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_uart.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_uart.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_uart.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_uart.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ucpd.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ucpd.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ucpd.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_ucpd.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usart.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usart.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usart.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usart.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_fs.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_fs.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_fs.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_fs.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_hs.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_hs.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_hs.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_hs.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_hs_ulpi.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_hs_ulpi.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_hs_ulpi.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_usb_otg_hs_ulpi.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_v_ref.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_v_ref.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_v_ref.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_v_ref.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_v_ref_pvd.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_v_ref_pvd.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_v_ref_pvd.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/PeripheralChecks/peripheralPinCheck_v_ref_pvd.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C011D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C011D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C011D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C011D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C011F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C011F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C011F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C011F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C011J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C011J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C011J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C011J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C031C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C031C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C031C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C031C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C031F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C031F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C031F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C031F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C031G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C031G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C031G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C031G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C031K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C031K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32C031K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32C031K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F030C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F030C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F030C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F030C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F030F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F030F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F030F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F030F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F030K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F030K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F030K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F030K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F030R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F030R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F030R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F030R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031E.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031E.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031E.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031E.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F031K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F031K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038E.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038E.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038E.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038E.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F038K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F038K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F042T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F042T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F048C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F048C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F048C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F048C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F048G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F048G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F048G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F048G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F048T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F048T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F048T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F048T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F051C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F051C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F051C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F051C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F051K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F051K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F051K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F051K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F051R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F051R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F051R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F051R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F051T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F051T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F051T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F051T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F058C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F058C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F058C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F058C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F058R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F058R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F058R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F058R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F058T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F058T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F058T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F058T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F070C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F070C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F070C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F070C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F070F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F070F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F070F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F070F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F070R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F070R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F070R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F070R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F071C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F071C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F071C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F071C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F071R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F071R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F071R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F071R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F071V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F071V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F071V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F071V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F072C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F072C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F072C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F072C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F072R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F072R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F072R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F072R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F072V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F072V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F072V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F072V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F078C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F078C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F078C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F078C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F078R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F078R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F078R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F078R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F078V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F078V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F078V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F078V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F091C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F091C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F091C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F091C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F091R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F091R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F091R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F091R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F091V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F091V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F091V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F091V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F098C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F098C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F098C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F098C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F098R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F098R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F098R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F098R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F098V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F098V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F098V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F098V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F100C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F100C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F100C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F100C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F100R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F100R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F100R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F100R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F100V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F100V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F100V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F100V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F100Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F100Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F100Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F100Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F101Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F101Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F102C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F102C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F102C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F102C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F102R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F102R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F102R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F102R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F103Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F103Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F105R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F105R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F105R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F105R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F105V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F105V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F105V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F105V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F107R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F107R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F107R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F107R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F107V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F107V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F107V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F107V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F205R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F205R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F205R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F205R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F205V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F205V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F205V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F205V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F205Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F205Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F205Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F205Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F207I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F207I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F207I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F207I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F207V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F207V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F207V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F207V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F207Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F207Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F207Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F207Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F215R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F215R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F215R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F215R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F215V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F215V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F215V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F215V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F215Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F215Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F215Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F215Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F217I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F217I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F217I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F217I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F217V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F217V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F217V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F217V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F217Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F217Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F217Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F217Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F301C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F301C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F301C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F301C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F301K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F301K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F301K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F301K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F301R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F301R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F301R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F301R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F302Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F302Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F303Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F303Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F318C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F318C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F318C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F318C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F318K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F318K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F318K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F318K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F328C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F328C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F328C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F328C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F334C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F334C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F334C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F334C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F334K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F334K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F334K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F334K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F334R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F334R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F334R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F334R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F358C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F358C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F358C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F358C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F358R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F358R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F358R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F358R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F358V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F358V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F358V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F358V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F373C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F373C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F373C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F373C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F373R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F373R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F373R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F373R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F373V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F373V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F373V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F373V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F378C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F378C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F378C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F378C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F378R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F378R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F378R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F378R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F378V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F378V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F378V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F378V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F398V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F398V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F398V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F398V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F401C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F401C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F401C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F401C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F401R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F401R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F401R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F401R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F401V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F401V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F401V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F401V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F405O.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F405O.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F405O.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F405O.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F405R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F405R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F405R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F405R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F405V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F405V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F405V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F405V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F405Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F405Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F405Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F405Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F407I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F407I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F407I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F407I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F407V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F407V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F407V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F407V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F407Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F407Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F407Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F407Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F410C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F410C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F410C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F410C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F410R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F410R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F410R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F410R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F410T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F410T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F410T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F410T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F411C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F411C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F411C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F411C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F411R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F411R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F411R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F411R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F411V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F411V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F411V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F411V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F412C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F412C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F412C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F412C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F412R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F412R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F412R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F412R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F412V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F412V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F412V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F412V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F412Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F412Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F412Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F412Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F413Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F413Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F415O.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F415O.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F415O.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F415O.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F415R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F415R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F415R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F415R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F415V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F415V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F415V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F415V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F415Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F415Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F415Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F415Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F417I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F417I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F417I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F417I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F417V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F417V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F417V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F417V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F417Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F417Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F417Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F417Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F423Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F423Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F427A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F427A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F427A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F427A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F427I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F427I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F427I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F427I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F427V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F427V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F427V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F427V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F427Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F427Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F427Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F427Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F429Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F429Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F437A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F437A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F437A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F437A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F437I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F437I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F437I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F437I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F437V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F437V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F437V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F437V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F437Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F437Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F437Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F437Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F439Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F439Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F446M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F446M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F446M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F446M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F446R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F446R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F446R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F446R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F446V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F446V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F446V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F446V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F446Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F446Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F446Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F446Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F469Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F469Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F479Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F479Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F722I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F722I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F722I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F722I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F722R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F722R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F722R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F722R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F722V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F722V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F722V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F722V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F722Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F722Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F722Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F722Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F723I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F723I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F723I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F723I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F723V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F723V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F723V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F723V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F723Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F723Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F723Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F723Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F730I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F730I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F730I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F730I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F730R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F730R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F730R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F730R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F730V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F730V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F730V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F730V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F730Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F730Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F730Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F730Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F732I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F732I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F732I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F732I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F732R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F732R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F732R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F732R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F732V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F732V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F732V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F732V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F732Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F732Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F732Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F732Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F733I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F733I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F733I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F733I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F733V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F733V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F733V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F733V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F733Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F733Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F733Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F733Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F745I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F745I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F745I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F745I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F745V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F745V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F745V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F745V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F745Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F745Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F745Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F745Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F746Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F746Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F750N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F750N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F750N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F750N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F750V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F750V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F750V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F750V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F750Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F750Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F750Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F750Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F756Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F756Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F765Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F765Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F767Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F767Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F768A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F768A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F768A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F768A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F769A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F769A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F769A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F769A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F769B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F769B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F769B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F769B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F769I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F769I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F769I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F769I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F769N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F769N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F769N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F769N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F777Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F777Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F778A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F778A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F778A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F778A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F779A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F779A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F779A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F779A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F779B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F779B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F779B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F779B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F779I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F779I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F779I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F779I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F779N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F779N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32F779N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32F779N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G030C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G030C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G030C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G030C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G030F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G030F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G030F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G030F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G030J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G030J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G030J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G030J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G030K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G030K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G030K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G030K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031Y.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031Y.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G031Y.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G031Y.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041Y.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041Y.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G041Y.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G041Y.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G050C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G050C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G050C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G050C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G050F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G050F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G050F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G050F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G050K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G050K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G050K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G050K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G051C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G051C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G051C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G051C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G051F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G051F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G051F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G051F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G051G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G051G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G051G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G051G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G051K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G051K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G051K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G051K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G061C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G061C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G061C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G061C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G061F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G061F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G061F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G061F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G061G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G061G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G061G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G061G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G061K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G061K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G061K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G061K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G070C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G070C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G070C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G070C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G070K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G070K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G070K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G070K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G070R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G070R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G070R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G070R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071E.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071E.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071E.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071E.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G071R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G071R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081E.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081E.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081E.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081E.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G081R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G081R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B0V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0B1V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G0C1V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G431V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G431V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G441V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G441V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G471V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G471V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473P.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473P.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473P.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473P.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G473V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G473V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474P.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474P.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474P.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474P.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G474V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G474V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483P.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483P.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483P.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483P.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G483V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G483V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484P.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484P.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484P.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484P.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G484V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G484V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G491V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G491V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32G4A1V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H723V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H723V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H723V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H723V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H723Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H723Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H723Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H723Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H725Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H725Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H730A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H730A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H730A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H730A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H730I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H730I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H730I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H730I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H730V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H730V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H730V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H730V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H730Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H730Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H730Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H730Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H733V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H733V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H733V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H733V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H733Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H733Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H733Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H733Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H735Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H735Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742X.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742X.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742X.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742X.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H742Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H742Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743X.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743X.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743X.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743X.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H743Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H743Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H745B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H745B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H745B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H745B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H745I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H745I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H745I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H745I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H745X.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H745X.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H745X.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H745X.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H745Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H745Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H745Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H745Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747X.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747X.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747X.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747X.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H747Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H747Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H750I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H750I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H750I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H750I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H750V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H750V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H750V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H750V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H750X.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H750X.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H750X.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H750X.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H750Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H750Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H750Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H750Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753X.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753X.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753X.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753X.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H753Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H753Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H755B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H755B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H755B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H755B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H755I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H755I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H755I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H755I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H755X.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H755X.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H755X.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H755X.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H755Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H755Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H755Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H755Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757X.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757X.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757X.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757X.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H757Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H757Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3L.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3L.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3L.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3L.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7A3Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B0Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3I.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3I.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3I.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3I.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3L.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3L.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3L.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3L.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32H7B3Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L010C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L010C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L010C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L010C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L010F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L010F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L010F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L010F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L010K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L010K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L010K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L010K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L010R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L010R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L010R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L010R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011E.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011E.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011E.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011E.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L011K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L011K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L021D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L021D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L021D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L021D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L021F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L021F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L021F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L021F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L021G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L021G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L021G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L021G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L021K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L021K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L021K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L021K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031E.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031E.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031E.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031E.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L031K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L031K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041E.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041E.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041E.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041E.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041G.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041G.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041G.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041G.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L041K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L041K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L051C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L051C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L051C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L051C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L051K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L051K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L051K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L051K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L051R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L051R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L051R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L051R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L051T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L051T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L051T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L051T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L052C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L052C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L052C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L052C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L052K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L052K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L052K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L052K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L052R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L052R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L052R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L052R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L052T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L052T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L052T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L052T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L053C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L053C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L053C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L053C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L053R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L053R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L053R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L053R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L062C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L062C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L062C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L062C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L062K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L062K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L062K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L062K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L063C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L063C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L063C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L063C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L063R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L063R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L063R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L063R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L071C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L071C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L071C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L071C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L071K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L071K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L071K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L071K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L071R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L071R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L071R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L071R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L071V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L071V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L071V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L071V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L072C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L072C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L072C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L072C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L072K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L072K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L072K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L072K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L072R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L072R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L072R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L072R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L072V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L072V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L072V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L072V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L073C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L073C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L073C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L073C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L073R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L073R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L073R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L073R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L073V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L073V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L073V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L073V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L081C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L081C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L081C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L081C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L081K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L081K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L081K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L081K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L082C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L082C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L082C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L082C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L082K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L082K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L082K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L082K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L083C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L083C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L083C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L083C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L083R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L083R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L083R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L083R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L083V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L083V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L083V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L083V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L100C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L100C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L100C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L100C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L100R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L100R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L100R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L100R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151U.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151U.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151U.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151U.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L151Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L151Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152U.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152U.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152U.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152U.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L152Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L152Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L162Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L162Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L162Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L162Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L162R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L162R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L162R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L162R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L162V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L162V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L162V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L162V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L162Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L162Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L162Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L162Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L412C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L412C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L412C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L412C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L412K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L412K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L412K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L412K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L412R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L412R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L412R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L412R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L412T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L412T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L412T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L412T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L422C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L422C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L422C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L422C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L422K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L422K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L422K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L422K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L422R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L422R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L422R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L422R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L422T.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L422T.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L422T.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L422T.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L431C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L431C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L431C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L431C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L431K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L431K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L431K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L431K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L431R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L431R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L431R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L431R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L431V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L431V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L431V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L431V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L432K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L432K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L432K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L432K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L433C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L433C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L433C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L433C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L433R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L433R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L433R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L433R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L433V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L433V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L433V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L433V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L442K.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L442K.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L442K.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L442K.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L443C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L443C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L443C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L443C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L443R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L443R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L443R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L443R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L443V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L443V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L443V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L443V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L451C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L451C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L451C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L451C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L451R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L451R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L451R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L451R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L451V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L451V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L451V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L451V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L452C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L452C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L452C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L452C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L452R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L452R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L452R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L452R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L452V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L452V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L452V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L452V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L462C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L462C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L462C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L462C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L462R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L462R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L462R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L462R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L462V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L462V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L462V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L462V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L471Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L471Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L471Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L471Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L471R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L471R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L471R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L471R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L471V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L471V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L471V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L471V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L471Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L471Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L471Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L471Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L475R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L475R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L475R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L475R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L475V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L475V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L475V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L475V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L476Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L476Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L485J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L485J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L485J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L485J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L486Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L486Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496W.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496W.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496W.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496W.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L496Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L496Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4A6Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4P5Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4Q5Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R5Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R7Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4R9Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S5Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S7Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L4S9Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L552Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L552Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562M.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562M.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562M.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562M.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32L562Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32L562Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP131A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP131A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP131A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP131A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP131C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP131C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP131C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP131C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP131D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP131D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP131D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP131D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP131F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP131F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP131F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP131F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP133A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP133A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP133A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP133A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP133C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP133C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP133C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP133C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP133D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP133D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP133D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP133D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP133F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP133F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP133F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP133F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP135A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP135A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP135A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP135A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP135C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP135C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP135C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP135C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP135D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP135D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP135D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP135D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP135F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP135F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP135F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP135F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP151A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP151A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP151A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP151A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP151C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP151C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP151C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP151C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP151D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP151D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP151D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP151D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP151F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP151F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP151F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP151F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP153A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP153A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP153A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP153A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP153C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP153C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP153C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP153C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP153D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP153D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP153D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP153D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP153F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP153F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP153F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP153F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP157A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP157A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP157A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP157A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP157C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP157C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP157C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP157C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP157D.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP157D.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP157D.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP157D.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP157F.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP157F.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32MP157F.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32MP157F.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575O.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575O.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575O.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575O.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U575Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U575Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585A.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585A.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585A.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585A.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585O.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585O.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585O.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585O.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585Q.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585Q.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585Q.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585Q.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U585Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U585Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U595Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U595Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U595Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U595Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U599B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U599B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U599B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U599B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U599N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U599N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U599N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U599N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U5A5Z.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U5A5Z.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U5A5Z.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U5A5Z.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U5A9B.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U5A9B.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U5A9B.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U5A9B.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U5A9N.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U5A9N.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32U5A9N.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32U5A9N.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB10C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB10C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB10C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB10C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB15C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB15C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB15C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB15C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB1MM.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB1MM.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB1MM.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB1MM.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB30C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB30C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB30C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB30C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB35C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB35C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB35C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB35C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB50C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB50C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB50C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB50C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB55C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB55C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB55C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB55C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB55R.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB55R.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB55R.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB55R.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB55V.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB55V.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB55V.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB55V.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB5MM.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB5MM.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WB5MM.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WB5MM.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL54C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL54C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL54C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL54C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL54J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL54J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL54J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL54J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL55C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL55C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL55C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL55C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL55J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL55J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL55J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL55J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL5MO.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL5MO.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WL5MO.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WL5MO.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WLE4C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WLE4C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WLE4C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WLE4C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WLE4J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WLE4J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WLE4J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WLE4J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WLE5C.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WLE5C.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WLE5C.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WLE5C.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WLE5J.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WLE5J.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Pins/STM32WLE5J.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Pins/STM32WLE5J.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011D6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011D6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011D6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011D6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011J4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011J4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011J4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011J4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011J6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011J6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C011J6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C011J6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031G4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031G4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031G4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031G4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32C031K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32C031K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F030RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F030RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031E6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031E6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031E6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031E6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031G4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031G4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031G4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031G4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F031K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F031K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038E6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038E6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038E6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038E6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F038K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F038K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042G4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042G4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042G4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042G4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042T6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042T6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F042T6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F042T6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F048C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F048C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F048C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F048C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F048G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F048G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F048G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F048G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F048T6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F048T6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F048T6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F048T6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051R4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051R4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051R4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051R4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051T8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051T8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F051T8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F051T8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F058C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F058C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F058C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F058C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F058R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F058R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F058R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F058R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F058T8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F058T8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F058T8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F058T8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F070C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F070C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F070C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F070C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F070CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F070CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F070CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F070CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F070F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F070F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F070F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F070F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F070RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F070RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F070RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F070RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F071VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F071VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F072VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F072VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F078CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F078CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F078CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F078CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F078RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F078RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F078RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F078RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F078VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F078VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F078VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F078VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F091VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F091VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F098CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F098CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F098CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F098CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F098RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F098RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F098RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F098RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F098VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F098VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F098VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F098VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100R4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100R4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100R4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100R4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F100ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101R4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101R4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101R4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101R4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101T4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101T4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101T4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101T4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101T6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101T6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101T6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101T6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101T8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101T8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101T8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101T8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101TB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101TB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101TB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101TB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F101ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102R4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102R4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102R4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102R4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F102RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F102RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103R4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103R4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103R4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103R4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103T4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103T4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103T4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103T4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103T6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103T6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103T6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103T6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103T8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103T8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103T8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103T8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103TB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103TB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103TB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103TB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F103ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F105VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F105VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F107RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F107RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F107RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F107RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F107RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F107RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F107RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F107RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F107VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F107VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F107VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F107VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F107VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F107VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F107VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F107VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F205ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207IC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207IC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207IC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207IC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207IF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207IF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207IF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207IF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207VF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207VF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207VF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207VF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZF.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZF.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZF.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZF.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F207ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F215ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F215ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F217ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F217ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F301R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F301R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302ZD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302ZD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302ZD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302ZD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F302ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F302ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303ZD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303ZD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303ZD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303ZD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F303ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F303ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F318C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F318C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F318C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F318C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F318K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F318K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F318K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F318K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F328C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F328C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F328C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F328C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F334R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F334R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F358CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F358CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F358CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F358CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F358RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F358RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F358RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F358RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F358VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F358VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F358VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F358VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F373VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F373VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F378CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F378CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F378CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F378CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F378RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F378RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F378RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F378RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F378VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F378VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F378VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F378VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F398VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F398VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F398VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F398VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401CD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401CD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401CD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401CD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F401VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F401VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405OE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405OE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405OE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405OE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405OG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405OG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405OG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405OG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F405ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F405ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F407ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F407ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410T8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410T8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410T8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410T8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410TB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410TB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F410TB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F410TB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F411VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F411VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412CG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412CG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412CG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412CG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F412ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F412ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413CG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413CG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413CG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413CG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413CH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413CH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413CH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413CH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413MG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413MG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413MG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413MG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413MH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413MH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413MH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413MH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413RH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413RH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413RH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413RH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413VH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413VH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413VH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413VH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413ZH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413ZH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F413ZH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F413ZH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F415OG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F415OG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F415OG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F415OG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F415RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F415RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F415RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F415RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F415VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F415VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F415VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F415VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F415ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F415ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F415ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F415ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F417ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F417ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423CH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423CH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423CH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423CH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423MH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423MH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423MH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423MH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423RH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423RH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423RH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423RH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423VH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423VH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423VH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423VH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423ZH.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423ZH.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F423ZH.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F423ZH.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F427ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F427ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429BE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429BE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429BE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429BE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429NE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429NE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429NE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429NE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F429ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F437ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F437ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F439ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F439ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446MC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446MC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446MC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446MC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F446ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F446ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469AE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469AE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469AE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469AE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469BE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469BE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469BE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469BE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469NE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469NE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469NE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469NE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F469ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F479ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F479ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722IC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722IC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722IC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722IC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F722ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F722ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723IC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723IC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723IC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723IC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F723ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F723ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F730I8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F730I8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F730I8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F730I8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F730R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F730R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F730R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F730R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F730V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F730V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F730V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F730V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F730Z8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F730Z8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F730Z8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F730Z8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F732IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F732IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F732IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F732IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F732RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F732RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F732RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F732RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F732VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F732VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F732VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F732VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F732ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F732ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F732ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F732ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F733IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F733IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F733IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F733IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F733VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F733VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F733VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F733VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F733ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F733ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F733ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F733ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F745ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F745ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746BE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746BE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746BE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746BE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746NE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746NE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746NE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746NE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F746ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F746ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F750N8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F750N8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F750N8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F750N8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F750V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F750V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F750V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F750V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F750Z8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F750Z8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F750Z8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F750Z8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F756ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F756ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F765ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F765ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F767ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F767ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F768AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F768AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F768AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F768AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F769NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F769NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F777ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F777ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F778AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F778AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F778AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F778AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F779AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F779AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F779AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F779AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F779BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F779BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F779BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F779BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F779II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F779II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F779II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F779II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F779NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F779NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32F779NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32F779NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030J6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030J6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030J6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030J6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G030K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G030K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031F8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031F8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031F8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031F8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031G4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031G4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031G4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031G4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031G8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031G8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031G8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031G8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031J4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031J4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031J4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031J4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031J6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031J6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031J6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031J6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031Y8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031Y8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G031Y8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G031Y8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041F8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041F8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041F8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041F8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041G8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041G8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041G8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041G8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041J6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041J6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041J6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041J6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041Y8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041Y8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G041Y8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G041Y8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G050K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G050K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051F8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051F8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051F8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051F8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051G8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051G8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051G8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051G8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G051K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G051K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061F8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061F8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061F8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061F8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061G8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061G8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061G8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061G8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G061K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G061K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G070CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G070CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G070CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G070CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G070KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G070KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G070KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G070KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G070RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G070RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G070RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G070RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071EB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071EB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071EB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071EB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071G8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071G8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071G8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071G8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071GB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071GB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071GB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071GB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G071RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G071RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081EB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081EB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081EB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081EB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081GB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081GB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081GB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081GB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G081RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G081RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0KE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0KE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0KE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0KE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B0VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1KE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1MB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1MB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1MB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1MB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1MC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1MC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1MC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1MC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1NE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1NE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1NE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1NE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0B1VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1KC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1KC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1KC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1KC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1KE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1KE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1KE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1KE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1MC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1MC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1MC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1MC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1NE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1NE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1NE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1NE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G0C1VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431M6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431M6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431M6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431M6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431M8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431M8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431M8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431M8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431MB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431MB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431MB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431MB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431V6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431V6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431V6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431V6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G431VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G431VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441MB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441MB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441MB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441MB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G441VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G441VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471MC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471MC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471MC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471MC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471QC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471QC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471QC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471QC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G471VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G471VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473MB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473MB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473MB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473MB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473MC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473MC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473MC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473MC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473PB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473PB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473PB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473PB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473PC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473PC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473PC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473PC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473PE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473PE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473PE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473PE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473QB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473QB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473QB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473QB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473QC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473QC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473QC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473QC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G473VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G473VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474MB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474MB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474MB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474MB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474MC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474MC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474MC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474MC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474PB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474PB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474PB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474PB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474PC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474PC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474PC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474PC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474PE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474PE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474PE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474PE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474QB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474QB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474QB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474QB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474QC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474QC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474QC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474QC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G474VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G474VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483PE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483PE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483PE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483PE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G483VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G483VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484PE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484PE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484PE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484PE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G484VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G484VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491KC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491KC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491KC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491KC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491KE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491KE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491KE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491KE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491MC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491MC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491MC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491MC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G491VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G491VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1KE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1KE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1KE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1KE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32G4A1VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H723VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H723VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H723VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H723VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H723VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H723VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H723VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H723VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H723ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H723ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H723ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H723ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H723ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H723ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H723ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H723ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725AE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725AE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725AE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725AE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725IE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725IE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725IE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725IE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H725ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H725ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H730AB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H730AB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H730AB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H730AB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H730IB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H730IB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H730IB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H730IB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H730VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H730VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H730VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H730VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H730ZB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H730ZB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H730ZB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H730ZB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H733VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H733VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H733VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H733VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H733ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H733ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H733ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H733ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H735ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H735ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742XG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742XG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742XG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742XG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742XI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742XI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742XI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742XI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H742ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H742ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743XG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743XG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743XG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743XG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743XI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743XI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743XI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743XI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H743ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H743ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745XG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745XG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745XG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745XG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745XI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745XI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745XI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745XI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H745ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H745ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747BG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747BG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747BG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747BG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747XG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747XG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747XG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747XG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747XI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747XI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747XI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747XI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H747ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H747ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H750IB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H750IB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H750IB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H750IB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H750VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H750VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H750VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H750VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H750XB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H750XB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H750XB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H750XB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H750ZB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H750ZB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H750ZB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H750ZB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753XI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753XI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753XI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753XI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H753ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H753ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H755BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H755BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H755BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H755BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H755II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H755II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H755II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H755II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H755XI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H755XI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H755XI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H755XI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H755ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H755ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H755ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H755ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757BI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757BI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757BI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757BI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757XI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757XI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757XI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757XI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H757ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H757ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3IG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3IG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3IG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3IG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3LG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3LG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3LG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3LG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3LI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3LI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3LI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3LI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3NG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3NG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3NG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3NG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3QI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3QI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3QI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3QI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3RI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3RI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3RI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3RI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7A3ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0AB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0AB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0AB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0AB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0IB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0IB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0IB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0IB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0ZB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0ZB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0ZB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B0ZB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3II.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3II.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3II.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3II.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3LI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3LI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3LI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3LI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3QI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3QI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3QI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3QI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3RI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3RI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3RI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3RI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32H7B3ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L010RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L010RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011D3.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011D3.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011D3.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011D3.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011D4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011D4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011D4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011D4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011E3.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011E3.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011E3.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011E3.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011E4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011E4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011E4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011E4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011F3.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011F3.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011F3.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011F3.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011G3.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011G3.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011G3.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011G3.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011G4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011G4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011G4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011G4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011K3.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011K3.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011K3.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011K3.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L011K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L011K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L021D4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L021D4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L021D4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L021D4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L021F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L021F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L021F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L021F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L021G4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L021G4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L021G4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L021G4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L021K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L021K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L021K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L021K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031E4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031E4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031E4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031E4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031E6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031E6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031E6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031E6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031F4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031F4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031F4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031F4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031G4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031G4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031G4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031G4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031K4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031K4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031K4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031K4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L031K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L031K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041C4.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041C4.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041C4.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041C4.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041E6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041E6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041E6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041E6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041F6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041F6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041F6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041F6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041G6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041G6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041G6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041G6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L041K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L041K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051T6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051T6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051T6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051T6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051T8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051T8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L051T8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L051T8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052K6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052K6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052K6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052K6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052T6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052T6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052T6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052T6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052T8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052T8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L052T8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L052T8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L053C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L053C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L053C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L053C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L053C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L053C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L053C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L053C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L053R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L053R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L053R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L053R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L053R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L053R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L053R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L053R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L062C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L062C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L062C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L062C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L062K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L062K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L062K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L062K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L063C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L063C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L063C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L063C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L063R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L063R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L063R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L063R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071CZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071CZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071CZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071CZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071KZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071KZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071KZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071KZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071RZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071RZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071RZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071RZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071VZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071VZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L071VZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L071VZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072CZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072CZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072CZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072CZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072KZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072KZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072KZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072KZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072RZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072RZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072RZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072RZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072VZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072VZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L072VZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L072VZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073CZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073CZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073CZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073CZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073RZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073RZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073RZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073RZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073VZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073VZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L073VZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L073VZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L081CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L081CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L081CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L081CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L081CZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L081CZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L081CZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L081CZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L081KZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L081KZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L081KZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L081KZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L082CZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L082CZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L082CZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L082CZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L082KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L082KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L082KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L082KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L082KZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L082KZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L082KZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L082KZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083CZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083CZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083CZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083CZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083RZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083RZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083RZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083RZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083VZ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083VZ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L083VZ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L083VZ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L100C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L100C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L100C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L100C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L100R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L100R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L100R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L100R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L100RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L100RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L100RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L100RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L100RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L100RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L100RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L100RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151QC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151QC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151QC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151QC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151QD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151QD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151QD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151QD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151UC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151UC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151UC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151UC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L151ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152C6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152C6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152C6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152C6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152QC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152QC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152QC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152QC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152QD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152QD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152QD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152QD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152R6.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152R6.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152R6.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152R6.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152UC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152UC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152UC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152UC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152V8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152V8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152V8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152V8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152VB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152VB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152VB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152VB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L152ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162QC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162QC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162QC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162QC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162QD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162QD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162QD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162QD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162RD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162RD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162RD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162RD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162VD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162VD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162VD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162VD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZD.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZD.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZD.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZD.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L162ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412K8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412K8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412K8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412K8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412R8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412R8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412R8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412R8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412T8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412T8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412T8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412T8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412TB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412TB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L412TB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L412TB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L422CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L422CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L422CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L422CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L422KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L422KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L422KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L422KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L422RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L422RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L422RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L422RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L422TB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L422TB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L422TB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L422TB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431KC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431KC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431KC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431KC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L431VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L431VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L432KB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L432KB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L432KB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L432KB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L432KC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L432KC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L432KC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L432KC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433RB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433RB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433RB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433RB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L433VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L433VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L442KC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L442KC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L442KC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L442KC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L443CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L443CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L443CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L443CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L443RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L443RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L443RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L443RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L443VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L443VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L443VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L443VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L451VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L451VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L452VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L452VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L462CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L462CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L462CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L462CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L462RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L462RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L462RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L462RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L462VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L462VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L462VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L462VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L471ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L471ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L475VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L475VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476JE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476JE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476JE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476JE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476JG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476JG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476JG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476JG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476MG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476MG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476MG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476MG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L476ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L476ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L485JC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L485JC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L485JC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L485JC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L485JE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L485JE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L485JE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L485JE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486JG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486JG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486JG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486JG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L486ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L486ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496AE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496AE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496AE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496AE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496WG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496WG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496WG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496WG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L496ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L496ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4A6ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5AE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5AE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5AE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5AE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5CG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5CG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5CG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5CG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4P5ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5CG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5CG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5CG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5CG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4Q5ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5QI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5QI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5QI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5QI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R5ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R7ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4R9ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5QI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5QI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5QI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5QI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S5ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S7ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L4S9ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552QC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552QC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552QC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552QC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552ZC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552ZC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552ZC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552ZC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L552ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L552ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562ME.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562ME.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562ME.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562ME.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562QE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562QE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562QE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562QE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562ZE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562ZE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32L562ZE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32L562ZE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575AG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575AG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575AG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575AG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575CG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575CG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575CG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575CG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575CI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575CI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575CI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575CI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575OG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575OG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575OG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575OG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575OI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575OI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575OI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575OI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575QG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575QG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575QG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575QG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575QI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575QI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575QI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575QI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575RI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575RI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575RI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575RI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575ZG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575ZG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575ZG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575ZG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U575ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U575ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585AI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585AI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585AI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585AI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585CI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585CI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585CI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585CI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585OI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585OI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585OI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585OI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585QI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585QI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585QI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585QI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585RI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585RI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585RI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585RI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585VI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585VI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585VI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585VI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585ZI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585ZI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U585ZI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U585ZI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U595ZJ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U595ZJ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U595ZJ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U595ZJ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U599BJ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U599BJ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U599BJ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U599BJ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U599NI.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U599NI.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U599NI.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U599NI.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U599NJ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U599NJ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U599NJ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U599NJ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U5A5ZJ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U5A5ZJ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U5A5ZJ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U5A5ZJ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U5A9BJ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U5A9BJ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U5A9BJ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U5A9BJ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U5A9NJ.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U5A9NJ.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32U5A9NJ.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32U5A9NJ.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB10CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB10CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB10CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB10CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB15CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB15CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB15CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB15CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB1MMC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB1MMC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB1MMC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB1MMC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB30CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB30CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB30CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB30CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB35CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB35CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB35CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB35CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB35CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB35CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB35CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB35CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB50CG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB50CG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB50CG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB50CG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55CG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55RG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VE.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VE.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VE.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VE.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VY.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VY.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VY.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB55VY.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB5MMG.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB5MMG.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WB5MMG.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WB5MMG.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL54CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL54CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL54CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL54CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL54JC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL54JC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL54JC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL54JC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL55CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL55CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL55CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL55CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL55JC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL55JC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL55JC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL55JC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL5MOC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL5MOC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WL5MOC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WL5MOC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4J8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4J8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4J8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4J8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4JB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4JB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4JB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4JB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4JC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4JC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4JC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE4JC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5C8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5C8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5C8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5C8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5CB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5CB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5CB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5CB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5CC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5CC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5CC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5CC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5J8.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5J8.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5J8.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5J8.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5JB.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5JB.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5JB.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5JB.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5JC.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5JC.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5JC.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/Setup/STM32WLE5JC.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/deviceSelector.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/deviceSelector.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/deviceSelector.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/deviceSelector.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/peripheralPinCheck.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/peripheralPinCheck.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/peripheralPinCheck.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/peripheralPinCheck.h diff --git a/receivers/native/arm/implementations/src/main/c++/stm32/stm32Setup.h b/receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/stm32Setup.h similarity index 100% rename from receivers/native/arm/implementations/src/main/c++/stm32/stm32Setup.h rename to receivers/generic-c++/zll/arm/implementations/src/main/c++/stm32/stm32Setup.h diff --git a/receivers/native/arm/implementations/src/main/peripheralInheritence.csv b/receivers/generic-c++/zll/arm/implementations/src/main/peripheralInheritence.csv similarity index 100% rename from receivers/native/arm/implementations/src/main/peripheralInheritence.csv rename to receivers/generic-c++/zll/arm/implementations/src/main/peripheralInheritence.csv diff --git a/receivers/native/arm/implementations/src/main/pins.py b/receivers/generic-c++/zll/arm/implementations/src/main/pins.py similarity index 100% rename from receivers/native/arm/implementations/src/main/pins.py rename to receivers/generic-c++/zll/arm/implementations/src/main/pins.py diff --git a/receivers/native/arm/implementations/src/main/setup.py b/receivers/generic-c++/zll/arm/implementations/src/main/setup.py similarity index 100% rename from receivers/native/arm/implementations/src/main/setup.py rename to receivers/generic-c++/zll/arm/implementations/src/main/setup.py diff --git a/receivers/native/arm/mbed/Makefile b/receivers/generic-c++/zll/arm/mbed/Makefile similarity index 100% rename from receivers/native/arm/mbed/Makefile rename to receivers/generic-c++/zll/arm/mbed/Makefile diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/DhcpClient.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/DhcpClient.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/DhcpClient.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/DhcpClient.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/DhcpClient.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/DhcpClient.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/DhcpClient.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/DhcpClient.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/DnsClient.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/DnsClient.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/DnsClient.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/DnsClient.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/DnsClient.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/DnsClient.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/DnsClient.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/DnsClient.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/IpAddress.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/IpAddress.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/IpAddress.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/IpAddress.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/IpAddress.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/IpAddress.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/IpAddress.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/IpAddress.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/Readme.txt b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/Readme.txt similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/Readme.txt rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/Readme.txt diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/SocketAddress.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/SocketAddress.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/SocketAddress.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/SocketAddress.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/SocketAddress.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/SocketAddress.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/SocketAddress.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/SocketAddress.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/TcpClient.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/TcpClient.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/TcpClient.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/TcpClient.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/TcpClient.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/TcpClient.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/TcpClient.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/TcpClient.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/TcpServer.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/TcpServer.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/TcpServer.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/TcpServer.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/TcpServer.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/TcpServer.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/TcpServer.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/TcpServer.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/UdpSocket.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/UdpSocket.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/UdpSocket.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/UdpSocket.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/UdpSocket.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/UdpSocket.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/UdpSocket.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/UdpSocket.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/UipEthernet.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/UipEthernet.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/UipEthernet.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/UipEthernet.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/UipEthernet.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/UipEthernet.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/UipEthernet.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/UipEthernet.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/keywords.txt b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/keywords.txt similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/keywords.txt rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/keywords.txt diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/Enc28j60Eth.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/Enc28j60Eth.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/Enc28j60Eth.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/Enc28j60Eth.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/Enc28j60Eth.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/Enc28j60Eth.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/Enc28j60Eth.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/Enc28j60Eth.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/MemPool.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/MemPool.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/MemPool.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/MemPool.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/MemPool.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/MemPool.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/MemPool.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/MemPool.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/Udp.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/Udp.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/Udp.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/Udp.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/clock-arch.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/clock-arch.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/clock-arch.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/clock-arch.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/clock-arch.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/clock-arch.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/clock-arch.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/clock-arch.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/common_functions.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/common_functions.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/common_functions.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/common_functions.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/common_functions.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/common_functions.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/common_functions.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/common_functions.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/enc28j60.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/enc28j60.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/enc28j60.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/enc28j60.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/ip4string.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ip4string.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/ip4string.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ip4string.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/ip4tos.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ip4tos.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/ip4tos.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ip4tos.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/ip6string.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ip6string.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/ip6string.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ip6string.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/ip6tos.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ip6tos.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/ip6tos.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ip6tos.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/mempool_conf.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/mempool_conf.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/mempool_conf.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/mempool_conf.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/ns_types.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ns_types.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/ns_types.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/ns_types.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/nsapi_types.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/nsapi_types.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/nsapi_types.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/nsapi_types.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/stoip4.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/stoip4.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/stoip4.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/stoip4.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/stoip6.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/stoip6.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/stoip6.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/stoip6.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip-conf.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip-conf.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip-conf.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip-conf.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_arch.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_arch.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_arch.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_arch.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_arp.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_arp.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_arp.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_arp.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_arp.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_arp.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_arp.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_arp.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_clock.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_clock.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_clock.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_clock.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_debug.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_debug.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_debug.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_debug.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_debug.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_debug.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_debug.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_debug.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_timer.c b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_timer.c similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_timer.c rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_timer.c diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_timer.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_timer.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uip_timer.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uip_timer.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uipethernet-conf.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uipethernet-conf.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uipethernet-conf.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uipethernet-conf.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/uipopt.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uipopt.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/uipopt.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/uipopt.h diff --git a/receivers/native/arm/mbed/src/test/c++/UIP/utility/util.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/util.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/UIP/utility/util.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/UIP/utility/util.h diff --git a/receivers/native/arm/mbed/src/test/c++/channels/UipUdpChannelInStream.hpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpChannelInStream.hpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/channels/UipUdpChannelInStream.hpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpChannelInStream.hpp diff --git a/receivers/native/arm/mbed/src/test/c++/channels/UipUdpChannelManager.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpChannelManager.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/channels/UipUdpChannelManager.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpChannelManager.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/channels/UipUdpChannelManager.hpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpChannelManager.hpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/channels/UipUdpChannelManager.hpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpChannelManager.hpp diff --git a/receivers/native/arm/mbed/src/test/c++/channels/UipUdpCommandChannel.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpCommandChannel.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/channels/UipUdpCommandChannel.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpCommandChannel.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/channels/UipUdpCommandChannel.hpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpCommandChannel.hpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/channels/UipUdpCommandChannel.hpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpCommandChannel.hpp diff --git a/receivers/native/arm/mbed/src/test/c++/channels/UipUdpOutStream.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpOutStream.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/channels/UipUdpOutStream.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpOutStream.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/channels/UipUdpOutStream.hpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpOutStream.hpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/channels/UipUdpOutStream.hpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpOutStream.hpp diff --git a/receivers/native/arm/mbed/src/test/c++/channels/UipUdpWrapper.hpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpWrapper.hpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/channels/UipUdpWrapper.hpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/channels/UipUdpWrapper.hpp diff --git a/receivers/native/arm/mbed/src/test/c++/commands/ZcodeIdentifyCommand.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/commands/ZcodeIdentifyCommand.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/commands/ZcodeIdentifyCommand.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/commands/ZcodeIdentifyCommand.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/commands/ZcodeIdentifyCommand.hpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/commands/ZcodeIdentifyCommand.hpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/commands/ZcodeIdentifyCommand.hpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/commands/ZcodeIdentifyCommand.hpp diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_armcc.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_armcc.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_armcc.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_armcc.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_armclang.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_armclang.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_armclang.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_armclang.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_compiler.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_compiler.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_compiler.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_compiler.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_gcc.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_gcc.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_gcc.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_gcc.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_iccarm.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_iccarm.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_iccarm.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_iccarm.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_version.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_version.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/cmsis_version.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/cmsis_version.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_armv8mbl.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_armv8mbl.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_armv8mbl.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_armv8mbl.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_armv8mml.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_armv8mml.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_armv8mml.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_armv8mml.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_cm0.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm0.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_cm0.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm0.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_cm0plus.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm0plus.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_cm0plus.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm0plus.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_cm1.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm1.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_cm1.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm1.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_cm23.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm23.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_cm23.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm23.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_cm3.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm3.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_cm3.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm3.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_cm33.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm33.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_cm33.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm33.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_cm4.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm4.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_cm4.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm4.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_cm7.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm7.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_cm7.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_cm7.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_sc000.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_sc000.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_sc000.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_sc000.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/core_sc300.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_sc300.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/core_sc300.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/core_sc300.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/mpu_armv7.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/mpu_armv7.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/mpu_armv7.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/mpu_armv7.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/mpu_armv8.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/mpu_armv8.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/mpu_armv8.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/mpu_armv8.h diff --git a/receivers/native/arm/mbed/src/test/c++/include/Core/tz_context.h b/receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/tz_context.h similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/include/Core/tz_context.h rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/include/Core/tz_context.h diff --git a/receivers/native/arm/mbed/src/test/c++/main/ZcodeParameters.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/main/ZcodeParameters.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/main/ZcodeParameters.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/main/ZcodeParameters.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/main/ZcodeParameters.hpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/main/ZcodeParameters.hpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/main/ZcodeParameters.hpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/main/ZcodeParameters.hpp diff --git a/receivers/native/arm/mbed/src/test/c++/main/main.cpp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/main/main.cpp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/main/main.cpp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/main/main.cpp diff --git a/receivers/native/arm/mbed/src/test/c++/main/mbed_app.json b/receivers/generic-c++/zll/arm/mbed/src/test/c++/main/mbed_app.json similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/main/mbed_app.json rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/main/mbed_app.json diff --git a/receivers/native/arm/mbed/src/test/c++/main/stm32g4xx.h.tmp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/main/stm32g4xx.h.tmp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/main/stm32g4xx.h.tmp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/main/stm32g4xx.h.tmp diff --git a/receivers/native/arm/mbed/src/test/c++/main/usb.c.tmp b/receivers/generic-c++/zll/arm/mbed/src/test/c++/main/usb.c.tmp similarity index 100% rename from receivers/native/arm/mbed/src/test/c++/main/usb.c.tmp rename to receivers/generic-c++/zll/arm/mbed/src/test/c++/main/usb.c.tmp diff --git a/receivers/native/arm/mbed/src/test/ld/STM32G484QETX_FLASH.ld b/receivers/generic-c++/zll/arm/mbed/src/test/ld/STM32G484QETX_FLASH.ld similarity index 100% rename from receivers/native/arm/mbed/src/test/ld/STM32G484QETX_FLASH.ld rename to receivers/generic-c++/zll/arm/mbed/src/test/ld/STM32G484QETX_FLASH.ld diff --git a/receivers/native/arm/mbed/src/test/openocd/openocd.cfg b/receivers/generic-c++/zll/arm/mbed/src/test/openocd/openocd.cfg similarity index 100% rename from receivers/native/arm/mbed/src/test/openocd/openocd.cfg rename to receivers/generic-c++/zll/arm/mbed/src/test/openocd/openocd.cfg diff --git a/receivers/native/arm/no-os/Makefile b/receivers/generic-c++/zll/arm/no-os/Makefile similarity index 100% rename from receivers/native/arm/no-os/Makefile rename to receivers/generic-c++/zll/arm/no-os/Makefile diff --git a/receivers/native/arm/no-os/docs/stlink-deployment.md b/receivers/generic-c++/zll/arm/no-os/docs/stlink-deployment.md similarity index 100% rename from receivers/native/arm/no-os/docs/stlink-deployment.md rename to receivers/generic-c++/zll/arm/no-os/docs/stlink-deployment.md diff --git a/receivers/native/arm/no-os/pom.xml b/receivers/generic-c++/zll/arm/no-os/pom.xml similarity index 100% rename from receivers/native/arm/no-os/pom.xml rename to receivers/generic-c++/zll/arm/no-os/pom.xml diff --git a/receivers/native/arm/no-os/stm32/pom.xml b/receivers/generic-c++/zll/arm/no-os/stm32/pom.xml similarity index 100% rename from receivers/native/arm/no-os/stm32/pom.xml rename to receivers/generic-c++/zll/arm/no-os/stm32/pom.xml diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeReadGuidCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeReadGuidCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeReadGuidCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeReadGuidCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeResetCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeResetCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeResetCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeResetCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeWriteGuidCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeWriteGuidCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeWriteGuidCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/commands/ZcodeWriteGuidCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/persistence/FlashPage.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/persistence/FlashPage.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/persistence/FlashPage.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/persistence/FlashPage.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/persistence/ZcodeFlashPersistence.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/persistence/ZcodeFlashPersistence.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/persistence/ZcodeFlashPersistence.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/arm-core-module/persistence/ZcodeFlashPersistence.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/ZcodeI2cModule.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/ZcodeI2cModule.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/ZcodeI2cModule.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/ZcodeI2cModule.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2c2ChannelBusInterruptSource.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2c2ChannelBusInterruptSource.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2c2ChannelBusInterruptSource.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2c2ChannelBusInterruptSource.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2c4ChannelBusInterruptSource.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2c4ChannelBusInterruptSource.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2c4ChannelBusInterruptSource.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2c4ChannelBusInterruptSource.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2cAddressingSystem.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2cAddressingSystem.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2cAddressingSystem.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2cAddressingSystem.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/GeneralI2cAction.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/GeneralI2cAction.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/GeneralI2cAction.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/GeneralI2cAction.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cCapabilitiesCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cCapabilitiesCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cCapabilitiesCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cReceiveCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cReceiveCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cReceiveCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cReceiveCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSendCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSendCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSendCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSendCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSendReceiveCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSendReceiveCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSendReceiveCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSendReceiveCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSetupCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSetupCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSetupCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/commands/ZcodeI2cSetupCommand.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2c.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2c.hpp new file mode 100644 index 000000000..71a8a81fe --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2c.hpp @@ -0,0 +1,168 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2C_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2C_HPP_ + +#include + +#include +#include +#include + +enum I2cFrequency { + kHz10, kHz100, kHz400, kHz1000 +}; +#include "specific/I2cInternal.hpp" + +enum I2cTerminationStatus { + Complete, // Successful completion - stopped when expected + AddressNack, // No response to address - device missing or busy + DataNack, // No response to a data byte - device stopped ack'ing. Probably bad. + Address2Nack, // No response to second address in send+receive pair. Eg bus noise, or device reset? + BusError, // Bus had a (bad) failure, eg jammed, or a STOP at wrong time, but recovered to usable state + BusJammed, // Bus jammed and recovery failed. Probably very bad. + BusBusy, // MultiMaster, so bus unavailable (MM not supported well at this time) + MemoryError, // DMA error - probably indicates a bug! Might imply buffer error? + OtherError // eg setup error, or unknown error - probably a bug. +}; + +template +class I2cManager; + +// All methods guarantee that the callback is called. All methods use DMAs if the device supports them. +template +class I2c { +private: + I2cInternal i2c; + I2cIdentifier id; + +#ifdef I2C_DMA + Dma *dma = NULL; + DmaMuxRequest requestTx = DMAMUX_NO_MUX; + DmaMuxRequest requestRx = DMAMUX_NO_MUX; + + void dmaInterrupt(DmaTerminationStatus status); + #endif + uint16_t address = 0; + uint16_t position = 0; + uint16_t rxLen = 0; + uint16_t txLen = 0; + const uint8_t *txData = NULL; + uint8_t *rxData = NULL; + volatile I2cState state; + void (*volatile callback)(I2c*, I2cTerminationStatus); + + friend class I2cManager ; + + void interrupt(); + + void finish(); + + void restartReceive(); + +#ifdef I2C_DMA + void setI2c(I2cInternal i2c, I2cIdentifier id, DmaMuxRequest requestTx, DmaMuxRequest requestRx) { + this->i2c = i2c; + this->id = id; + this->requestTx = requestTx; + this->requestRx = requestRx; + } +#endif + void setI2c(I2cInternal i2c, I2cIdentifier id) { + this->i2c = i2c; + this->id = id; + +#ifdef I2C_DMA + this->requestTx = DMAMUX_NO_MUX; + this->requestRx = DMAMUX_NO_MUX; +#endif + } + I2cTerminationStatus transmit10(uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, bool stop); + +public: + + I2c(); + + void setDma(Dma *dma) { + this->dma = dma; + } + + bool init(); + + void setFrequency(I2cFrequency freq); + + I2cTerminationStatus transmit10(uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen) { + return transmit10(address, tenBit, txData, txLen, true); + } + I2cTerminationStatus receive10(uint16_t address, bool tenBit, uint8_t *rxData, uint16_t rxLen); + + I2cTerminationStatus transmitReceive10(uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, uint16_t rxLen) { + I2cTerminationStatus result = transmit10(address, tenBit, txData, txLen, false); + if (result == Complete) { + result = receive10(address, tenBit, rxData, rxLen); + if (result == AddressNack) { + return Address2Nack; + } + return result; + } else { + return result; + } + } + + void asyncTransmit10(PeripheralOperationMode mode, uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, + void (*callback)(I2c*, I2cTerminationStatus)); + void asyncReceive10(PeripheralOperationMode mode, uint16_t address, bool tenBit, uint8_t *rxData, uint16_t rxLen, + void (*callback)(I2c*, I2cTerminationStatus)); + void asyncTransmitReceive10(PeripheralOperationMode mode, uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, + uint16_t rxLen, void (*callback)(I2c*, I2cTerminationStatus)); + + void asyncTransmit(PeripheralOperationMode mode, uint8_t address, const uint8_t *txData, uint16_t txLen, void (*callback)(I2c*, I2cTerminationStatus)) { + asyncTransmit10(mode, address, false, txData, txLen, callback); + } + void asyncReceive(PeripheralOperationMode mode, uint8_t address, uint8_t *rxData, uint16_t rxLen, void (*callback)(I2c*, I2cTerminationStatus)) { + asyncReceive10(mode, address, false, rxData, rxLen, callback); + } + void asyncTransmitReceive(PeripheralOperationMode mode, uint8_t address, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, uint16_t rxLen, + void (*callback)(I2c*, I2cTerminationStatus)) { + asyncTransmitReceive10(mode, address, false, txData, txLen, rxData, rxLen, callback); + } + + I2cTerminationStatus transmit(uint8_t address, const uint8_t *txData, uint16_t txLen) { + return transmit10(address, false, txData, txLen); + } + I2cTerminationStatus receive(uint8_t address, uint8_t *rxData, uint16_t rxLen) { + return receive10(address, false, rxData, rxLen); + } + I2cTerminationStatus transmitReceive(uint8_t address, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, uint16_t rxLen) { + return transmitReceive10(address, false, txData, txLen, rxData, rxLen); + } + bool isSetUp() { + return i2c.isSetUp(); + } + + bool lock() { + if (!state.lockBool) { + state.lockBool = true; + return true; + } + return false; + } + + bool isLocked() { + return state.lockBool; + } + + void unlock() { + state.lockBool = false; + } +}; + +#include "specific/I2ccpp.hpp" +#include "I2cManager.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2C_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2cManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2cManager.hpp new file mode 100644 index 000000000..7f54e414e --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/I2cManager.hpp @@ -0,0 +1,39 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2CMANAGER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2CMANAGER_HPP_ + +#include +#include "I2c.hpp" + +template +class I2cManager { + typedef typename LL::HW HW; + private: + + friend class I2c ; + static I2c i2cs[HW::i2cCount]; + + static void interrupt(uint8_t); + +#ifdef I2C_DMA + static void dmaInterrupt(Dma*, DmaTerminationStatus); +#endif + I2cManager() { + } + +public: + static void init(); + + static I2c* getI2cById(I2cIdentifier id) { + return i2cs + id; + } +}; +#include "specific/I2cManagercpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2CMANAGER_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cInternal.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cInternal.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cManagercpp.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cRegisters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cRegisters.hpp new file mode 100644 index 000000000..215b3a26b --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2cRegisters.hpp @@ -0,0 +1,27 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CREGISTERS_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CREGISTERS_HPP_ + +#include + +struct I2cRegisters { + volatile uint32_t CR1; + volatile uint32_t CR2; + volatile uint32_t OAR1; + volatile uint32_t OAR2; + volatile uint32_t TIMINGR; + volatile uint32_t TIMEOUTR; + volatile uint32_t ISR; + volatile uint32_t ICR; + volatile uint32_t PECR; + volatile uint32_t RXDR; + volatile uint32_t TXDR; +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CREGISTERS_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2ccpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2ccpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2ccpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/i2c-module/lowlevel/specific/I2ccpp.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/llIncludes.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/llIncludes.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/llIncludes.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/llIncludes.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoD.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoD.hpp new file mode 100644 index 000000000..448c14d20 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoD.hpp @@ -0,0 +1,31 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_ATODLOWLEVEL_ATOD_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_ATODLOWLEVEL_ATOD_HPP_ + +#include + +template +class AtoD { +private: + ADC_TypeDef *adcRegs; + bool isInit = false; + +public: + AtoD(ADC_TypeDef *adcRegs) : + adcRegs(adcRegs) { + } + + void init(); + + uint16_t performReading(uint8_t channelSource); +}; + +#include "specific/AtoDcpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_ATODLOWLEVEL_ATOD_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoDManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoDManager.hpp new file mode 100644 index 000000000..82129c520 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/AtoDManager.hpp @@ -0,0 +1,36 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_ATODLOWLEVEL_ATODMANAGER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_ATODLOWLEVEL_ATODMANAGER_HPP_ + +#include +#include "AtoD.hpp" +#include + +template +class AtoDManager { + typedef typename LL::HW HW; + static AtoD atoDs[HW::atoDCount]; + + AtoDManager() { + } + +public: + static void init(); + + static uint16_t performAtoD(GpioPinName pin); + + static bool canPerformAtoD(GpioPinName pin); + + static AtoD* getAtoD(uint8_t aToD) { + return atoDs + aToD; + } +}; +#include "specific/AtoDManagercpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_ATODLOWLEVEL_ATODMANAGER_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/specific/AtoDcpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/specific/AtoDcpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/specific/AtoDcpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/AToDLowLevel/specific/AtoDcpp.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/ZcodePinModule.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/ZcodePinModule.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/ZcodePinModule.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/ZcodePinModule.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinCapabilitiesCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinCapabilitiesCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinCapabilitiesCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinReadCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinReadCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinReadCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinReadCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinSetupCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinSetupCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinSetupCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinSetupCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinWriteCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinWriteCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinWriteCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/commands/ZcodePinWriteCommand.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/Gpio.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/Gpio.hpp new file mode 100644 index 000000000..8f531392c --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/Gpio.hpp @@ -0,0 +1,54 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_GPIO_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_GPIO_HPP_ + +#include +#include "specific/GpioPort.hpp" + +template +class GpioPin { +private: + GpioPinName pin; + +public: + GpioPin(GpioPinName pin) : + pin(pin) { + } + void init(); + + void write(bool value); + + void set(); + + void reset(); + + bool read(); + + void setMode(PinMode mode); + + void setOutputMode(OutputMode mode); + + void setOutputSpeed(PinSpeed speed); + + void setPullMode(PullMode mode); + + void setAlternateFunction(uint8_t function); + + GpioPinName getPinName() { + return pin; + } +}; + +#include "GpioManager.hpp" + +#ifndef GPIOLOWLEVEL_NO_CPP +#include "specific/Gpiocpp.hpp" +#endif + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_GPIO_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/GpioManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/GpioManager.hpp new file mode 100644 index 000000000..d82594513 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/GpioManager.hpp @@ -0,0 +1,43 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_GPIOMANAGER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_GPIOMANAGER_HPP_ + +#define GPIOLOWLEVEL_NO_CPP +#include +#include "Gpio.hpp" +#include "specific/GpioNames.hpp" + +template +class GpioManager { +private: + typedef typename LL::HW HW; + static GpioPin pins[HW::pinCount]; + +public: + static void init(); + + static void activateClock(GpioPinName name); + + static GpioPin getPin(GpioPinName name); + + static GpioPin getPin(uint8_t id) { + if (id >= HW::pinCount) { + return pins[0]; + } + return pins[id]; + } + + static GpioPort* getPort(GpioPinName name); +}; + +#include "specific/GpioManagercpp.hpp" +#undef GPIOLOWLEVEL_NO_CPP +#include "specific/Gpiocpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_GPIOMANAGER_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioManagercpp.hpp new file mode 100644 index 000000000..7572f6c63 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioManagercpp.hpp @@ -0,0 +1,15 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#include "../GpioManager.hpp" +#if defined(STM32G4) +#include +#elif defined(STM32F0) +#include +#else +#error Please select a supported device family +#endif diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioNames.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioNames.hpp new file mode 100644 index 000000000..16d2c2023 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioNames.hpp @@ -0,0 +1,15 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#include +#if defined(STM32G4) +#include +#elif defined(STM32F0) +#include +#else +#error Please select a supported device family +#endif diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioPort.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioPort.hpp new file mode 100644 index 000000000..4e70e53bc --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/GpioPort.hpp @@ -0,0 +1,88 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_SPECIFIC_GPIOPORT_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_SPECIFIC_GPIOPORT_HPP_ + +#include +#include "GpioNames.hpp" + +enum OutputMode { + PushPull, OpenDrain +}; + +enum PullMode { + NoPull, PullUp, PullDown +}; + +enum PinSpeed { + LowSpeed, MediumSpeed, HighSpeed, VeryHighSpeed +}; + +enum PinMode { + Input, Output, AlternateFunction, Analog +}; + +class GpioPort { +private: + volatile uint32_t MODE; + volatile uint32_t OTYPE; + volatile uint32_t OSPEED; + volatile uint32_t PUPD; + volatile uint32_t ID; + volatile uint32_t OD; + volatile uint32_t BSR; + volatile uint32_t LCK; + volatile uint32_t AFRL; + volatile uint32_t AFRH; + volatile uint32_t BR; + +public: + void setMode(GpioPinName pin, PinMode mode) { + MODE &= ~(0x3 << (pin.pin * 2)); + MODE |= (mode) << (pin.pin * 2); + } + + void setOutputType(GpioPinName pin, OutputMode mode) { + OTYPE &= ~(0x1 << (pin.pin)); + OTYPE |= (mode) << (pin.pin); + } + + void setOutputSpeed(GpioPinName pin, PinSpeed mode) { + OSPEED &= ~(0x3 << (pin.pin * 2)); + OSPEED |= (mode) << (pin.pin * 2); + } + + void setPullMode(GpioPinName pin, PullMode mode) { + PUPD &= ~(0x3 << (pin.pin * 2)); + PUPD |= (mode) << (pin.pin * 2); + } + + bool getPinValue(GpioPinName pin) { + return ID & (1 << pin.pin); + } + + void setPin(GpioPinName pin) { + BSR = (1 << pin.pin); + } + + void resetPin(GpioPinName pin) { + BSR = (0x10000 << pin.pin); + } + + void setAlternateFunction(GpioPinName pin, uint8_t function) { + if (pin.pin < 8) { + AFRL &= ~(0xF << (pin.pin * 4)); + AFRL |= (function << (pin.pin * 4)); + } else { + AFRH &= ~(0xF << (pin.pin * 4 - 32)); + AFRH |= (function << (pin.pin * 4 - 32)); + } + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_SPECIFIC_GPIOPORT_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/Gpiocpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/Gpiocpp.hpp new file mode 100644 index 000000000..50c760211 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/lowlevel/specific/Gpiocpp.hpp @@ -0,0 +1,69 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_SPECIFIC_GPIOCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_SPECIFIC_GPIOCPP_HPP_ + +#include "../Gpio.hpp" + +#include "../GpioManager.hpp" + +template +void GpioPin::init() { + GpioManager::activateClock(pin); +} + +template +void GpioPin::write(bool value) { + if (value) { + GpioManager::getPort(pin)->setPin(pin); + } else { + GpioManager::getPort(pin)->resetPin(pin); + } +} + +template +void GpioPin::set() { + GpioManager::getPort(pin)->setPin(pin); +} + +template +void GpioPin::reset() { + GpioManager::getPort(pin)->resetPin(pin); +} + +template +bool GpioPin::read() { + return GpioManager::getPort(pin)->getPinValue(pin); +} + +template +void GpioPin::setOutputMode(OutputMode mode) { + GpioManager::getPort(pin)->setOutputType(pin, mode); +} + +template +void GpioPin::setPullMode(PullMode mode) { + GpioManager::getPort(pin)->setPullMode(pin, mode); +} + +template +void GpioPin::setMode(PinMode mode) { + GpioManager::getPort(pin)->setMode(pin, mode); +} + +template +void GpioPin::setOutputSpeed(PinSpeed speed) { + GpioManager::getPort(pin)->setOutputSpeed(pin, speed); +} + +template +void GpioPin::setAlternateFunction(uint8_t function) { + GpioManager::getPort(pin)->setAlternateFunction(pin, function); +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_PINS_MODULE_LOWLEVEL_SPECIFIC_GPIOCPP_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/AnalogPinController.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/AnalogPinController.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/AnalogPinController.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/AnalogPinController.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/DigitalPinController.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/DigitalPinController.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/DigitalPinController.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/DigitalPinController.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/PinController.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/PinController.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/PinController.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/pins-module/pin-controller/PinController.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/ZcodeSerialModule.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/ZcodeSerialModule.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/ZcodeSerialModule.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/ZcodeSerialModule.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/addressing/ZcodeSerialAddressingSystem.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/addressing/ZcodeSerialAddressingSystem.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/addressing/ZcodeSerialAddressingSystem.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/addressing/ZcodeSerialAddressingSystem.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/addressing/ZcodeSerialBusInterruptSource.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/addressing/ZcodeSerialBusInterruptSource.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/addressing/ZcodeSerialBusInterruptSource.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/addressing/ZcodeSerialBusInterruptSource.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/channels/SerialChannel.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/channels/SerialChannel.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/channels/SerialChannel.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/channels/SerialChannel.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialCapabilitiesCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialCapabilitiesCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialCapabilitiesCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialReadCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialReadCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialReadCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialReadCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSendCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSendCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSendCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSendCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSetupCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSetupCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSetupCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSetupCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSkipCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSkipCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSkipCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/commands/ZcodeSerialSkipCommand.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Serial.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Serial.hpp new file mode 100644 index 000000000..88fb0d19f --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Serial.hpp @@ -0,0 +1,103 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIAL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIAL_HPP_ + +#include + +enum SerialError { + SerialNoError = 0, + SerialParityError = 1, + SerialNoiseError = 2, + SerialFramingError = 3, + SerialOverflowError = 32 +}; + +//always does 8 bit bytes, no parity - just for simplicity +class Serial { +// virtual void init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop) = 0; +// //the buffer overflow handler can read/skip in the callback to clear space - if it doesn't clear enough space we abort the write +// +// virtual void setTargetValue(void (*volatile targetValueCallback)(SerialIdentifier), uint8_t targetValue) = 0; +// virtual void clearTargetValue() = 0; +// virtual SerialIdentifier getId() = 0; +// virtual bool write(uint8_t datum) = 0; + +// virtual uint16_t getWriteLength() = 0; +// +// virtual bool attemptWrite(uint8_t datum) = 0; +// +// virtual bool canAttemptWrite(uint16_t length) = 0; +// +// virtual void endWrite(bool complete) = 0; + +// virtual void transmitWriteBuffer() = 0; +// +// virtual SerialError getError(uint16_t length) = 0; +// +// virtual uint16_t skip(uint16_t length) = 0; +// virtual uint16_t available() = 0; +// virtual int16_t read() = 0; //-1 if no data +// +// virtual uint16_t availablePeek() = 0; +// virtual int16_t peek() = 0; //-1 if no data +// +// virtual void endPeek(bool skipTo) = 0; +// virtual void resetPeek() = 0; +// virtual void skipToPeek() = 0; +// +// virtual int32_t getDistance(uint8_t value) = 0; //returns the number of bytes until the specified value appears, including the value + +protected: + SerialIdentifier id; + +public: + SerialIdentifier getId() { + return id; + } + virtual uint32_t getMaxBaud() = 0; + virtual uint32_t getMinBaud() = 0; + + virtual void init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop) = 0; + //the buffer overflow handler can read/skip in the callback to clear space - if it doesn't clear enough space we abort the write + + virtual void setTargetValue(void (*volatile targetValueCallback)(SerialIdentifier), uint8_t targetValue) = 0; + virtual void clearTargetValue() = 0; + virtual bool write(uint8_t datum) = 0; + + virtual bool write(const uint8_t *buffer, uint16_t length) = 0; + virtual bool canWrite(uint16_t length) = 0; + + virtual bool attemptWrite(const uint8_t *buffer, uint16_t length) = 0; //starts writing without allowing read yet - used to discover if a message will fit + virtual bool attemptWrite(uint8_t datum) = 0; + + virtual bool canAttemptWrite(uint16_t length) = 0; + + virtual void cancelWrite() = 0; //undoes an attempted write + virtual void completeWrite() = 0; //allows reading of any attempted write + virtual void transmitWriteBuffer() = 0; + + virtual SerialError getError(uint16_t length) = 0; + + virtual uint16_t skip(uint16_t length) = 0; + virtual uint16_t available() = 0; + virtual uint16_t read(uint8_t *buffer, uint16_t length) = 0; + virtual int16_t read() = 0; //-1 if no data + + virtual uint16_t availablePeek() = 0; + virtual uint16_t peek(uint8_t *buffer, uint16_t length) = 0; + virtual int16_t peek() = 0; //-1 if no data + + virtual void resetPeek() = 0; + virtual void skipToPeek() = 0; + + virtual int32_t getDistance(uint8_t value) = 0; //returns the number of bytes until the specified value appears, including the value + +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIAL_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/SerialRingBuffer.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/SerialRingBuffer.hpp new file mode 100644 index 000000000..81d537b61 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/SerialRingBuffer.hpp @@ -0,0 +1,299 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIALRINGBUFFER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIALRINGBUFFER_HPP_ + +#include +#include "Serial.hpp" + +template +class SerialRingBuffer { +private: + // in theory, everything should work, but if the optimiser changes the order a bit, + // there could be conditions (in extreme conditions) where the current read byte gets overwritten... would need to check the machine code to be sure + + // we don't fill in the last possible space, so we know the difference between full and empty... + void (*overflowCallback)(SerialIdentifier); // this is called from both write and attemptWrite - a bit weird but kind of useful... + uint16_t writePos; + uint16_t tempWritePos; + uint16_t readPos; + uint16_t peekPos; + SerialIdentifier id; + uint8_t data[size]; + +public: + SerialRingBuffer() : + overflowCallback(NULL), writePos(0), tempWritePos(0), readPos(0), peekPos(0), id(0) { + } + + SerialRingBuffer(void (*overflowCallback)(SerialIdentifier), SerialIdentifier id) : + overflowCallback(overflowCallback), writePos(0), tempWritePos(0), readPos(0), peekPos(0), id(id) { + } + + void setCallback(void (*overflowCallback)(SerialIdentifier), SerialIdentifier id) { + this->overflowCallback = overflowCallback; + this->id = id; + } + + bool write(uint8_t datum) { + if ((readPos == 0 && writePos == size - 1) || writePos == readPos - 1) { + if (overflowCallback != NULL) { + overflowCallback(id); + } + if ((readPos == 0 && writePos == size - 1) || writePos == readPos - 1) { + return false; + } + } + data[writePos++] = datum; + if (writePos == size) { + writePos = 0; + } + tempWritePos = writePos; + return true; + } + + bool write(const uint8_t *buffer, uint16_t length) { + if (!canWrite(length)) { + if (overflowCallback != NULL) { + overflowCallback(id); + } + if (!canWrite(length)) { + return false; + } + } + for (int i = 0; i < length; i++) { + data[writePos++] = buffer[i]; + if (writePos == size) { + writePos = 0; + } + } + tempWritePos = writePos; + return true; + } + + bool canWrite(uint16_t length) { + uint16_t maxLength; + if (writePos < readPos) { + maxLength = readPos - writePos - 1; // -1 due to not filling last space... + } else { + maxLength = size - writePos + readPos - 1; + } + return length <= maxLength; + } + + bool attemptWrite(const uint8_t *buffer, uint16_t length) { //starts writing without allowing read yet - used to discover if a message will fit + if (!canWrite(length)) { + if (overflowCallback != NULL) { + overflowCallback(id); + } + if (!canWrite(length)) { + return false; + } + } + for (uint16_t i = 0; i < length; i++) { + data[tempWritePos++] = buffer[i]; + if (tempWritePos == size) { + tempWritePos = 0; + } + + } + return true; + } + + bool attemptWrite(uint8_t datum) { + if ((readPos == 0 && tempWritePos == size - 1) || tempWritePos == readPos - 1) { + if (overflowCallback != NULL) { + overflowCallback(id); + } + if ((readPos == 0 && tempWritePos == size - 1) || tempWritePos == readPos - 1) { + return false; + } + } + data[tempWritePos++] = datum; + if (tempWritePos == size) { + tempWritePos = 0; + } + return true; + } + + bool canAttemptWrite(uint16_t length) { + uint16_t maxLength; + if (tempWritePos < readPos) { + maxLength = readPos - tempWritePos - 1; // -1 due to not filling last space... + } else { + maxLength = size - tempWritePos + readPos - 1; // -1 due to not filling last space... + } + return length <= maxLength; + } + + void cancelWrite() { //undoes an attempted write + tempWritePos = writePos; + } + + void completeWrite() { //allows reading of any attempted write + writePos = tempWritePos; + } + + uint16_t skip(uint16_t length) { + if (length == 0) { + peekPos = readPos; + return 0; + } + uint16_t skipped = 0; + if (writePos < readPos) { + if (size - readPos > length) { + readPos += length; + peekPos = readPos; + return length + skipped; + } else { + skipped = size - readPos; + length = length - (size - readPos); + readPos = 0; + } + } + if (writePos - readPos >= length) { + readPos += length; + peekPos = readPos; + return length + skipped; + } else { + uint16_t tmp = writePos - readPos; + readPos = writePos; + peekPos = readPos; + return tmp + skipped; + } + } + + uint16_t available() { + if (writePos < readPos) { + return size - readPos + writePos; + } else { + return writePos - readPos; + } + } + + uint16_t read(uint8_t *buffer, uint16_t length) { + uint16_t i = 0; + while (i < length && readPos != writePos) { + buffer[i++] = data[readPos]; + readPos++; + if (readPos == size) { + readPos = 0; + } + } + peekPos = readPos; + return i; + } + + uint16_t read16(uint16_t *buffer, uint16_t length) { + uint16_t bufferPos = 0; + uint16_t i = 0; + bool halfWord = false; + while (i < length && readPos != writePos) { + if (halfWord) { + buffer[bufferPos++] |= data[readPos] << 8; + } else { + buffer[bufferPos] = data[readPos]; + } + halfWord = !halfWord; + i++; + readPos++; + if (readPos == size) { + readPos = 0; + } + } + peekPos = readPos; + return i; + } + + int16_t read() { //-1 if no data + if (readPos == writePos) { + return -1; + } + uint8_t datum = data[readPos]; + readPos++; + if (readPos == size) { + readPos = 0; + } + peekPos = readPos; + return datum; + } + + uint16_t availablePeek() { + if (writePos < peekPos) { + return size - peekPos + writePos; + } else { + return writePos - peekPos; + } + } + + uint16_t peek(uint8_t *buffer, uint16_t length) { + uint16_t i = 0; + while (i < length && peekPos != writePos) { + buffer[i++] = data[peekPos]; + peekPos++; + if (peekPos == size) { + peekPos = 0; + } + } + return i; + } + int16_t peek() { //-1 if no data + if (peekPos == writePos) { + return -1; + } + uint8_t datum = data[peekPos]; + peekPos++; + if (peekPos == size) { + peekPos = 0; + } + return datum; + } + + void resetPeek() { + peekPos = readPos; + } + + void skipToPeek() { + readPos = peekPos; + } + + //The following are all for DMA based emptying/filling + uint8_t* getCurrentLinearRead() { + return data + readPos; + } + + uint16_t getLinearReadLength() { + if (writePos < readPos) { + return size - readPos; + } else { + return writePos - readPos; + } + } + + uint8_t* getCurrentLinearWrite() { + return data + writePos; + } + + uint16_t getLinearWriteLength() { + if (writePos < readPos) { + return readPos - writePos - 1; + } else { + return size - writePos; // -1 due to not filling last space... + } + } + + void skipWrite(uint16_t length) { + if (writePos + length < size) { + writePos += length; + } else { + writePos = writePos + length - size; + } + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SERIALRINGBUFFER_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Uart.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Uart.hpp new file mode 100644 index 000000000..efcf81c71 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/Uart.hpp @@ -0,0 +1,147 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UART_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UART_HPP_ + +#include +#include "specific/UartInternal.hpp" +#include +#include "Serial.hpp" +#include "SerialRingBuffer.hpp" + +template +class UartManager; + +template +void UartDmaCallback(Dma *dma, DmaTerminationStatus status); + +template +void UartTxOverflowCallback(SerialIdentifier id); + +//always does 8 bit bytes, no parity - just for simplicity +template +class Uart: public Serial { + //TODO: Use a dma for Rx as well? +private: + void (*volatile targetValueCallback)(SerialIdentifier); + void (*rxOverflowCallback)(SerialIdentifier); + SerialRingBuffer rxBuffer; + SerialRingBuffer txBuffer; + UartInternal uart; + DmaMuxRequest requestTx = DMAMUX_NO_MUX; + Dma *txDma = NULL; + uint16_t dmaStartDist = 0; + uint16_t availableData = 0; + uint16_t peekDist = 0; + uint8_t targetValue = 0; + + friend void UartDmaCallback(Dma*, DmaTerminationStatus); + friend void UartTxOverflowCallback(SerialIdentifier); + friend UartManager ; + + void interrupt(); + + void dmaInterrupt(DmaTerminationStatus status); + + void txOverflowInterrupt(); + +public: + void setUart(UartInternal uart, Dma *txDma, DmaMuxRequest requestTx) { + this->id = uart.getId(); + this->uart = uart; + this->txDma = txDma; + this->requestTx = requestTx; + } + void setUart(UartInternal uart, Dma *txDma) { + this->id = uart.getId(); + this->uart = uart; + this->txDma = txDma; + this->requestTx = DMAMUX_NO_MUX; + } + uint32_t getMaxBaud() { + return ClockManager::getClock(SysClock)->getFreqKhz() * 1000 / 16; + } + uint32_t getMinBaud() { + return 0; + } + void init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop); + //the buffer overflow handler can read/skip in the callback to clear space - if it doesn't clear enough space we abort the write + + void setTargetValue(void (*volatile targetValueCallback)(SerialIdentifier), uint8_t targetValue) { + this->targetValueCallback = targetValueCallback; + this->targetValue = targetValue; + } + + void clearTargetValue() { + this->targetValueCallback = NULL; + } + + bool write(uint8_t datum) { + return txBuffer.write(datum); + } + + bool write(const uint8_t *buffer, uint16_t length) { + return txBuffer.write(buffer, length); + } + + bool canWrite(uint16_t length) { + return txBuffer.canWrite(length); + } + + bool attemptWrite(const uint8_t *buffer, uint16_t length) { //starts writing without allowing read yet - used to discover if a message will fit + return txBuffer.attemptWrite(buffer, length); + } + + bool attemptWrite(uint8_t datum) { + return txBuffer.attemptWrite(datum); + } + + bool canAttemptWrite(uint16_t length) { + return txBuffer.canAttemptWrite(length); + } + + void cancelWrite() { //undoes an attempted write + txBuffer.cancelWrite(); + } + + void completeWrite() { //allows reading of any attempted write + txBuffer.completeWrite(); + } + + void transmitWriteBuffer(); + + void clearRxFifo(); + + SerialError getError(uint16_t length); + + uint16_t skip(uint16_t length); + + uint16_t available() { + clearRxFifo(); + return availableData; + } + + uint16_t read(uint8_t *buffer, uint16_t length); + + int16_t read(); //-1 if no data + + uint16_t availablePeek(); + + uint16_t peek(uint8_t *buffer, uint16_t length); + + int16_t peek(); //-1 if no data + + void resetPeek(); + + void skipToPeek(); + + int32_t getDistance(uint8_t value); //returns the number of bytes until the specified value appears, including the value +}; +#include "specific/Uartcpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UART_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/UartManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/UartManager.hpp new file mode 100644 index 000000000..c9ef122ec --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/UartManager.hpp @@ -0,0 +1,60 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UARTMANAGER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UARTMANAGER_HPP_ + +#include +#include "Uart.hpp" +#ifdef USE_USB_SERIAL +#include +#endif + +class Serial; + +template +class UartManager { + typedef typename LL::HW HW; + private: + static Uart uarts[HW::uartCount]; + + static uint16_t mask; + + static void interrupt(uint8_t id); + + UartManager() { + } + +public: + static void maskSerial(SerialIdentifier id) { + mask |= (1 << id); + } + static void unmaskSerial(SerialIdentifier id) { + mask &= ~(1 << id); + } + static bool isMasked(SerialIdentifier id) { + return (mask & (1 << id)) != 0; + } + + static void init(); + + static Serial* getUartById(SerialIdentifier id) { + +#ifdef USE_USB_SERIAL + if (id == HW::uartCount) { + return &Usb::usb; + } +#endif + return uarts + id; + } +}; +template +uint16_t UartManager::mask = 0; + +#include "specific/UartManagercpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_UARTMANAGER_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartInternal.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartInternal.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartManagercpp.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartRegisters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartRegisters.hpp new file mode 100644 index 000000000..430aa6f7f --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/UartRegisters.hpp @@ -0,0 +1,28 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTREGISTERS_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTREGISTERS_HPP_ + +#include + +struct UartRegisters { + volatile uint32_t CR1; + volatile uint32_t CR2; + volatile uint32_t CR3; + volatile uint32_t BRR; + volatile uint32_t GTPR; + volatile uint32_t RTOR; + volatile uint32_t RQR; + volatile uint32_t ISR; + volatile uint32_t ICR; + volatile uint32_t RDR; + volatile uint32_t TDR; + volatile uint32_t PRESC; +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTREGISTERS_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/Uartcpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/Uartcpp.hpp new file mode 100644 index 000000000..027b55788 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/serial-module/lowlevel/specific/Uartcpp.hpp @@ -0,0 +1,303 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTCPP_HPP_ + +#include "../Uart.hpp" +#include "../UartManager.hpp" +#include + +template +void UartDmaCallback(Dma *dma, DmaTerminationStatus status) { + for (int i = 0; i < LL::HW::uartCount; ++i) { + if (((Uart*) UartManager::getUartById(i))->txDma == dma) { + ((Uart*) UartManager::getUartById(i))->dmaInterrupt(status); + break; + } + } +} + +template +void UartTxOverflowCallback(SerialIdentifier id) { + ((Uart*) UartManager::getUartById(id))->txOverflowInterrupt(); +} + +template +void Uart::transmitWriteBuffer() { + if (txDma->lock()) { + dmaStartDist = txBuffer.getLinearReadLength(); + if (dmaStartDist != 0) { + txDma->peripheralWrite(requestTx, txBuffer.getCurrentLinearRead(), true, (uint8_t*) uart.getTransmitRegister(), false, + dmaStartDist, false, Medium, &UartDmaCallback, false); + } else { + txDma->unlock(); + } + } +} + +template +void Uart::clearRxFifo() { + bool fitted = true; // use boolean to avoid atomicity issues... + while (uart.hasRxFifoData()) { + if (!rxBuffer.canWrite(4)) { //this ensures that we can always write the current byte + 2 more bytes (for overflow marking) + fitted = false; + break; + } + int16_t datum = uart.read(); + if (datum < 0) { + if (datum != -SerialFramingError) { + rxBuffer.write(LL::uartEscapingChar); + rxBuffer.write((uint8_t) - datum); + } + } else if (datum == LL::uartEscapingChar) { + rxBuffer.write(LL::uartEscapingChar); + rxBuffer.write(LL::uartEscapingChar); + if (targetValueCallback != NULL && targetValue == LL::uartEscapingChar) { + targetValueCallback(uart.getId()); + } + availableData++; + } else { + rxBuffer.write((uint8_t) datum); + if (targetValueCallback != NULL && targetValue == datum) { + targetValueCallback(uart.getId()); + } + availableData++; + } + } + if (!fitted) { + if (rxBuffer.canWrite(2)) { // the first time we overrun, we can always write this, but if we repeatedly overrun, we might not + rxBuffer.write(LL::uartEscapingChar); + rxBuffer.write(SerialOverflowError); + } + if (rxOverflowCallback != NULL) { + rxOverflowCallback(uart.getId()); + } + while (uart.hasRxFifoData()) { //flush remaining data, as we can't fit it in... + uart.read(); + } + } +} + +template +SerialError Uart::getError(uint16_t length) { + clearRxFifo(); + peekDist = 0; + rxBuffer.resetPeek(); + for (int16_t i = 0; i < length; ++i) { + int16_t val = rxBuffer.peek(); + if (val == -1) { + break; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.peek(); + if (val != LL::uartEscapingChar) { + rxBuffer.resetPeek(); + return (SerialError) val; + } + } + } + rxBuffer.resetPeek(); + return SerialNoError; +} + +template +uint16_t Uart::read(uint8_t *buffer, uint16_t length) { + clearRxFifo(); + peekDist = 0; + uint16_t i; + for (i = 0; i < length; ++i) { + int16_t val = rxBuffer.read(); + if (val == -1) { + break; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.read(); + if (val == LL::uartEscapingChar) { + buffer[i] = val; + } else { + i--; + } + } else { + buffer[i] = val; + } + } + availableData -= i; + return i; +} + +template +int16_t Uart::read() { + clearRxFifo(); + peekDist = 0; + while (true) { + int16_t val = rxBuffer.read(); + if (val == LL::uartEscapingChar) { + val = rxBuffer.read(); + if (val == LL::uartEscapingChar) { + availableData--; + return val; + } + } else { + if (val != -1) { + availableData--; + } + return val; // this includes if read returned -1 + } + } + +} + +template +int32_t Uart::getDistance(uint8_t value) { + clearRxFifo(); + rxBuffer.resetPeek(); + uint16_t i = 0; + while (true) { + int16_t val = rxBuffer.peek(); + if (val == -1) { + rxBuffer.resetPeek(); + return -1; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.peek(); + if (val == LL::uartEscapingChar) { + if (value == val) { + break; + } + } else { + i--; + } + } else if (val == value) { + break; + } + i++; + } + rxBuffer.resetPeek(); + peekDist = 0; + return i + 1; +} + +template +uint16_t Uart::skip(uint16_t length) { // there is no efficient skip, as we need to exclude escaped characters + clearRxFifo(); + uint16_t i; + for (i = 0; i < length; ++i) { + int16_t val = rxBuffer.read(); + if (val == -1) { + break; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.read(); + if (val != LL::uartEscapingChar) { + i--; + } + } + } + availableData -= i; + peekDist = 0; + return i; +} + +template +uint16_t Uart::availablePeek() { + clearRxFifo(); + return availableData - peekDist; +} + +template +uint16_t Uart::peek(uint8_t *buffer, uint16_t length) { + clearRxFifo(); + uint16_t i; + for (i = 0; i < length; ++i) { + int16_t val = rxBuffer.peek(); + if (val == -1) { + break; + } else if (val == LL::uartEscapingChar) { + val = rxBuffer.peek(); + if (val == LL::uartEscapingChar) { + buffer[i] = val; + } else { + i--; + } + } else { + buffer[i] = val; + } + } + peekDist += i; + return i; +} + +template +int16_t Uart::peek() { + clearRxFifo(); + while (true) { + int16_t val = rxBuffer.peek(); + if (val == LL::uartEscapingChar) { + val = rxBuffer.peek(); + if (val == LL::uartEscapingChar) { + peekDist++; + return val; + } + } else { + if (val != -1) { + peekDist++; + } + return val; // this includes if read returned -1 + } + } +} //-1 if no data + +template +void Uart::resetPeek() { + clearRxFifo(); + peekDist = 0; + rxBuffer.resetPeek(); +} + +template +void Uart::skipToPeek() { + clearRxFifo(); + availableData -= peekDist; + peekDist = 0; + rxBuffer.skipToPeek(); +} + +template +void Uart::txOverflowInterrupt() { + transmitWriteBuffer(); // in case somebody forgot, as that would do it... + uint16_t remainingLength = txDma->fetchRemainingTransferLength(); + txBuffer.skip(dmaStartDist - remainingLength); // move along as much as the DMA has allowed in the time since we last did that + dmaStartDist -= remainingLength; +} + +template +void Uart::dmaInterrupt(DmaTerminationStatus status) { + //FIXME: Do something with interesting failure states... + (void) status; + txBuffer.skip(dmaStartDist); + dmaStartDist = txBuffer.getLinearReadLength(); + txDma->halt(); + if (dmaStartDist == 0) { + txDma->unlock(); + } else { + txDma->peripheralWrite(requestTx, txBuffer.getCurrentLinearRead(), true, (uint8_t*) uart.getTransmitRegister(), false, + dmaStartDist, false, Medium, &UartDmaCallback, false); + } +} + +template +void Uart::init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop) { +// buffer overflow callback can be NULL + this->rxOverflowCallback = bufferOverflowCallback; + this->txBuffer.setCallback(&UartTxOverflowCallback, uart.getId()); + uart.init(baud_rate, singleNdoubleStop); +} + +template +void Uart::interrupt() { + clearRxFifo(); + uart.clearFlags(); +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTCPP_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/ZcodeSystemModule.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/ZcodeSystemModule.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/ZcodeSystemModule.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/ZcodeSystemModule.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/clock/ClockManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/clock/ClockManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/clock/ClockManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/clock/ClockManager.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/clock/SystemMilliClock.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/clock/SystemMilliClock.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/clock/SystemMilliClock.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/clock/SystemMilliClock.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/dma/DmaManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/dma/DmaManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/dma/DmaManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/dma/DmaManager.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/interrupt/InterruptManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/interrupt/InterruptManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/system/interrupt/InterruptManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/system/interrupt/InterruptManager.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/ZcodeUdpModule.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/ZcodeUdpModule.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/ZcodeUdpModule.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/ZcodeUdpModule.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/channels/EthernetUdpChannel.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/channels/EthernetUdpChannel.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/channels/EthernetUdpChannel.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/channels/EthernetUdpChannel.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/SPI.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/SPI.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/SPI.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/SPI.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Client.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Client.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Client.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Client.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Dhcp.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Dhcp.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Dhcp.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Dhcp.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Dns.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Dns.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Dns.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Dns.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Ethernet.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Ethernet.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Ethernet.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Ethernet.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetClient.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetClient.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetClient.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetClient.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetServer.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetServer.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetServer.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetServer.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetUdp.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetUdp.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetUdp.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/EthernetUdp.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Ethernetcpp.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Ethernetcpp.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Ethernetcpp.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Ethernetcpp.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/IPAddress.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/IPAddress.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/IPAddress.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/IPAddress.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Server.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Server.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Server.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Server.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Udp.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Udp.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Udp.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/Udp.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/socket.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/socket.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/socket.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/socket.h diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/utility/w5100.h b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/utility/w5100.h similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/utility/w5100.h rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/udp-module/lowlevel/src/utility/w5100.h diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/Usb.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/Usb.hpp new file mode 100644 index 000000000..d9add6a49 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/Usb.hpp @@ -0,0 +1,162 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_USB_MODULE_LOWLEVEL_USB_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_USB_MODULE_LOWLEVEL_USB_HPP_ + +#include +#include +#include +#include "specific/UsbRegisters.hpp" +#include "specific/UsbInternal.hpp" + +template +class Usb: public Serial { +private: + + static void UsbTargetValueCallback() { + usb.targetValueCallback(usb.getId()); + } + + UsbInternal *internal = &UsbInternal::usbI; + void (*volatile targetValueCallback)(SerialIdentifier) = NULL; + +public: + static Usb usb; + + void setId(SerialIdentifier id) { + this->id = id; + } + uint32_t getMaxBaud() { + return 0xFFFFFFFF; + } + uint32_t getMinBaud() { + return 0; + } + + void init(void (*volatile bufferOverflowCallback)(SerialIdentifier), uint32_t baud_rate, bool singleNdoubleStop) { + (void) bufferOverflowCallback; + (void) baud_rate; + (void) singleNdoubleStop; + // we do nothing with these arguments, they are merely for Uart compatibility... + internal->setup(); + } + + void setTargetValue(void (*volatile targetValueCallback)(SerialIdentifier), uint8_t targetValue) { + this->targetValueCallback = targetValueCallback; + internal->setTargetValue(&Usb::UsbTargetValueCallback, targetValue); + } + + void clearTargetValue() { + internal->clearTargetValue(); + } + + bool write(uint8_t datum) { + return internal->getTxBuffer()->write(datum); + } + + bool write(const uint8_t *buffer, uint16_t length) { + return internal->getTxBuffer()->write(buffer, length); + } + + bool canWrite(uint16_t length) { + return internal->getTxBuffer()->canWrite(length); + } + + bool attemptWrite(const uint8_t *buffer, uint16_t length) { //starts writing without allowing read yet - used to discover if a message will fit + return internal->getTxBuffer()->attemptWrite(buffer, length); + } + + bool attemptWrite(uint8_t datum) { + return internal->getTxBuffer()->attemptWrite(datum); + } + + bool canAttemptWrite(uint16_t length) { + return internal->getTxBuffer()->canAttemptWrite(length); + } + + void cancelWrite() { //undoes an attempted write + internal->getTxBuffer()->cancelWrite(); + } + + void completeWrite() { //allows reading of any attempted write + internal->getTxBuffer()->completeWrite(); + } + + void transmitWriteBuffer() { + internal->checkBuffers(); + } + + SerialError getError(uint16_t length) { + (void) length; + return SerialNoError; + } + + uint16_t skip(uint16_t length) { + uint16_t result = internal->getRxBuffer()->skip(length); + internal->checkBuffers(); + return result; + } + + uint16_t available() { + return internal->getRxBuffer()->available(); + } + + uint16_t read(uint8_t *buffer, uint16_t length) { + uint16_t result = internal->getRxBuffer()->read(buffer, length); + internal->checkBuffers(); + return result; + } + + int16_t read() { //-1 if no data + int16_t result = internal->getRxBuffer()->read(); + internal->checkBuffers(); + return result; + } + + uint16_t availablePeek() { + return internal->getRxBuffer()->availablePeek(); + } + + uint16_t peek(uint8_t *buffer, uint16_t length) { + return internal->getRxBuffer()->peek(buffer, length); + } + + int16_t peek() { //-1 if no data + return internal->getRxBuffer()->peek(); + } + + void resetPeek() { + internal->getRxBuffer()->resetPeek(); + } + + void skipToPeek() { + internal->getRxBuffer()->skipToPeek(); + internal->checkBuffers(); + } + + int32_t getDistance(uint8_t value) { //returns the number of bytes until the specified value appears, including the value + int16_t i = 1; + internal->getRxBuffer()->resetPeek(); + int16_t val = internal->getRxBuffer()->peek(); + while (val != value && val != -1) { + val = internal->getRxBuffer()->peek(); + i++; + } + internal->getRxBuffer()->resetPeek(); + if (val == -1) { + return -1; + } else { + return i; + } + } +}; + +template +Usb Usb::usb; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_USB_MODULE_LOWLEVEL_USB_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/specific/UsbInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/specific/UsbInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/specific/UsbInternal.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/specific/UsbInternal.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/specific/UsbRegisters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/specific/UsbRegisters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/specific/UsbRegisters.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usb-module/lowlevel/specific/UsbRegisters.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/ZcodeUsbcPDModule.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/ZcodeUsbcPDModule.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/ZcodeUsbcPDModule.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/ZcodeUsbcPDModule.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDCapabilitiesCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDCapabilitiesCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDCapabilitiesCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSetCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSetCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSetCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSetCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceExtendedCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceExtendedCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceExtendedCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceExtendedCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceStatusCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceStatusCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceStatusCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDSourceStatusCommand.hpp diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDStatusCommand.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDStatusCommand.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDStatusCommand.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/commands/ZcodeUsbcPDStatusCommand.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/Ucpd.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/Ucpd.hpp new file mode 100644 index 000000000..2f19c92e1 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/Ucpd.hpp @@ -0,0 +1,155 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPD_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPD_HPP_ + +#include + +#pragma GCC push_options +#pragma GCC optimize ("-O2") +#include "specific/UcpdInternal.hpp" +#include "UcpdParsedExtendedSourceCapabilitiesMessage.hpp" +#include "UcpdParsedManufacturerInfoMessage.hpp" +#include "UcpdParsedPPSStatusMessage.hpp" +#include "UcpdParsedStatusMessage.hpp" + +template +class Ucpd { + static PowerStatus status; + static uint16_t maxCurrent; // in 10mA + static uint16_t minVoltage; // in 50mV + static uint16_t maxVoltage; // in 50mV + static UcpdSourceCapabilitiesMessage sourceCapMessage; + + static UcpdParsedExtendedSourceCapabilitiesMessage extendedSourceCapMessage; + static UcpdParsedStatusMessage statusMessage; + static UcpdParsedPPSStatusMessage PPSStatusMessage; + static UcpdParsedManufacturerInfoMessage manufacturerInfoMessage; + + static void powerStatusChangeHandler(PowerStatus newStatus, PowerContract contract) { + if (newStatus != ContractMade || status == Negotiating) { + status = newStatus; + } + maxCurrent = contract.getCurrent(); + minVoltage = contract.getMinVoltage(); + maxVoltage = contract.getMaxVoltage(); + if (newStatus == ContractMade) { + UcpdInternal::sendGetManufacturerInfo(); + } + } + static void messageOfInterestHandler(UcpdMessage *message) { + if (message->getUcpdMessageType() == ExtendedMessage) { + switch (((UcpdExtendedMessage*) message)->getUcpdExtendedMessageType()) { + case PPSStatus: + PPSStatusMessage = UcpdParsedPPSStatusMessage((UcpdExtendedMessage*) message); + break; + case ManufacturerInfo: + UcpdInternal::sendGetStatus(); + manufacturerInfoMessage = UcpdParsedManufacturerInfoMessage((UcpdExtendedMessage*) message); + break; + case Status: + UcpdInternal::sendGetSourceCapExtended(); + statusMessage = UcpdParsedStatusMessage((UcpdExtendedMessage*) message); + break; + case SourceCapabilitiesExtended: + UcpdInternal::sendGetPPSStatus(); + extendedSourceCapMessage = UcpdParsedExtendedSourceCapabilitiesMessage((UcpdExtendedMessage*) message); + break; + default: + break; + } + } else if (message->getUcpdMessageType() == DataMessage && ((UcpdDataMessage*) message)->getUcpdDataMessageType() == SourceCapabilities) { + sourceCapMessage = *((UcpdSourceCapabilitiesMessage*) message); + } + } + +public: + static void init(uint32_t *unInitialisedStore, uint16_t maxCurrent, uint16_t minVoltage, uint16_t maxVoltage) { + UcpdInternal::setPowerStatusChangeCallback(&Ucpd::powerStatusChangeHandler); + UcpdInternal::setMessageOfInterestCallback(&Ucpd::messageOfInterestHandler); + UcpdInternal::init(unInitialisedStore, maxCurrent, minVoltage, maxVoltage, HighestPower10DefaultLow); + } + + static PowerStatus getPowerStatus() { + return status; + } + + static uint16_t getMaxCurrent() { + return maxCurrent; + } + + static uint16_t getMinVoltage() { + return minVoltage; + } + + static uint16_t getMaxVoltage() { + return maxVoltage; + } + + static void renegotiateAll(uint16_t maxCurrent, uint16_t minVoltage, uint16_t maxVoltage) { + status = Negotiating; + UcpdInternal::changeAll(maxCurrent, minVoltage, maxVoltage, HighestPower10DefaultLow); + } + + static void renegotiateVoltage(uint16_t minVoltage, uint16_t maxVoltage) { + status = Negotiating; + UcpdInternal::changeTargetVoltage(minVoltage, maxVoltage, HighestPower10DefaultLow); + } + + static void renegotiateCurrent(uint16_t maxCurrent) { + status = Negotiating; + UcpdInternal::setTargetCurrent(maxCurrent); + } + + static void updateSourceStatus() { + UcpdInternal::sendGetStatus(); + } + + static void tick() { + UcpdInternal::tick(); + } + + static const UcpdSourceCapabilitiesMessage* getSourceCapMessage() { + return &sourceCapMessage; + } + static const UcpdParsedExtendedSourceCapabilitiesMessage* getExtendedSourceCapMessage() { + return &extendedSourceCapMessage; + } + static const UcpdParsedStatusMessage* getStatusMessage() { + return &statusMessage; + } + static const UcpdParsedPPSStatusMessage* getPPSStatusMessage() { + return &PPSStatusMessage; + } + static const UcpdParsedManufacturerInfoMessage* getManufacturerInfoMessage() { + return &manufacturerInfoMessage; + } +}; +template +PowerStatus Ucpd::status = Negotiating; +template +uint16_t Ucpd::maxCurrent = 15; // in 10mA +template +uint16_t Ucpd::minVoltage = 100; // in 50mV +template +uint16_t Ucpd::maxVoltage = 100; // in 50mV + +template +UcpdSourceCapabilitiesMessage Ucpd::sourceCapMessage; +template +UcpdParsedExtendedSourceCapabilitiesMessage Ucpd::extendedSourceCapMessage; +template +UcpdParsedStatusMessage Ucpd::statusMessage; +template +UcpdParsedPPSStatusMessage Ucpd::PPSStatusMessage; +template +UcpdParsedManufacturerInfoMessage Ucpd::manufacturerInfoMessage; + +#pragma GCC pop_options + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPD_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp new file mode 100644 index 000000000..f508763d7 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp @@ -0,0 +1,221 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDEXTENDEDSOURCECAPABILITIESMESSAGE_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDEXTENDEDSOURCECAPABILITIESMESSAGE_HPP_ + +#include +#include "specific/UcpdInternal.hpp" + +enum UcpdCapLoadStepRate { // per us + mA150, mA500 +}; +enum UcpdCapLoadStepMagnitude { // percent + IoC25, IoC90 +}; +enum UcpdCapTouchTemp { + Default, TS1, TS2 +}; +struct UcpdCapVoltageRegulation { + UcpdCapLoadStepRate loadStepRate :2; + UcpdCapLoadStepMagnitude loadStepMagnitude :2; +}; + +struct UcpdCapCompliance { + bool LPSCompliant :1; + bool PS1Compliant :1; + bool PS2Compliant :1; + uint8_t getField() { + return (LPSCompliant ? 0x1 : 0) + | (PS1Compliant ? 0x2 : 0) + | (PS2Compliant ? 0x4 : 0); + } +}; + +struct UcpdCapTouchCurrent { + bool lowTouchCurrentEPS :1; + bool groundPinSupported :1; + bool groundPinIntendedForEarth :1; + + uint8_t getField() { + return (lowTouchCurrentEPS ? 0x1 : 0) + | (groundPinSupported ? 0x2 : 0) + | (groundPinIntendedForEarth ? 0x4 : 0); + } +}; + +struct UcpdCapPeekCurrent { + uint8_t overloadCurrent :5; // 10% increments, max:250% + uint8_t overloadPeriod :6; // 20ms units + uint8_t dutyCycle :4; // 5% increments + bool vBusVoltageDroop :1; + + uint16_t getField() { + uint16_t peak = 0; + peak |= overloadCurrent; + peak |= overloadPeriod << 5; + peak |= dutyCycle << 11; + peak |= vBusVoltageDroop ? 0x8000 : 0; + return peak; + } +}; + +struct UcpdCapSourceInputs { + bool externalSupplyPresent :1; + bool externalSupplyUnconstrained :1; + bool internalBatteryPresent :1; +}; + +template +class UcpdParsedExtendedSourceCapabilitiesMessage { + bool valid = false; + uint16_t VID = 0; + uint16_t PID = 0; + uint32_t XID = 0; + + uint8_t fwVersion = 0; + uint8_t hwVersion = 0; + + UcpdCapVoltageRegulation regulation; + + uint8_t holdupTime = 3; + + UcpdCapCompliance compliance; + UcpdCapTouchCurrent touchCurrent; + + UcpdCapPeekCurrent peekCurrent1; + UcpdCapPeekCurrent peekCurrent2; + UcpdCapPeekCurrent peekCurrent3; + + UcpdCapTouchTemp touchTemp = Default; + UcpdCapSourceInputs sourceInputs; + uint8_t numberOfFixedBatteries = 0; + uint8_t numberOfHotswappableBatteries = 0; + uint8_t sourcePdpRating = 0; + +public: + UcpdParsedExtendedSourceCapabilitiesMessage() { + } + UcpdParsedExtendedSourceCapabilitiesMessage(UcpdExtendedMessage *message) { + valid = true; + VID = message->getData()[1] << 8 | message->getData()[0]; + PID = message->getData()[3] << 8 | message->getData()[2]; + XID = message->getData()[7] << 24 | message->getData()[6] << 16 | message->getData()[5] << 8 | message->getData()[4]; + fwVersion = message->getData()[8]; + hwVersion = message->getData()[9]; + + regulation.loadStepRate = (UcpdCapLoadStepRate) (message->getData()[10] & 0x3); + regulation.loadStepMagnitude = (UcpdCapLoadStepMagnitude) ((message->getData()[10] >> 2) & 0x1); + + holdupTime = message->getData()[11]; + + compliance.LPSCompliant = (message->getData()[12] & 0x01) != 0; + compliance.PS1Compliant = (message->getData()[12] & 0x02) != 0; + compliance.PS2Compliant = (message->getData()[12] & 0x04) != 0; + + touchCurrent.lowTouchCurrentEPS = (message->getData()[13] & 0x01) != 0; + touchCurrent.groundPinSupported = (message->getData()[13] & 0x02) != 0; + touchCurrent.groundPinIntendedForEarth = (message->getData()[13] & 0x04) != 0; + + peekCurrent1.overloadCurrent = (message->getData()[15] & 0x1F); + peekCurrent1.overloadPeriod = (message->getData()[15] & 0xE0) >> 5 | (message->getData()[14] & 0x07) << 3; + peekCurrent1.dutyCycle = (message->getData()[14] & 0x78) >> 3; + peekCurrent1.vBusVoltageDroop = (message->getData()[14] & 0x80) != 0; + + peekCurrent2.overloadCurrent = (message->getData()[17] & 0x1F); + peekCurrent2.overloadPeriod = (message->getData()[17] & 0xE0) >> 5 | (message->getData()[16] & 0x07) << 3; + peekCurrent2.dutyCycle = (message->getData()[16] & 0x78) >> 3; + peekCurrent2.vBusVoltageDroop = (message->getData()[16] & 0x80) != 0; + + peekCurrent3.overloadCurrent = (message->getData()[19] & 0x1F); + peekCurrent3.overloadPeriod = (message->getData()[19] & 0xE0) >> 5 | (message->getData()[18] & 0x07) << 3; + peekCurrent3.dutyCycle = (message->getData()[18] & 0x78) >> 3; + peekCurrent3.vBusVoltageDroop = (message->getData()[18] & 0x80) != 0; + + touchTemp = (UcpdCapTouchTemp) (message->getData()[20]); + + sourceInputs.externalSupplyPresent = (message->getData()[21] & 0x01) != 0; + sourceInputs.externalSupplyUnconstrained = (message->getData()[21] & 0x02) != 0; + sourceInputs.internalBatteryPresent = (message->getData()[21] & 0x04) != 0; + numberOfFixedBatteries = (message->getData()[22] & 0x0F); + numberOfHotswappableBatteries = (message->getData()[22] & 0xF0) >> 4; + + sourcePdpRating = message->getData()[23]; + } + bool isValid() const { + return valid; + } + + uint16_t getVID() const { + return VID; + } + + uint16_t getPID() const { + return PID; + } + + uint32_t getXID() const { + return XID; + } + + uint8_t getFwVersion() const { + return fwVersion; + } + + uint8_t getHwVersion() const { + return hwVersion; + } + + UcpdCapVoltageRegulation getVoltageRegulation() const { + return regulation; + } + + uint8_t getHoldupTime() const { + return holdupTime; + } + + UcpdCapCompliance getCompliance() const { + return compliance; + } + + UcpdCapTouchCurrent getTouchCurrent() const { + return touchCurrent; + } + + UcpdCapPeekCurrent getPeekCurrent1() const { + return peekCurrent1; + } + UcpdCapPeekCurrent getPeekCurrent2() const { + return peekCurrent2; + } + UcpdCapPeekCurrent getPeekCurrent3() const { + return peekCurrent3; + } + + UcpdCapTouchTemp getTouchTemp() const { + return touchTemp; + } + + UcpdCapSourceInputs getSourceInputs() const { + return sourceInputs; + } + + uint8_t getNumberOfFixedBatteries() const { + return numberOfFixedBatteries; + } + + uint8_t getNumberOfHotswappableBatteries() const { + return numberOfHotswappableBatteries; + } + + uint8_t getSourcePdpRating() const { + return sourcePdpRating; + } + +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDEXTENDEDSOURCECAPABILITIESMESSAGE_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedManufacturerInfoMessage.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedManufacturerInfoMessage.hpp new file mode 100644 index 000000000..f194f7bcc --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedManufacturerInfoMessage.hpp @@ -0,0 +1,51 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDMANUFACTURERINFOMESSAGE_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDMANUFACTURERINFOMESSAGE_HPP_ + +#include +#include "specific/UcpdInternal.hpp" + +template +class UcpdParsedManufacturerInfoMessage { + bool valid = false; + uint16_t VID = 0; + uint16_t PID = 0; + uint8_t data[21]; + uint8_t dataLength = 0; + +public: + UcpdParsedManufacturerInfoMessage() { + } + UcpdParsedManufacturerInfoMessage(UcpdExtendedMessage *message) { + valid = true; + VID = message->getData()[1] << 8 | message->getData()[0]; + PID = message->getData()[3] << 8 | message->getData()[2]; + while (message->getData()[dataLength + 4] != 0) { + data[dataLength] = message->getData()[4 + dataLength]; + dataLength++; + } + } + bool isValid() const { + return valid; + } + uint16_t getVID() const { + return VID; + } + uint16_t getPID() const { + return PID; + } + uint8_t getDataLength() const { + return dataLength; + } + const uint8_t* getData() const { + return data; + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDMANUFACTURERINFOMESSAGE_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedPPSStatusMessage.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedPPSStatusMessage.hpp new file mode 100644 index 000000000..01b85fda7 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedPPSStatusMessage.hpp @@ -0,0 +1,52 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDPPSSTATUSMESSAGE_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDPPSSTATUSMESSAGE_HPP_ + +#include +#include "specific/UcpdInternal.hpp" +#include "UcpdParsedStatusMessage.hpp" + +struct UcpdPPSStatusEventFlags { + UcpdStatusTemperatureStatus presentTemp :2; + bool isInCurrentLimit :1; +}; + +template +class UcpdParsedPPSStatusMessage { + bool valid = false; + uint16_t outputVoltage = 0; + uint8_t outputCurrent = 0; + UcpdPPSStatusEventFlags statusEventFlags; + +public: + UcpdParsedPPSStatusMessage() { + + } + UcpdParsedPPSStatusMessage(UcpdExtendedMessage *message) { + valid = true; + outputVoltage = message->getData()[1] << 8 | message->getData()[0]; + outputCurrent = message->getData()[2]; + statusEventFlags.presentTemp = (UcpdStatusTemperatureStatus) ((message->getData()[3] >> 1) & 0x03); + statusEventFlags.isInCurrentLimit = (message->getData()[3] & 0x08) != 0; + } + bool isValid() const { + return valid; + } + uint16_t getOutputVoltage() const { + return outputVoltage; + } + uint8_t getOutputCurrent() const { + return outputCurrent; + } + UcpdPPSStatusEventFlags getStatusEventFlags() const { + return statusEventFlags; + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDPPSSTATUSMESSAGE_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedStatusMessage.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedStatusMessage.hpp new file mode 100644 index 000000000..cf34db75a --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/UcpdParsedStatusMessage.hpp @@ -0,0 +1,166 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDSTATUSMESSAGE_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDSTATUSMESSAGE_HPP_ + +#include +#include "specific/UcpdInternal.hpp" + +struct UcpdStatusPresentInput { + bool externalPower :1; + bool externalAc :1; + bool internalBatteryPower :1; + bool internalOtherPower :1; + + uint8_t getField() const { + return (externalAc ? 0x1 : 0) | (externalPower ? 0x2 : 0) | (internalBatteryPower ? 0x4 : 0) | (internalOtherPower ? 0x8 : 0); + } +}; +struct UcpdStatusCurrentBatterySource { + bool fixedBattery1 :1; + bool fixedBattery2 :1; + bool fixedBattery3 :1; + bool fixedBattery4 :1; + bool hotswappableBattery1 :1; + bool hotswappableBattery2 :1; + bool hotswappableBattery3 :1; + bool hotswappableBattery4 :1; + + uint8_t getField() const { + return (fixedBattery1 ? 0x1 : 0) | (fixedBattery2 ? 0x2 : 0) | + (fixedBattery3 ? 0x4 : 0) | (fixedBattery4 ? 0x8 : 0) | + (hotswappableBattery1 ? 0x10 : 0) | (hotswappableBattery2 ? 0x20 : 0) | + (hotswappableBattery3 ? 0x40 : 0) | (hotswappableBattery4 ? 0x80 : 0); + } +}; + +struct UcpdStatusEventFlags { + bool OCP :1; + bool OTP :1; + bool OVP :1; + bool CF :1; // CF/notCV + + uint8_t getField() const { + return (OCP ? 0x1 : 0) | (OVP ? 0x2 : 0) | + (OTP ? 0x4 : 0) | (CF ? 0x8 : 0); + } +}; +enum UcpdStatusTemperatureStatus { + UcpdStatusTempNotSupported = 0, + UcpdStatusTempNormal = 1, + UcpdStatusTempWarning = 2, + UcpdStatusTempOverTemperature = 3, +}; +struct UcpdStatusPowerStatus { + bool limitedByCable :1; + bool limitedByOtherPorts :1; + bool limitedByExternalPower :1; + bool limitedByEvents :1; + bool limitedByTemperatue :1; + + uint8_t getField() const { + return (limitedByCable ? 0x1 : 0) | (limitedByOtherPorts ? 0x2 : 0) | (limitedByExternalPower ? 0x4 : 0) | + (limitedByEvents ? 0x8 : 0) | (limitedByTemperatue ? 0x10 : 0); + } +}; +enum UcpdPowerState { + UcpdPowerStateNotSupported = 0, + UcpdPowerStateS0 = 1, + UcpdPowerStateModernStandby = 2, + UcpdPowerStateS3 = 3, + UcpdPowerStateS4 = 4, + UcpdPowerStateS5 = 5, + UcpdPowerStateG3 = 6, +}; +enum UcpdPowerStateIndicator { + OffLED = 0, + OnLED = 1, + BlinkingLED = 2, + BreathingLED = 3 +}; +struct UcpdStatusPowerStateChange { + UcpdPowerState state :3; + UcpdPowerStateIndicator indicator :3; +}; + +template +class UcpdParsedStatusMessage { + bool valid = false; + uint8_t internalTemperature = 0; + UcpdStatusPresentInput input; + UcpdStatusCurrentBatterySource batterySource; + UcpdStatusEventFlags eventFlags; + UcpdStatusTemperatureStatus tempStatus = UcpdStatusTempNotSupported; + + UcpdStatusPowerStatus powerStatus; + UcpdStatusPowerStateChange powerStateChange; + +public: + UcpdParsedStatusMessage() { + } + UcpdParsedStatusMessage(UcpdExtendedMessage *message) { + valid = true; + internalTemperature = message->getData()[0]; + + input.externalAc = (message->getData()[1] & 0x02) != 0; + input.externalPower = (message->getData()[1] & 0x04) != 0; + input.internalBatteryPower = (message->getData()[1] & 0x08) != 0; + input.internalOtherPower = (message->getData()[1] & 0x10) != 0; + + batterySource.fixedBattery1 = (message->getData()[2] & 0x01) != 0; + batterySource.fixedBattery2 = (message->getData()[2] & 0x02) != 0; + batterySource.fixedBattery3 = (message->getData()[2] & 0x04) != 0; + batterySource.fixedBattery4 = (message->getData()[2] & 0x08) != 0; + batterySource.hotswappableBattery1 = (message->getData()[2] & 0x10) != 0; + batterySource.hotswappableBattery2 = (message->getData()[2] & 0x20) != 0; + batterySource.hotswappableBattery3 = (message->getData()[2] & 0x40) != 0; + batterySource.hotswappableBattery4 = (message->getData()[2] & 0x80) != 0; + + eventFlags.OCP = (message->getData()[3] & 0x02) != 0; + eventFlags.OVP = (message->getData()[3] & 0x04) != 0; + eventFlags.OTP = (message->getData()[3] & 0x08) != 0; + eventFlags.CF = (message->getData()[3] & 0x10) != 0; + + tempStatus = (UcpdStatusTemperatureStatus) ((message->getData()[4] >> 1) & 0x03); + + powerStatus.limitedByCable = (message->getData()[5] & 0x02) != 0; + powerStatus.limitedByOtherPorts = (message->getData()[5] & 0x04) != 0; + powerStatus.limitedByExternalPower = (message->getData()[5] & 0x08) != 0; + powerStatus.limitedByEvents = (message->getData()[5] & 0x10) != 0; + powerStatus.limitedByTemperatue = (message->getData()[5] & 0x20) != 0; + + powerStateChange.state = (UcpdPowerState) (message->getData()[6] & 0x07); + powerStateChange.indicator = (UcpdPowerStateIndicator) ((message->getData()[6] >> 3) & 0x07); + } + bool isValid() const { + return valid; + } + uint8_t getInternalTemperature() const { + return internalTemperature; + } + UcpdStatusPresentInput getPowerInput() const { + return input; + } + UcpdStatusCurrentBatterySource getBatteryInput() const { + return batterySource; + } + UcpdStatusEventFlags getEventFlags() const { + return eventFlags; + } + UcpdStatusTemperatureStatus getTemperatureStatus() const { + return tempStatus; + } + UcpdStatusPowerStatus getPowerStatus() const { + return powerStatus; + } + UcpdStatusPowerStateChange getPowerStateChange() const { + return powerStateChange; + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_USBC_PD_MODULE_LOWLEVEL_UCPDPARSEDSTATUSMESSAGE_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32/src/main/c++/arm-no-os/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp diff --git a/receivers/native/arm/no-os/stm32f0/pom.xml b/receivers/generic-c++/zll/arm/no-os/stm32f0/pom.xml similarity index 100% rename from receivers/native/arm/no-os/stm32f0/pom.xml rename to receivers/generic-c++/zll/arm/no-os/stm32f0/pom.xml diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/arm-core-module/persistence/FlashPage.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/arm-core-module/persistence/FlashPage.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/arm-core-module/persistence/FlashPage.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/arm-core-module/persistence/FlashPage.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cInternal.hpp new file mode 100644 index 000000000..b67e4a333 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cInternal.hpp @@ -0,0 +1,406 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CINTERNAL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CINTERNAL_HPP_ + +#include +#include +#include +#include +#include + +struct I2cState { + uint16_t repeatCount :10; + bool hasTx :1; + bool hasRx :1; + bool hasTxRx :1; + bool txDone :1; + bool lockBool :1; + bool tenBit :1; +}; +template +class I2cInternal { +private: + GpioPinName sda; + PinAlternateFunction sdaFunction; + GpioPinName scl; + PinAlternateFunction sclFunction; + I2cRegisters *registers; + + void setupCr1(bool setupInterrupts) { + const uint32_t enableI2cRxInterrupt = 0x04; + const uint32_t enableI2cTxInterrupt = 0x02; + const uint32_t enableI2cStopInterrupt = 0x20; + const uint32_t enableI2cNackInterrupt = 0x10; + const uint32_t enableI2cTransmitCompleteInterrupt = 0x40; + const uint32_t enableI2cErrorInterrupt = 0x80; + uint32_t cr1r = registers->CR1; + cr1r &= ~(enableI2cRxInterrupt | enableI2cTxInterrupt | + enableI2cErrorInterrupt | enableI2cTransmitCompleteInterrupt | enableI2cStopInterrupt | enableI2cNackInterrupt); + if (setupInterrupts) { + cr1r |= enableI2cErrorInterrupt | enableI2cTransmitCompleteInterrupt | enableI2cStopInterrupt + | enableI2cNackInterrupt | enableI2cRxInterrupt | enableI2cTxInterrupt; + } + registers->CR1 = cr1r; + } +public: + I2cInternal() : + sda(PA_1), sdaFunction(0), scl(PA_1), sclFunction(0), registers(NULL) { + } + I2cInternal(GpioPinName sda, PinAlternateFunction sdaFunction, GpioPinName scl, PinAlternateFunction sclFunction, I2cRegisters *registers) : + sda(sda), sdaFunction(sdaFunction), scl(scl), sclFunction(sclFunction), registers(registers) { + } + void operator=(const I2cInternal &other) { + sda = other.sda; + sdaFunction = other.sdaFunction; + scl = other.scl; + sclFunction = other.sclFunction; + registers = other.registers; + } + + void activateClock(I2cIdentifier id); + void activatePins(); + bool recoverSdaJam(); + + void setFrequency(Clock *clock, I2cFrequency freq); + + void enablePeripheral() { + const uint32_t enableI2c = 0x1; + if (registers != NULL) { + setupErrorInterrupt(); + registers->CR1 |= enableI2c; + } + } + + void disablePeripheral() { + const uint32_t enableI2c = 0x1; + if (registers != NULL) { + setupCr1(false); + registers->CR1 &= ~enableI2c; + } + } + + void setStop() { + const uint32_t i2cStopGenerate = 0x4000; + registers->CR2 |= i2cStopGenerate; + } + void setNackAndStop() { + const uint32_t i2cNackGenerate = 0x8000; + const uint32_t i2cStopGenerate = 0x4000; + registers->CR2 |= i2cNackGenerate | i2cStopGenerate; + } + + void doBasicSetup() { + const uint32_t enableI2c = 0x1; + + const uint32_t enableI2c10BitAddress = 0x00001000; + + const uint32_t enableI2cSclLowTimeout = 0x8000; + const uint32_t sclLowTimeout3564Clock = 0x0600; + + uint32_t ccr1 = enableI2c; + + uint32_t ccr2 = enableI2c10BitAddress; + + if (registers != NULL) { + registers->TIMEOUTR = enableI2cSclLowTimeout | sclLowTimeout3564Clock; // disable timeout on clock stretch, + // Enable SCL low timeout - with 50ms of timeout. + + registers->CR2 = ccr2; + registers->CR1 = ccr1; // turn on peripheral + } + } + + bool hasReadDataInt() { + const uint32_t rxNotEmpty = 0x04; + return registers->ISR & rxNotEmpty; + } + uint8_t readData() { + uint8_t data = registers->RXDR; + return data; + } + bool isSetUp() { + return registers != NULL; + } + + bool hasNoSendDataInt() { + const uint32_t txEmpty = 0x02; + return registers->ISR & txEmpty; + } + void sendData(uint8_t data) { + registers->TXDR = data; + } + + bool hasBusErrorInt() { + const uint32_t i2cBusError = 0x100; + return registers->ISR & i2cBusError; + } + void clearBusErrorInt() { + const uint32_t i2cBusError = 0x100; + registers->ICR |= i2cBusError; + } + + bool hasArbitrationLossInt() { + const uint32_t i2cArbitrationLoss = 0x200; + return registers->ISR & i2cArbitrationLoss; + } + void clearArbitrationLossInt() { + const uint32_t i2cArbitrationLoss = 0x200; + registers->ICR |= i2cArbitrationLoss; + } + + bool hasTimeoutInt() { + const uint32_t i2cTimeout = 0x1000; + return registers->ISR & i2cTimeout; + } + void clearTimeoutInt() { + const uint32_t i2cTimeout = 0x1000; + registers->ICR |= i2cTimeout; + } + + bool hasNackInt() { + const uint32_t i2cNack = 0x10; + return registers->ISR & i2cNack; + } + void clearNackInt() { + const uint32_t i2cNack = 0x10; + registers->ICR |= i2cNack; + } + + bool hasStopInt() { + const uint32_t i2cStop = 0x20; + return registers->ISR & i2cStop; + } + void clearStopInt() { + const uint32_t i2cStop = 0x20; + registers->ICR |= i2cStop; + } + + bool hasTransferCompleteInt() { + const uint32_t i2cTransferComplete = 0x40; + return registers->ISR & i2cTransferComplete; + } + + bool hasReloadInt() { + const uint32_t i2cReload = 0x80; + return registers->ISR & i2cReload; + } + void setFullReload() { + registers->CR2 |= 0x1FF << 16; + } + void loadSize(uint8_t length) { + registers->CR2 &= ~(0x1FF << 16); + registers->CR2 |= length << 16; + } + + bool isBusy() { + const uint32_t i2cBusy = 0x8000; + return registers->ISR & i2cBusy; + } + + uint8_t* rxRegAddr() { + return (uint8_t*) ®isters->RXDR; + } + uint8_t* txRegAddr() { + return (uint8_t*) ®isters->TXDR; + } + void setupTransmit(bool setupInterrupts, uint16_t addr, bool tenBit, uint16_t txLen) { + const uint32_t enableI2c10BitAddress = 0x00001000; + const uint32_t enableI2cAutoEnd = 0x02000000; + const uint32_t enableI2c10BitAddressing = 0x0800; + const uint32_t i2cStart = 0x2000; + + if (hasStopInt()) { + // STOP + clearStopInt(); + } + uint32_t cr2r = enableI2c10BitAddress; //we always want 10 bit addressing to be done properly, and we want to write + cr2r |= enableI2cAutoEnd; // set autoend + if (tenBit) { + cr2r |= enableI2c10BitAddressing; // set 10 bit addressing + } else { + addr <<= 1; + } + cr2r |= addr; + uint16_t chunking; + if (txLen > 255) { + chunking = 0x1FF; + } else { + chunking = txLen; + } + cr2r |= chunking << 16; + setupCr1(setupInterrupts); + registers->CR2 = cr2r; + registers->CR2 |= i2cStart; + } + void setupReceive(bool setupInterrupts, uint16_t addr, bool tenBit, uint16_t rxLen) { + const uint32_t enableI2c10BitAddress = 0x00001000; + const uint32_t enableI2cAutoEnd = 0x02000000; + const uint32_t enableI2c10BitAddressing = 0x0800; + const uint32_t i2cStart = 0x2000; + const uint32_t i2cRxNTx = 0x0400; + + if (hasStopInt()) { + // STOP + clearStopInt(); + } + uint32_t cr2r = enableI2c10BitAddress | i2cRxNTx; //and want 10 bit addressing to be done properly, and we want to read + cr2r |= enableI2cAutoEnd; // set autoend + if (tenBit) { + cr2r |= enableI2c10BitAddressing; // set 10 bit addressing + } else { + addr <<= 1; + } + cr2r |= addr; + uint16_t chunking; + if (rxLen > 255) { + chunking = 0x1FF; + } else { + chunking = rxLen; + } + cr2r |= chunking << 16; + setupCr1(setupInterrupts); + registers->CR2 = cr2r; + registers->CR2 |= i2cStart; + } + void setupErrorInterrupt() { + const uint32_t enableI2cErrorInterrupt = 0x80; + registers->CR1 |= enableI2cErrorInterrupt; + } + +}; + +template +void I2cInternal::activateClock(I2cIdentifier id) { + const uint32_t enableI2c1Registers = 0x00200000; + const uint32_t enableI2c2Registers = 0x00400000; + + const uint32_t i2c1ClockSel = 0x00003000; + + GpioManager::getPin(scl).init(); + GpioManager::getPin(sda).init(); + if (id == 0) { + RCC->APB1ENR |= enableI2c1Registers; + RCC->CFGR3 &= ~i2c1ClockSel; + } else if (id == 1) { + RCC->APB1ENR |= enableI2c2Registers; + } +} + +template +void I2cInternal::activatePins() { + GpioManager::getPin(scl).setPullMode(NoPull); + GpioManager::getPin(scl).setOutputMode(OpenDrain); + GpioManager::getPin(scl).setAlternateFunction(sclFunction); + GpioManager::getPin(scl).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(scl).setMode(AlternateFunction); + GpioManager::getPin(sda).setPullMode(NoPull); + GpioManager::getPin(sda).setOutputMode(OpenDrain); + GpioManager::getPin(sda).setAlternateFunction(sdaFunction); + GpioManager::getPin(sda).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(sda).setMode(AlternateFunction); +} + +template +bool I2cInternal::recoverSdaJam() { + int attempts = 18; + GpioPin sdaPin = GpioManager::getPin(sda); + GpioPin sclPin = GpioManager::getPin(scl); + sdaPin.setPullMode(NoPull); + sdaPin.setOutputMode(OpenDrain); + sdaPin.setOutputSpeed(VeryHighSpeed); + sclPin.setPullMode(NoPull); + sclPin.setOutputMode(OpenDrain); + sclPin.setOutputSpeed(VeryHighSpeed); + sdaPin.set(); + sclPin.set(); + sdaPin.setMode(Output); + sclPin.setMode(Output); + sdaPin.set(); + if (sdaPin.read()) { + activatePins(); + return true; + } + sclPin.set(); + SystemMilliClock < LL > ::blockDelayMillis(10); + if (!sclPin.read()) { + activatePins(); + return false; + } + while (!sdaPin.read() && attempts > 0) { + sclPin.set(); + SystemMilliClock < LL > ::blockDelayMillis(10); + sclPin.reset(); + SystemMilliClock < LL > ::blockDelayMillis(10); + attempts--; + } + sdaPin.reset(); + sclPin.set(); + sdaPin.set(); + sdaPin.setMode(AlternateFunction); + sclPin.setMode(AlternateFunction); + activatePins(); + return sdaPin.read(); +} + +template +void I2cInternal::setFrequency(Clock *clock, I2cFrequency freq) { + const uint32_t enableI2c = 0x1; + + const uint32_t sclDelay3 = 0x00200000; + const uint32_t sclDelay4 = 0x00300000; + const uint32_t sclDelay5 = 0x00400000; + + const uint32_t sdaDelay0 = 0x00000000; + const uint32_t sdaDelay2 = 0x00020000; + const uint32_t sdaDelay3 = 0x00030000; + + const uint32_t sclHigh2 = 0x0100; + const uint32_t sclHigh4 = 0x0300; + const uint32_t sclHigh16 = 0x0F00; + const uint32_t sclHigh184 = 0xC300; + + const uint32_t sclLow4 = 0x03; + const uint32_t sclLow10 = 0x09; + const uint32_t sclLow20 = 0x13; + const uint32_t sclLow200 = 0xC7; + + if (registers == NULL) { + return; + } + registers->CR1 &= ~enableI2c; // turn off peripheral + // Always uses PCLK_1 + if (freq == kHz10) { + uint8_t scale = clock->getDivider(4000) - 1; + if (scale > 15) { + scale = 15; + } + registers->TIMINGR = sclDelay5 | sdaDelay2 | sclHigh184 | sclLow200 | (scale << 28); + } else if (freq == kHz100) { + uint8_t scale = clock->getDivider(4000) - 1; + if (scale > 15) { + scale = 15; + } + registers->TIMINGR = sclDelay5 | sdaDelay2 | sclHigh16 | sclLow20 | (scale << 28); + } else if (freq == kHz400) { + uint8_t scale = clock->getDivider(8000) - 1; + if (scale > 15) { + scale = 15; + } + registers->TIMINGR = sclDelay4 | sdaDelay3 | sclHigh4 | sclLow10 | (scale << 28); + } else if (freq == kHz1000) { + uint8_t scale = clock->getDivider(16000) - 1; + if (scale > 15) { + scale = 15; + } + registers->TIMINGR = sclDelay3 | sdaDelay0 | sclHigh2 | sclLow4 | (scale << 28); + } + registers->CR1 |= enableI2c; // turn on peripheral +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CINTERNAL_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2cManagercpp.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2ccpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2ccpp.hpp new file mode 100644 index 000000000..fb1e3a3bb --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/i2c-module/lowlevel/specific/I2ccpp.hpp @@ -0,0 +1,395 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CCPP_HPP_ + +#include + +template +I2c::I2c() : + i2c(), id(0), state( { 0, false, false, false, false, false, false }), callback(NULL) { +} + +template +bool I2c::init() { + state.hasRx = false; + state.hasTx = false; + state.hasTxRx = false; + state.txDone = false; + state.lockBool = false; + i2c.activateClock(id); + i2c.disablePeripheral(); + setFrequency (kHz100); + i2c.doBasicSetup(); + bool worked = i2c.recoverSdaJam(); // just make sure no stupid states + i2c.activatePins(); + i2c.enablePeripheral(); + return worked; +} + +template +void I2c::setFrequency(I2cFrequency freq) { + i2c.disablePeripheral(); + i2c.setFrequency(ClockManager < LL > ::getClock(HSI), freq); + i2c.enablePeripheral(); +} + +template +void I2c::finish() { + state.hasRx = false; + state.hasTx = false; + state.hasTxRx = false; + state.txDone = false; + txLen = 0; + txData = NULL; + rxLen = 0; + rxData = NULL; + position = 0; +} + +template +void I2c::interrupt() { + if (i2c.hasReadDataInt() && position != rxLen) { + if (position == rxLen) { + i2c.setNackAndStop(); + } else { + rxData[position++] = i2c.readData(); + } + } else if (i2c.hasNoSendDataInt() && position != txLen) { + if (position == txLen) { + i2c.setNackAndStop(); + } else { + i2c.sendData(txData[position++]); + } + } else if (i2c.hasBusErrorInt()) { + // BERR + if (callback != NULL) { + callback(this, BusError); + } + finish(); + i2c.clearBusErrorInt(); + } else if (i2c.hasArbitrationLossInt()) { + // ARLO + bool worked = init(); + if (callback != NULL) { + if (worked) { + callback(this, BusError); + } else { + callback(this, BusJammed); + } + } + finish(); + i2c.clearArbitrationLossInt(); + } else if (i2c.hasTimeoutInt()) { + bool worked = init(); + if (callback != NULL) { + // TIMEOUT + if (worked) { + callback(this, BusError); + } else { + callback(this, BusJammed); + } + } + finish(); + i2c.clearTimeoutInt(); + } else if (i2c.hasNackInt()) { + // NACK + if ((!state.hasTxRx && state.hasRx && position == 0) + || (state.hasTx && (txLen == 0 || position == 0))) { + callback(this, AddressNack); + } else if (state.hasTxRx && state.txDone && position == 0) { + callback(this, Address2Nack); + } else { + callback(this, DataNack); + } + finish(); + i2c.clearNackInt(); + } else if (i2c.hasStopInt()) { + // STOP + if (state.hasRx || state.hasTx || state.hasTxRx) { + callback(this, Complete); + } + finish(); + i2c.clearStopInt(); + } else if (i2c.hasTransferCompleteInt()) { + // TC - bidirectional + if (!state.txDone) { + restartReceive(); + } else { + i2c.setNackAndStop(); + finish(); + callback(this, Complete); + } + } else if (i2c.hasReloadInt()) { + // TCR - reload + uint16_t length = 0; + if (state.hasTx && !state.txDone) { + length = txLen; + } else if (state.hasRx) { + length = rxLen; + } // umm, what if neither - obviously an illegal state, but still + length -= state.repeatCount * 0xFF; + if (length > 255) { + i2c.setFullReload(); + } else { + i2c.loadSize(length); + } + state.repeatCount++; + } +} + +template +void I2c::asyncTransmit10(PeripheralOperationMode mode, uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, + void (*callback)(I2c*, I2cTerminationStatus)) { + if (mode == SYNCHRONOUS) { + callback(this, transmit10(address, tenBit, txData, txLen)); + return; + } + if (state.hasTx || state.hasRx || state.hasTxRx || state.txDone || i2c.isBusy()) { + callback(this, BusBusy); + return; + } + if (address >= 1024 || (address >= 128 && !tenBit)) { + callback(this, OtherError); + return; + } + this->callback = callback; + state.repeatCount = 0; + state.hasTx = true; + this->txData = txData; + this->txLen = txLen; + this->address = address; + state.tenBit = tenBit; + i2c.setupTransmit(true, address, tenBit, txLen); +} + +template +void I2c::asyncReceive10(PeripheralOperationMode mode, uint16_t address, bool tenBit, uint8_t *rxData, uint16_t rxLen, + void (*callback)(I2c*, I2cTerminationStatus)) { + if (mode == SYNCHRONOUS) { + callback(this, receive10(address, tenBit, rxData, rxLen)); + return; + } + if (state.hasTx || state.hasRx || state.hasTxRx || state.txDone || i2c.isBusy()) { + callback(this, BusBusy); + return; + } + if (address >= 1024 || (address >= 128 && !tenBit)) { + callback(this, OtherError); + return; + } + this->callback = callback; + state.repeatCount = 0; + state.hasRx = true; + this->rxData = rxData; + this->rxLen = rxLen; + this->address = address; + state.tenBit = tenBit; + i2c.setupReceive(true, address, tenBit, rxLen); +} + +template +void I2c::asyncTransmitReceive10(PeripheralOperationMode mode, uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, + uint16_t rxLen, void (*callback)(I2c*, I2cTerminationStatus)) { + if (mode == SYNCHRONOUS) { + callback(this, transmitReceive10(address, tenBit, txData, txLen, rxData, rxLen)); + return; + } + state.hasTx = true; + state.hasTxRx = true; + this->rxData = rxData; + this->rxLen = rxLen; + asyncTransmit10(mode, address, tenBit, txData, txLen, callback); +} + +template +void I2c::restartReceive() { + if (rxLen == 0) { + callback(this, OtherError); + i2c.setStop(); + return; + } + if (address >= 1024 || (address >= 128 && !state.tenBit)) { + callback(this, OtherError); + i2c.setStop(); + return; + } + this->callback = callback; + state.repeatCount = 0; + state.txDone = true; + i2c.setupReceive(true, address, state.tenBit, rxLen); +} + +template +I2cTerminationStatus I2c::transmit10(uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, bool stop) { + if (state.hasTx || state.hasRx || state.hasTxRx || state.txDone || i2c.isBusy()) { + return BusBusy; + } + if (address >= 1024 || (address >= 128 && !tenBit)) { + return OtherError; + } + state.repeatCount = 0; + state.hasRx = false; + state.hasTx = false; + state.txDone = false; + state.hasTxRx = false; + position = 0; + i2c.setupTransmit(false, address, tenBit, txLen); + while (true) { + if (i2c.hasNoSendDataInt()) { + if (position == txLen) { + i2c.setNackAndStop(); + } else { + i2c.sendData(txData[position++]); + } + } else if (i2c.hasBusErrorInt()) { + finish(); + i2c.clearBusErrorInt(); + i2c.setupErrorInterrupt(); + return BusError; + } else if (i2c.hasArbitrationLossInt()) { + // ARLO + bool worked = init(); + finish(); + i2c.clearArbitrationLossInt(); + i2c.setupErrorInterrupt(); + if (worked) { + return BusError; + } else { + return BusJammed; + } + } else if (i2c.hasTimeoutInt()) { + // TIMEOUT + finish(); + i2c.clearTimeoutInt(); + i2c.setupErrorInterrupt(); + return BusJammed; + } else if (i2c.hasNackInt()) { + // NACK + finish(); + i2c.clearNackInt(); + i2c.setupErrorInterrupt(); + if (position == 0) { + return AddressNack; + } else { + return DataNack; + } + } else if (i2c.hasStopInt()) { + // STOP + finish(); + i2c.clearStopInt(); + i2c.setupErrorInterrupt(); + return Complete; + } else if (i2c.hasTransferCompleteInt()) { + // TC - bidirectional + if (stop) { + finish(); + i2c.setNackAndStop(); + i2c.setupErrorInterrupt(); + return Complete; + } else { + return Complete; + } + } else if (i2c.hasReloadInt()) { + // TCR - reload + uint16_t length = txLen; + length -= state.repeatCount * 0xFF; + if (length > 255) { + i2c.setFullReload(); + } else { + i2c.loadSize(length); + } + state.repeatCount++; + } + } +} +template +I2cTerminationStatus I2c::receive10(uint16_t address, bool tenBit, uint8_t *rxData, uint16_t rxLen) { + if (state.hasTx || state.hasRx || state.hasTxRx || state.txDone || i2c.isBusy()) { + return BusBusy; + } + if (address >= 1024 || (address >= 128 && !tenBit)) { + return OtherError; + } + state.repeatCount = 0; + state.hasRx = false; + state.hasTx = false; + state.txDone = false; + state.hasTxRx = false; + position = 0; + i2c.setupReceive(false, address, state.tenBit, rxLen); + while (true) { + if (i2c.hasReadDataInt()) { + if (position == rxLen) { + i2c.setNackAndStop(); + volatile uint8_t v = i2c.readData(); + (void) v; + i2c.setupErrorInterrupt(); + return Complete; + } else { + rxData[position++] = i2c.readData(); + } + } else if (i2c.hasBusErrorInt()) { + finish(); + i2c.clearBusErrorInt(); + i2c.setupErrorInterrupt(); + return BusError; + } else if (i2c.hasArbitrationLossInt()) { + // ARLO + bool worked = init(); + finish(); + i2c.clearArbitrationLossInt(); + i2c.setupErrorInterrupt(); + if (worked) { + return BusError; + } else { + return BusJammed; + } + } else if (i2c.hasTimeoutInt()) { + // TIMEOUT + finish(); + i2c.clearTimeoutInt(); + i2c.setupErrorInterrupt(); + return BusJammed; + } else if (i2c.hasNackInt()) { + // NACK + finish(); + i2c.clearNackInt(); + i2c.setupErrorInterrupt(); + if (position == 0) { + return AddressNack; + } else { + return DataNack; + } + } else if (i2c.hasStopInt()) { + // STOP + finish(); + i2c.clearStopInt(); + i2c.setupErrorInterrupt(); + return Complete; + } else if (i2c.hasTransferCompleteInt()) { + // TC - bidirectional + finish(); + i2c.setNackAndStop(); + i2c.setupErrorInterrupt(); + return Complete; + } else if (i2c.hasReloadInt()) { + // TCR - reload + uint16_t length = rxLen; + length -= state.repeatCount * 0xFF; + if (length > 255) { + i2c.setFullReload(); + } else { + i2c.loadSize(length); + } + state.repeatCount++; + } + } +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32F0_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CCPP_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/llIncludes.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/llIncludes.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/llIncludes.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/llIncludes.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/lowlevel/specific/GpioManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/lowlevel/specific/GpioManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/lowlevel/specific/GpioManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/lowlevel/specific/GpioManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/lowlevel/specific/GpioNames.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/lowlevel/specific/GpioNames.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/lowlevel/specific/GpioNames.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/lowlevel/specific/GpioNames.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/pin-controller/PinController.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/pin-controller/PinController.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/pin-controller/PinController.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/pins-module/pin-controller/PinController.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartInternal.hpp new file mode 100644 index 000000000..c30d9ae57 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartInternal.hpp @@ -0,0 +1,153 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32F0_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTINTERNAL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32F0_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTINTERNAL_HPP_ + +#include +#include +#include +#include + +#include + +template +class Uart; + +template +class UartInternal { +private: + UartRegisters *registers; + GpioPinName rx; + PinAlternateFunction rxFunction; + GpioPinName tx; + PinAlternateFunction txFunction; + SerialIdentifier id; + +public: + UartInternal() : + registers(NULL), rx(PA_1), rxFunction(0), tx(PA_1), txFunction(0), id(0) { + } + + UartInternal(GpioPinName rx, PinAlternateFunction rxFunction, GpioPinName tx, PinAlternateFunction txFunction, UartRegisters *registers, + SerialIdentifier id) : + registers(registers), rx(rx), rxFunction(rxFunction), tx(tx), txFunction(txFunction), id(id) { + } + + SerialIdentifier getId() { + return id; + } + + void init(uint32_t baud_rate, bool singleNdoubleStop) { + const uint32_t uartEnable = 0x01; + const uint32_t uartDoubleStopBit = 0x00002000; + + const uint32_t uart1RegisterClockEnable = 0x00004000; + + const uint32_t uart2RegisterClockEnable = 0x00020000; + + const uint32_t uartRxNEInterruptEnable = 0x20; + const uint32_t uartIdleInterruptEnable = 0x10; + const uint32_t uartTransmitEnable = 0x08; + const uint32_t uartReceiveEnable = 0x04; + + const uint32_t uartTxDmaEnable = 0x80; + + registers->CR1 &= ~uartEnable; //disable the peripheral + GpioManager::getPin(rx).init(); + GpioManager::getPin(tx).init(); + + GpioManager::getPin(rx).setPullMode(NoPull); + GpioManager::getPin(rx).setOutputMode(PushPull); + GpioManager::getPin(rx).setAlternateFunction(rxFunction); + GpioManager::getPin(rx).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(rx).setMode(AlternateFunction); + GpioManager::getPin(tx).setPullMode(NoPull); + GpioManager::getPin(tx).setOutputMode(PushPull); + GpioManager::getPin(tx).setAlternateFunction(txFunction); + GpioManager::getPin(tx).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(tx).setMode(AlternateFunction); + //enable the peripheral clock, set source to SYSCLK + if (id == 0) { + RCC->APB2ENR |= uart1RegisterClockEnable; + } else if (id == 1) { + RCC->APB1ENR |= uart2RegisterClockEnable; + } + + registers->CR1 = uartIdleInterruptEnable | uartTransmitEnable | uartReceiveEnable | uartRxNEInterruptEnable; + registers->CR2 = singleNdoubleStop ? 0 : uartDoubleStopBit; // sets standard logic levels, and MSB first + registers->CR3 = uartTxDmaEnable; + uint32_t freq = ClockManager::getClock(PCLK)->getFreqKhz() * 1000; + registers->BRR = freq / baud_rate; + registers->CR1 |= uartEnable; //enable the peripheral + } + + void clearFlags() { + const uint32_t idle = 0x10; + + registers->ICR |= idle; + } + + bool takeReceiverFullFlag() { + const uint32_t rxNE = 0x20; + + if ((registers->ISR & rxNE) != 0) { + return true; + } + return false; + } + + bool takeIdleFlag() { + const uint32_t idle = 0x10; + + if ((registers->ISR & idle) != 0) { + registers->ICR |= idle; + return true; + } + return false; + } + + volatile uint8_t* getTransmitRegister() { + return (volatile uint8_t*) ®isters->TDR; + } + + int16_t read(); + + bool hasRxFifoData(); +}; + +template +int16_t UartInternal::read() { + const uint32_t parityError = 0x01; + const uint32_t framingError = 0x02; + const uint32_t noiseError = 0x04; + const uint32_t overflowError = 0x08; + if ((registers->ISR & parityError) != 0) { + registers->ICR |= parityError; + return -SerialParityError; + } else if ((registers->ISR & framingError) != 0) { + registers->ICR |= framingError; + registers->RDR; + return -SerialFramingError; + } else if ((registers->ISR & noiseError) != 0) { + registers->ICR |= noiseError; + return -SerialNoiseError; + } else if ((registers->ISR & overflowError) != 0) { + registers->ICR |= overflowError; + return -SerialOverflowError; + } else { + return registers->RDR; + } +} + +template +bool UartInternal::hasRxFifoData() { + const uint32_t rxFifoNotEmpty = 0x20; + return (registers->ISR & rxFifoNotEmpty) != 0; +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32F0_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTINTERNAL_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartManagercpp.hpp new file mode 100644 index 000000000..70724a8d8 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/serial-module/lowlevel/specific/UartManagercpp.hpp @@ -0,0 +1,196 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32F0_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTMANAGERCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32F0_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTMANAGERCPP_HPP_ + +#include "UartInternal.hpp" +#include + +#define UART_TX_Inner(UART,PIN) UART##_TX_##PIN +#define UART_TX(UART,PIN) UART_TX_Inner(UART, PIN) + +#define UART_RX_Inner(UART,PIN) UART##_RX_##PIN +#define UART_RX(UART,PIN) UART_RX_Inner(UART, PIN) + +#if defined(STM32F030x6) +#include +#elif defined(STM32F030x8) +#include +#elif defined(STM32F031x6) +#include +#elif defined(STM32F038xx) +#include +#elif defined(STM32F042x6) +#include +#elif defined(STM32F048xx) +#include +#elif defined(STM32F051x8) +#include +#elif defined(STM32F058xx) +#include +#elif defined(STM32F070x6) +#include +#elif defined(STM32F070xB) +#include +#elif defined(STM32F071xB) +#include +#elif defined(STM32F072xB) +#include +#elif defined(STM32F078xx) +#include +#elif defined(STM32F091xC) +#include +#elif defined(STM32F098xx) +#include +#elif defined(STM32F030xC) +#include +#else +#error "Please select the target STM32F0xx device used in your application" +#endif + +#ifdef USE_UART_1 +#if !UART_TX(_UART_1, UART_1_TX) +#error Not defined as a valid UART 1 TX pin: UART_1_TX +#endif +#if !UART_RX(_UART_1, UART_1_RX) +#error Not defined as a valid UART 1 RX pin: UART_1_RX +#endif +#endif + +#ifdef USE_UART_2 +#if !UART_TX(_UART_2, UART_2_TX) +#error Not defined as a valid UART 2 TX pin: UART_2_TX +#endif +#if !UART_RX(_UART_2, UART_2_RX) +#error Not defined as a valid UART 2 RX pin: UART_2_RX +#endif +#endif + +#ifdef USE_UART_3 +#if !UART_TX(_UART_3, UART_3_TX) +#error Not defined as a valid UART 3 TX pin: UART_3_TX +#endif +#if !UART_RX(_UART_3, UART_3_RX) +#error Not defined as a valid UART 3 RX pin: UART_3_RX +#endif +#endif + +#ifdef USE_UART_4 +#if !UART_TX(_UART_4, UART_4_TX) +#error Not defined as a valid UART 4 TX pin: UART_4_TX +#endif +#if !UART_RX(_UART_4, UART_4_RX) +#error Not defined as a valid UART 4 RX pin: UART_4_RX +#endif +#endif + +#ifdef USE_UART_5 +#if !UART_TX(_UART_5, UART_5_TX) +#error Not defined as a valid UART 5 TX pin: UART_5_TX +#endif +#if !UART_RX(_UART_5, UART_5_RX) +#error Not defined as a valid UART 5 RX pin: UART_5_RX +#endif +#endif + +#ifdef USE_UART_6 +#if !UART_TX(_UART_6, UART_6_TX) +#error Not defined as a valid UART 6 TX pin: UART_6_TX +#endif +#if !UART_RX(_UART_6, UART_6_RX) +#error Not defined as a valid UART 6 RX pin: UART_6_RX +#endif +#endif + +template +Uart UartManager::uarts[] = { + +#ifdef USE_UART_1 + Uart() +#endif +#ifdef USE_UART_2 + , Uart() +#endif +#ifdef USE_UART_3 + , Uart() +#endif +#ifdef USE_UART_4 + , Uart() +#endif +#ifdef USE_UART_5 + , Uart() +#endif +#ifdef USE_UART_6 + , Uart() +#endif + }; + +template +void UartManager::interrupt(uint8_t id) { + UartManager < LL > ::uarts[id].interrupt(); +} + +template +UartInternal getUartInternal(SerialIdentifier id) { + if (id == 0) { +#ifdef USE_UART_1 + return UartInternal(UART_RX(UART_1, UART_1_RX), UART_TX(UART_1, UART_1_TX), (UartRegisters*) 0x40013800, id); +#else + return UartInternal(); +#endif + } else if (id == 1) { +#ifdef USE_UART_2 + return UartInternal(UART_RX(UART_2, UART_2_RX), UART_TX(UART_2, UART_2_TX), (UartRegisters*) 0x40004400, id); +#else + return UartInternal(); +#endif + } else if (id == 2) { +#ifdef USE_UART_3 + return UartInternal(UART_RX(UART_3, UART_3_RX), UART_TX(UART_3, UART_3_TX), (UartRegisters*) 0x40004800, id); +#else + return UartInternal(); +#endif + } else if (id == 3) { +#ifdef USE_UART_4 + return UartInternal(UART_RX(UART_4, UART_4_RX), UART_TX(UART_4, UART_4_TX), (UartRegisters*) 0x40004C00, id); +#else + return UartInternal(); +#endif + } else if (id == 4) { +#ifdef USE_UART_5 + return UartInternal(UART_RX(UART_5, UART_5_RX), UART_TX(UART_5, UART_5_TX), (UartRegisters*) 0x40005000, id); +#else + return UartInternal(); +#endif + } else { +#ifdef USE_UART_6 + return UartInternal(UART_RX(UART_6, UART_6_RX), UART_TX(UART_6, UART_6_TX), (UartRegisters*) 0x40008000, id); +#else + return UartInternal(); +#endif + } +} +template +Dma* getUartDmaById(uint8_t id) { + if (id == 0) { + return DmaManager < LL > ::getDmaById(LL::uart1TxDma); + } else { + return DmaManager < LL > ::getDmaById(LL::uart2TxDma); + } +} + +template +void UartManager::init() { + InterruptManager::setInterrupt(&UartManager::interrupt, UartInt); + for (int i = 0; i < HW::uartCount; ++i) { + uarts[i].setUart(getUartInternal < LL > (i), getUartDmaById < LL > (i)); + InterruptManager::enableInterrupt(UartInt, i, 8); + } +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32F0_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTMANAGERCPP_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/ZcodeSystemModule.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/ZcodeSystemModule.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/ZcodeSystemModule.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/ZcodeSystemModule.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/Clock.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/Clock.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/Clock.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/Clock.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/ClockManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/ClockManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/ClockManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/ClockManager.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/SystemMilliClock.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/SystemMilliClock.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/SystemMilliClock.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/SystemMilliClock.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/ClockManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/ClockManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/ClockManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/ClockManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/Clockcpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/Clockcpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/Clockcpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/Clockcpp.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/SystemClocks.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/SystemClocks.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/SystemClocks.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/clock/specific/SystemClocks.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_armcc.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_armcc.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_armcc.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_armcc.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_armclang.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_armclang.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_armclang.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_armclang.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_compiler.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_compiler.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_compiler.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_compiler.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_gcc.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_gcc.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_gcc.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_gcc.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_iccarm.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_iccarm.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_iccarm.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_iccarm.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_version.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_version.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_version.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/cmsis_version.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_armv8mbl.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_armv8mbl.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_armv8mbl.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_armv8mbl.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_armv8mml.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_armv8mml.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_armv8mml.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_armv8mml.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm0.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm0.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm0.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm0.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm0plus.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm0plus.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm0plus.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm0plus.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm1.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm1.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm1.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm1.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm23.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm23.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm23.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm23.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm3.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm3.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm3.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm3.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm33.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm33.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm33.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm33.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm4.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm4.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm4.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm4.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm7.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm7.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm7.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_cm7.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_sc000.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_sc000.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_sc000.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_sc000.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_sc300.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_sc300.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_sc300.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/core_sc300.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/mpu_armv7.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/mpu_armv7.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/mpu_armv7.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/mpu_armv7.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/mpu_armv8.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/mpu_armv8.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/mpu_armv8.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/mpu_armv8.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030x6.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030x6.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030x6.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030x6.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030x8.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030x8.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030x8.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030x8.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030xc.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030xc.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030xc.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f030xc.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f031x6.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f031x6.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f031x6.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f031x6.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f038xx.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f038xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f038xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f038xx.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f042x6.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f042x6.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f042x6.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f042x6.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f048xx.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f048xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f048xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f048xx.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f051x8.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f051x8.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f051x8.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f051x8.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f058xx.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f058xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f058xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f058xx.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f070x6.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f070x6.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f070x6.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f070x6.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f070xb.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f070xb.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f070xb.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f070xb.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f071xb.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f071xb.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f071xb.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f071xb.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f072xb.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f072xb.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f072xb.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f072xb.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f078xx.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f078xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f078xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f078xx.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f091xc.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f091xc.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f091xc.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f091xc.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f098xx.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f098xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f098xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f098xx.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f0xx.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f0xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f0xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/stm32f0xx.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/system_stm32f0xx.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/system_stm32f0xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/system_stm32f0xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/system_stm32f0xx.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/tz_context.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/tz_context.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/tz_context.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/core/tz_context.h diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/Dma.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/Dma.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/Dma.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/Dma.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/DmaManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/DmaManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/DmaManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/DmaManager.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaChannelInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaChannelInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaChannelInternal.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaChannelInternal.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaRegisters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaRegisters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaRegisters.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/DmaRegisters.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/Dmacpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/Dmacpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/Dmacpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/dma/specific/Dmacpp.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/interrupt/InterruptManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/interrupt/InterruptManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/interrupt/InterruptManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/interrupt/InterruptManager.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/interrupt/InterruptManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/interrupt/InterruptManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/interrupt/InterruptManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/system/interrupt/InterruptManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/udp-module/lowlevel/SPI.h b/receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/udp-module/lowlevel/SPI.h similarity index 100% rename from receivers/native/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/udp-module/lowlevel/SPI.h rename to receivers/generic-c++/zll/arm/no-os/stm32f0/src/main/c++/arm-no-os/stm32f0/udp-module/lowlevel/SPI.h diff --git a/receivers/native/arm/no-os/stm32f030x8/pom.xml b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/pom.xml similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/pom.xml rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/pom.xml diff --git a/receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/ArmPlatformFirmwareVersion.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/ArmPlatformFirmwareVersion.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/ArmPlatformFirmwareVersion.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/ArmPlatformFirmwareVersion.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/i2c-module/lowlevel/specific/I2cPins.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/i2c-module/lowlevel/specific/I2cPins.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/i2c-module/lowlevel/specific/I2cPins.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/i2c-module/lowlevel/specific/I2cPins.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/llIncludes.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/llIncludes.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/llIncludes.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/llIncludes.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/pins-module/lowlevel/specific/GpioManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/pins-module/lowlevel/specific/GpioManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/pins-module/lowlevel/specific/GpioManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/pins-module/lowlevel/specific/GpioManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/pins-module/lowlevel/specific/GpioNames.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/pins-module/lowlevel/specific/GpioNames.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/pins-module/lowlevel/specific/GpioNames.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/pins-module/lowlevel/specific/GpioNames.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/serial-module/lowlevel/specific/UartPins.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/serial-module/lowlevel/specific/UartPins.hpp new file mode 100644 index 000000000..562d72f02 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/serial-module/lowlevel/specific/UartPins.hpp @@ -0,0 +1,31 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32F030X8_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTPINS_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32F030X8_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTPINS_HPP_ + +#define UART_1_TX_PA_9_ PA_9,GPIO_AF1 +#define UART_1_RX_PA_10_ PA_10,GPIO_AF1 +#define UART_1_TX_PB_6_ PB_6,GPIO_AF0 +#define UART_1_RX_PB_7_ PB_7,GPIO_AF0 + +#define UART_2_TX_PA_2_ PA_2,GPIO_AF1 +#define UART_2_RX_PA_3_ PA_3,GPIO_AF1 +#define UART_2_TX_PA_14_ PA_14,GPIO_AF1 +#define UART_2_RX_PA_15_ PA_15,GPIO_AF1 + +#define _UART_1_TX_PA_9_ 1 +#define _UART_1_RX_PA_10_ 1 +#define _UART_1_TX_PB_6_ 1 +#define _UART_1_RX_PB_7_ 1 + +#define _UART_2_TX_PA_2_ 1 +#define _UART_2_RX_PA_3_ 1 +#define _UART_2_TX_PA_14_ 1 +#define _UART_2_RX_PA_15_ 1 + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32F030X8_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTPINS_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/udp-module/lowlevel/SpiPins.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/udp-module/lowlevel/SpiPins.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/udp-module/lowlevel/SpiPins.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/main/c++/arm-no-os/stm32f030x8/udp-module/lowlevel/SpiPins.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/c++/common/startup_stm32f030x8.s b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/common/startup_stm32f030x8.s similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/c++/common/startup_stm32f030x8.s rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/common/startup_stm32f030x8.s diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/c++/common/system_stm32f0xx.c b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/common/system_stm32f0xx.c similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/c++/common/system_stm32f0xx.c rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/common/system_stm32f0xx.c diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/c++/main/GeneralLLSetup.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/main/GeneralLLSetup.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/c++/main/GeneralLLSetup.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/main/GeneralLLSetup.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/c++/main/ZcodeParameters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/main/ZcodeParameters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/c++/main/ZcodeParameters.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/main/ZcodeParameters.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/c++/main/main.cpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/main/main.cpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/c++/main/main.cpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/main/main.cpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/c++/test-minimal/GeneralLLSetup.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/test-minimal/GeneralLLSetup.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/c++/test-minimal/GeneralLLSetup.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/test-minimal/GeneralLLSetup.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/c++/test-minimal/ZcodeParameters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/test-minimal/ZcodeParameters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/c++/test-minimal/ZcodeParameters.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/test-minimal/ZcodeParameters.hpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/c++/test-minimal/test-minimal.cpp b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/test-minimal/test-minimal.cpp similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/c++/test-minimal/test-minimal.cpp rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/c++/test-minimal/test-minimal.cpp diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/ld/STM32F030R8Tx_FLASH.ld b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/ld/STM32F030R8Tx_FLASH.ld similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/ld/STM32F030R8Tx_FLASH.ld rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/ld/STM32F030R8Tx_FLASH.ld diff --git a/receivers/native/arm/no-os/stm32f030x8/src/test/openocd/openocd.cfg b/receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/openocd/openocd.cfg similarity index 100% rename from receivers/native/arm/no-os/stm32f030x8/src/test/openocd/openocd.cfg rename to receivers/generic-c++/zll/arm/no-os/stm32f030x8/src/test/openocd/openocd.cfg diff --git a/receivers/native/arm/no-os/stm32g4/pom.xml b/receivers/generic-c++/zll/arm/no-os/stm32g4/pom.xml similarity index 100% rename from receivers/native/arm/no-os/stm32g4/pom.xml rename to receivers/generic-c++/zll/arm/no-os/stm32g4/pom.xml diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/arm-core-module/persistence/FlashPage.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/arm-core-module/persistence/FlashPage.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/arm-core-module/persistence/FlashPage.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/arm-core-module/persistence/FlashPage.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/addressing/ZcodeI2cBusInterruptSource.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2cInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2cInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2cInternal.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2cInternal.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2cManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2cManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2cManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2cManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2ccpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2ccpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2ccpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/i2c-module/lowlevel/specific/I2ccpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/llIncludes.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/llIncludes.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/llIncludes.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/llIncludes.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp new file mode 100644 index 000000000..7fb68c756 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDManagercpp.hpp @@ -0,0 +1,229 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_PINS_MODULE_ATODLOWLEVEL_SPECIFIC_ATODMANAGERCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_PINS_MODULE_ATODLOWLEVEL_SPECIFIC_ATODMANAGERCPP_HPP_ + +#include +#include + +#define HAS_ATOD_SYSTEM + +template +AtoD AtoDManager::atoDs[] = { AtoD < LL > (ADC1), AtoD < LL > (ADC2), AtoD < LL > (ADC3), AtoD < LL > (ADC4), AtoD < LL > (ADC5) }; + +template +void AtoDManager::init() { + const uint32_t enableADC345Registers = 0x4000; + const uint32_t enableADC12Registers = 0x2000; + + const uint32_t aToD345SetSysClk = 0x80000000; + const uint32_t aToD12SetSysClk = 0x20000000; + + RCC->AHB2ENR |= enableADC12Registers | enableADC345Registers; //enable clock to ADCs + RCC->CCIPR |= aToD345SetSysClk | aToD12SetSysClk; //set peripheral clock inputs + uint32_t divider = ClockManager < LL > ::getClock(SysClock)->getDivider(20000 * 2); + if (divider > 6) { + // work out how many halvings are required to reduce the number below zero + uint32_t newDiv = 7; + divider >>= 3; + while (divider > 0) { + newDiv++; + divider >>= 1; + } + divider = newDiv; + } + if (divider > 11) { + divider = 11; + } + ADC12_COMMON->CCR |= divider << 18; + ADC345_COMMON->CCR |= divider << 18; //setup prescalers for something reasonable + for (int i = 0; i < HW::atoDCount; ++i) { + atoDs[i].init(); + } +} +#define PA_0_AtoDReading() atoDs[0].performReading(1) +#define PA_1_AtoDReading() atoDs[0].performReading(2) +#define PA_2_AtoDReading() atoDs[0].performReading(3) +#define PA_3_AtoDReading() atoDs[0].performReading(4) +#define PA_4_AtoDReading() atoDs[1].performReading(17) +#define PA_5_AtoDReading() atoDs[1].performReading(13) +#define PA_6_AtoDReading() atoDs[1].performReading(3) +#define PA_7_AtoDReading() atoDs[1].performReading(4) +#define PA_8_AtoDReading() atoDs[4].performReading(1) +#define PA_9_AtoDReading() atoDs[4].performReading(2) +#define PA_10_AtoDReading() 0 +#define PA_11_AtoDReading() 0 +#define PA_12_AtoDReading() 0 +#define PA_13_AtoDReading() 0 +#define PA_14_AtoDReading() 0 +#define PA_15_AtoDReading() 0 + +#define PB_0_AtoDReading() atoDs[2].performReading(12) +#define PB_1_AtoDReading() atoDs[0].performReading(12) +#define PB_2_AtoDReading() atoDs[1].performReading(12) +#define PB_3_AtoDReading() 0 +#define PB_4_AtoDReading() 0 +#define PB_5_AtoDReading() 0 +#define PB_6_AtoDReading() 0 +#define PB_7_AtoDReading() 0 +#define PB_8_AtoDReading() 0 +#define PB_9_AtoDReading() 0 +#define PB_10_AtoDReading() 0 +#define PB_11_AtoDReading() atoDs[0].performReading(14) +#define PB_12_AtoDReading() atoDs[0].performReading(11) +#define PB_13_AtoDReading() atoDs[2].performReading(5) +#define PB_14_AtoDReading() atoDs[0].performReading(5) +#define PB_15_AtoDReading() atoDs[3].performReading(5) + +#define PC_0_AtoDReading() atoDs[0].performReading(6) +#define PC_1_AtoDReading() atoDs[0].performReading(7) +#define PC_2_AtoDReading() atoDs[0].performReading(8) +#define PC_3_AtoDReading() atoDs[0].performReading(9) +#define PC_4_AtoDReading() atoDs[1].performReading(5) +#define PC_5_AtoDReading() atoDs[1].performReading(11) +#define PC_6_AtoDReading() 0 +#define PC_7_AtoDReading() 0 +#define PC_8_AtoDReading() 0 +#define PC_9_AtoDReading() 0 +#define PC_10_AtoDReading() 0 +#define PC_11_AtoDReading() 0 +#define PC_12_AtoDReading() 0 +#define PC_13_AtoDReading() 0 +#define PC_14_AtoDReading() 0 +#define PC_15_AtoDReading() 0 + +#define PD_0_AtoDReading() 0 +#define PD_1_AtoDReading() 0 +#define PD_2_AtoDReading() 0 +#define PD_3_AtoDReading() 0 +#define PD_4_AtoDReading() 0 +#define PD_5_AtoDReading() 0 +#define PD_6_AtoDReading() 0 +#define PD_7_AtoDReading() 0 +#define PD_8_AtoDReading() atoDs[3].performReading(12) +#define PD_9_AtoDReading() atoDs[3].performReading(13) +#define PD_10_AtoDReading() atoDs[3].performReading(7) +#define PD_11_AtoDReading() atoDs[3].performReading(8) +#define PD_12_AtoDReading() atoDs[3].performReading(9) +#define PD_13_AtoDReading() atoDs[3].performReading(10) +#define PD_14_AtoDReading() atoDs[3].performReading(11) +#define PD_15_AtoDReading() 0 + +#define PE_0_AtoDReading() 0 +#define PE_1_AtoDReading() 0 +#define PE_2_AtoDReading() 0 +#define PE_3_AtoDReading() 0 +#define PE_4_AtoDReading() 0 +#define PE_5_AtoDReading() 0 +#define PE_6_AtoDReading() 0 +#define PE_7_AtoDReading() atoDs[2].performReading(4) +#define PE_8_AtoDReading() atoDs[2].performReading(6) +#define PE_9_AtoDReading() atoDs[2].performReading(2) +#define PE_10_AtoDReading() atoDs[2].performReading(14) +#define PE_11_AtoDReading() atoDs[2].performReading(15) +#define PE_12_AtoDReading() atoDs[2].performReading(16) +#define PE_13_AtoDReading() atoDs[2].performReading(3) +#define PE_14_AtoDReading() atoDs[3].performReading(1) +#define PE_15_AtoDReading() atoDs[3].performReading(2) + +#define PF_0_AtoDReading() atoDs[0].performReading(10) +#define PF_1_AtoDReading() atoDs[1].performReading(10) + +#define portAtoD(X) switch (pin.pin) { \ + case Pin0: \ + return P##X##_0_AtoDReading(); \ + case Pin1: \ + return P##X##_1_AtoDReading(); \ + case Pin2: \ + return P##X##_2_AtoDReading(); \ + case Pin3: \ + return P##X##_3_AtoDReading(); \ + case Pin4: \ + return P##X##_4_AtoDReading(); \ + case Pin5: \ + return P##X##_5_AtoDReading(); \ + case Pin6: \ + return P##X##_6_AtoDReading(); \ + case Pin7: \ + return P##X##_7_AtoDReading(); \ + case Pin8: \ + return P##X##_8_AtoDReading(); \ + case Pin9: \ + return P##X##_9_AtoDReading(); \ + case Pin10: \ + return P##X##_10_AtoDReading(); \ + case Pin11: \ + return P##X##_11_AtoDReading(); \ + case Pin12: \ + return P##X##_12_AtoDReading(); \ + case Pin13: \ + return P##X##_13_AtoDReading(); \ + case Pin14: \ + return P##X##_14_AtoDReading(); \ + case Pin15: \ + return P##X##_15_AtoDReading(); \ + default: \ + return 0; \ + } + +template +bool AtoDManager::canPerformAtoD(GpioPinName pin) { + if (pin.pin > 16) { + return false; + } + if (pin.port == PortA) { + if (pin.pin <= 9) { + return true; + } + } else if (pin.port == PortB) { + if (pin.pin <= 2 || pin.pin >= 11) { + return true; + } + } else if (pin.port == PortC) { + if (pin.pin <= 5) { + return true; + } + } else if (pin.port == PortD) { + if (pin.pin >= 8 && pin.pin <= 14) { + return true; + } + } else if (pin.port == PortE) { + if (pin.pin >= 7) { + return true; + } + } else if (pin.port == PortF) { + if (pin.pin == Pin0 || pin.pin == Pin1) { + return true; + } + } + return false; +} + +template +uint16_t AtoDManager::performAtoD(GpioPinName pin) { + if (pin.port == PortA) { + portAtoD(A); + } else if (pin.port == PortB) { + portAtoD(B); + } else if (pin.port == PortC) { + portAtoD(C); + } else if (pin.port == PortD) { + portAtoD(D); + } else if (pin.port == PortE) { + portAtoD(E); + } else if (pin.port == PortF) { + if (pin.pin == Pin0) { + return PF_0_AtoDReading(); + } else if (pin.pin == Pin1) { + return PF_1_AtoDReading(); + } + } + return 0; +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_PINS_MODULE_ATODLOWLEVEL_SPECIFIC_ATODMANAGERCPP_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDcpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDcpp.hpp new file mode 100644 index 000000000..864254636 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/AToDLowLevel/specific/AtoDcpp.hpp @@ -0,0 +1,58 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_PINS_MODULE_ATODLOWLEVEL_SPECIFIC_ATODCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_PINS_MODULE_ATODLOWLEVEL_SPECIFIC_ATODCPP_HPP_ + +#include + +template +void AtoD::init() { + const uint32_t resetAtoD = 0; + const uint32_t aToDRegulatorEnable = 0x10000000; + const uint32_t aToDEnable = 0x00000001; + const uint32_t aToDReady = 0x00000001; + + if (!isInit) { + isInit = true; + adcRegs->CR = resetAtoD; + adcRegs->CR |= aToDRegulatorEnable; + SystemMilliClock < LL > ::blockDelayMillis(2); + adcRegs->CR |= aToDEnable; + while (!(adcRegs->ISR & aToDReady)) + ; + adcRegs->ISR = aToDReady; + } +} + +template +uint16_t AtoD::performReading(uint8_t channelSource) { + const uint32_t disableInjectedQueue = 0x80000000; + + const uint32_t SMPR1MaxSampleTime = 0x3FFFFFFF; + const uint32_t SMPR2MaxSampleTime = 0x07FFFFFF; + + const uint32_t resetAtoDInterrupts = 0x7FF; + const uint32_t aToDStart = 0x4; + const uint32_t aToDComplete = 0x4; + const uint32_t aToDClearSequenceComplete = 0x8; + + adcRegs->CFGR = disableInjectedQueue; + adcRegs->CFGR2 = 0; + adcRegs->SMPR1 = SMPR1MaxSampleTime; + adcRegs->SMPR2 = SMPR2MaxSampleTime; + adcRegs->SQR1 = channelSource << 6; + adcRegs->ISR = resetAtoDInterrupts; + adcRegs->CR |= aToDStart; + while (!(adcRegs->ISR & aToDComplete)) + ; + uint16_t result = adcRegs->DR; + adcRegs->ISR |= aToDClearSequenceComplete; + return result; +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_PINS_MODULE_ATODLOWLEVEL_SPECIFIC_ATODCPP_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/lowlevel/specific/GpioManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/lowlevel/specific/GpioManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/lowlevel/specific/GpioManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/lowlevel/specific/GpioManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/lowlevel/specific/GpioNames.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/lowlevel/specific/GpioNames.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/lowlevel/specific/GpioNames.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/lowlevel/specific/GpioNames.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/pin-controller/PinController.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/pin-controller/PinController.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/pin-controller/PinController.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/pins-module/pin-controller/PinController.hpp diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartInternal.hpp new file mode 100644 index 000000000..e757f1c10 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartInternal.hpp @@ -0,0 +1,204 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTINTERNAL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTINTERNAL_HPP_ + +#include +#include +#include +#include + +#include + +template +class Uart; + +template +class UartInternal { +private: + UartRegisters *registers; + GpioPinName rx; + PinAlternateFunction rxFunction; + GpioPinName tx; + PinAlternateFunction txFunction; + SerialIdentifier id; + +public: + UartInternal() : + registers(NULL), rx(PA_1), rxFunction(0), tx(PA_1), txFunction(0), id(0) { + } + + UartInternal(GpioPinName rx, PinAlternateFunction rxFunction, GpioPinName tx, PinAlternateFunction txFunction, UartRegisters *registers, + SerialIdentifier id) : + registers(registers), rx(rx), rxFunction(rxFunction), tx(tx), txFunction(txFunction), id(id) { + } + + SerialIdentifier getId() { + return id; + } + + void init(uint32_t baud_rate, bool singleNdoubleStop) { + const uint32_t uartEnable = 0x01; + const uint32_t uartDoubleStopBit = 0x00002000; + + const uint32_t uart1RegisterClockEnable = 0x00004000; + const uint32_t uart1ClockSelectMask = 0x00000003; + const uint32_t uart1ClockSelectSysclk = 0x00000001; + + const uint32_t uart2RegisterClockEnable = 0x00020000; + const uint32_t uart2ClockSelectMask = 0x0000000C; + const uint32_t uart2ClockSelectSysclk = 0x00000004; + + const uint32_t uart3RegisterClockEnable = 0x00040000; + const uint32_t uart3ClockSelectMask = 0x00000030; + const uint32_t uart3ClockSelectSysclk = 0x00000010; + + const uint32_t uart4RegisterClockEnable = 0x00080000; + const uint32_t uart4ClockSelectMask = 0x000000C0; + const uint32_t uart4ClockSelectSysclk = 0x00000040; + + const uint32_t uart5RegisterClockEnable = 0x00100000; + const uint32_t uart5ClockSelectMask = 0x00000300; + const uint32_t uart5ClockSelectSysclk = 0x00000100; + + const uint32_t uart6RegisterClockEnable = 0x00000001; + const uint32_t uart6ClockSelectMask = 0x00000C00; + const uint32_t uart6ClockSelectSysclk = 0x00000400; + + const uint32_t uartRxFifoFullInterruptEnable = 0x80000000; + const uint32_t uartFifoEnable = 0x20000000; + const uint32_t uartIdleInterruptEnable = 0x10; + const uint32_t uartTransmitEnable = 0x08; + const uint32_t uartReceiveEnable = 0x04; + + const uint32_t uartRxFifoThresholdInterruptEnable = 0x10000000; + const uint32_t uartRxFifoThreshold1_4 = 0x06000000; + const uint32_t uartTxDmaEnable = 0x80; + + registers->CR1 &= ~uartEnable; //disable the peripheral + GpioManager::getPin(rx).init(); + GpioManager::getPin(tx).init(); + + GpioManager::getPin(rx).setPullMode(NoPull); + GpioManager::getPin(rx).setOutputMode(PushPull); + GpioManager::getPin(rx).setAlternateFunction(rxFunction); + GpioManager::getPin(rx).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(rx).setMode(AlternateFunction); + GpioManager::getPin(tx).setPullMode(NoPull); + GpioManager::getPin(tx).setOutputMode(PushPull); + GpioManager::getPin(tx).setAlternateFunction(txFunction); + GpioManager::getPin(tx).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(tx).setMode(AlternateFunction); + //enable the peripheral clock, set source to SYSCLK + if (id == 0) { + RCC->APB2ENR |= uart1RegisterClockEnable; + RCC->CCIPR &= ~uart1ClockSelectMask; + RCC->CCIPR |= uart1ClockSelectSysclk; + } else if (id == 1) { + RCC->APB1ENR1 |= uart2RegisterClockEnable; + RCC->CCIPR &= ~uart2ClockSelectMask; + RCC->CCIPR |= uart2ClockSelectSysclk; + } else if (id == 2) { + RCC->APB1ENR1 |= uart3RegisterClockEnable; + RCC->CCIPR &= ~uart3ClockSelectMask; + RCC->CCIPR |= uart3ClockSelectSysclk; + } else if (id == 3) { + RCC->APB1ENR1 |= uart4RegisterClockEnable; + RCC->CCIPR &= ~uart4ClockSelectMask; + RCC->CCIPR |= uart4ClockSelectSysclk; + } else if (id == 4) { + RCC->APB1ENR1 |= uart5RegisterClockEnable; + RCC->CCIPR &= ~uart5ClockSelectMask; + RCC->CCIPR |= uart5ClockSelectSysclk; + } else if (id == 5) { + RCC->APB1ENR2 |= uart6RegisterClockEnable; + RCC->CCIPR &= ~uart6ClockSelectMask; + RCC->CCIPR |= uart6ClockSelectSysclk; + } + + registers->CR1 = uartRxFifoFullInterruptEnable | uartFifoEnable | uartIdleInterruptEnable | uartTransmitEnable | uartReceiveEnable; + registers->CR2 = singleNdoubleStop ? 0 : uartDoubleStopBit; // sets standard logic levels, and MSB first + registers->CR3 = uartRxFifoThresholdInterruptEnable | uartRxFifoThreshold1_4 | uartTxDmaEnable; + registers->PRESC = 0; + uint32_t freq = ClockManager::getClock(SysClock)->getFreqKhz() * 1000; + uint32_t freqPresc = freq; + if (baud_rate < 100000) { //avoid overflows + while (baud_rate * 32768 <= freqPresc) { // if we have a really low baud rate, engage the prescaler to cope + freqPresc /= 2; + registers->PRESC++; + } + } + registers->BRR = freqPresc / baud_rate; + registers->CR1 |= uartEnable; //enable the peripheral + } + + void clearFlags() { + const uint32_t idle = 0x10; + + registers->ICR |= idle; + } + + bool takeReceiverFullFlag() { + const uint32_t rxFifoFull = 0x01000000; + const uint32_t rxFifoTrigger = 0x04000000; + + if ((registers->ISR & (rxFifoFull | rxFifoTrigger)) != 0) { + return true; + } + return false; + } + + bool takeIdleFlag() { + const uint32_t idle = 0x10; + + if ((registers->ISR & idle) != 0) { + registers->ICR |= idle; + return true; + } + return false; + } + + volatile uint8_t* getTransmitRegister() { + return (volatile uint8_t*) ®isters->TDR; + } + + int16_t read(); + + bool hasRxFifoData(); +}; +template +int16_t UartInternal::read() { + const uint32_t parityError = 0x01; + const uint32_t framingError = 0x02; + const uint32_t noiseError = 0x04; + const uint32_t overflowError = 0x08; + if ((registers->ISR & parityError) != 0) { + registers->ICR |= parityError; + return -SerialParityError; + } else if ((registers->ISR & framingError) != 0) { + registers->ICR |= framingError; + registers->RDR; + return -SerialFramingError; + } else if ((registers->ISR & noiseError) != 0) { + registers->ICR |= noiseError; + return -SerialNoiseError; + } else if ((registers->ISR & overflowError) != 0) { + registers->ICR |= overflowError; + return -SerialOverflowError; + } else { + return registers->RDR; + } +} + +template +bool UartInternal::hasRxFifoData() { + const uint32_t rxFifoNotEmpty = 0x20; + return (registers->ISR & rxFifoNotEmpty) != 0; +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_SERIAL_MODULE_LOWLEVEL_SPECIFIC_UARTINTERNAL_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/serial-module/lowlevel/specific/UartManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/ZcodeSystemModule.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/ZcodeSystemModule.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/ZcodeSystemModule.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/ZcodeSystemModule.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/Clock.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/Clock.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/Clock.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/Clock.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/ClockManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/ClockManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/ClockManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/ClockManager.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/SystemMilliClock.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/SystemMilliClock.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/SystemMilliClock.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/SystemMilliClock.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/ClockManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/ClockManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/ClockManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/ClockManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/Clockcpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/Clockcpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/Clockcpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/Clockcpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/SystemClocks.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/SystemClocks.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/SystemClocks.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/clock/specific/SystemClocks.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_armcc.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_armcc.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_armcc.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_armcc.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_armclang.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_armclang.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_armclang.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_armclang.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_compiler.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_compiler.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_compiler.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_compiler.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_gcc.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_gcc.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_gcc.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_gcc.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_iccarm.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_iccarm.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_iccarm.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_iccarm.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_version.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_version.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_version.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/cmsis_version.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_armv8mbl.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_armv8mbl.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_armv8mbl.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_armv8mbl.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_armv8mml.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_armv8mml.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_armv8mml.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_armv8mml.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm0.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm0.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm0.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm0.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm0plus.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm0plus.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm0plus.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm0plus.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm1.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm1.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm1.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm1.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm23.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm23.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm23.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm23.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm3.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm3.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm3.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm3.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm33.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm33.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm33.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm33.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm4.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm4.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm4.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm4.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm7.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm7.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm7.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_cm7.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_sc000.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_sc000.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_sc000.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_sc000.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_sc300.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_sc300.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_sc300.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/core_sc300.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/mpu_armv7.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/mpu_armv7.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/mpu_armv7.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/mpu_armv7.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/mpu_armv8.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/mpu_armv8.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/mpu_armv8.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/mpu_armv8.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g431xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g431xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g431xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g431xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g441xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g441xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g441xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g441xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g471xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g471xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g471xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g471xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g473xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g473xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g473xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g473xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g474xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g474xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g474xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g474xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g483xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g483xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g483xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g483xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g484xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g484xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g484xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g484xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g4xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g4xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g4xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32g4xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32gbk1cb.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32gbk1cb.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32gbk1cb.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/stm32gbk1cb.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/system_stm32g4xx.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/system_stm32g4xx.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/system_stm32g4xx.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/system_stm32g4xx.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/tz_context.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/tz_context.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/tz_context.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/core/tz_context.h diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/Dma.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/Dma.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/Dma.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/Dma.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/DmaManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/DmaManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/DmaManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/DmaManager.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaChannelInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaChannelInternal.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaChannelInternal.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaChannelInternal.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaMuxRequest.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaMuxRequest.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaMuxRequest.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaMuxRequest.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaRegisters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaRegisters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaRegisters.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/DmaRegisters.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/Dmacpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/Dmacpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/Dmacpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/dma/specific/Dmacpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/interrupt/InterruptManager.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/interrupt/InterruptManager.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/interrupt/InterruptManager.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/interrupt/InterruptManager.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/interrupt/InterruptManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/interrupt/InterruptManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/interrupt/InterruptManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/system/interrupt/InterruptManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/udp-module/lowlevel/SPI.h b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/udp-module/lowlevel/SPI.h similarity index 100% rename from receivers/native/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/udp-module/lowlevel/SPI.h rename to receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/udp-module/lowlevel/SPI.h diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbDefaultEndpoint.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbDefaultEndpoint.hpp new file mode 100644 index 000000000..5120eff69 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbDefaultEndpoint.hpp @@ -0,0 +1,441 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBDEFAULTENDPOINT_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBDEFAULTENDPOINT_HPP_ + +#include +#include "UsbRegisters.hpp" +#include "UsbEndpointRegister.hpp" + +enum UsbStandardControlMessageType { + GET_STATUS = 0, // give 0 every time + CLEAR_FEATURE = 1, // stall + SET_FEATURE = 3, // stall + SET_ADDRESS = 5, // set address + GET_DESCRIPTOR = 6, // send descriptor + SET_DESCRIPTOR = 7, // stall + GET_CONFIGURATION = 8, // send configured ? 1 : 0 + SET_CONFIGURATION = 9, // set configured + GET_INTERFACE = 10, // stall + SET_INTERFACE = 11, // stall + SYNCH_FRAME = 12, // stall +}; + +enum UsbClassControlMessageType { + SEND_ENCAPSULATED_COMMAND = 0, // ignore + GET_ENCAPSULATED_RESPONSE = 1, // return so many 0s + SET_LINE_CODING = 0x20, // set lineCoding + GET_LINE_CODING = 0x21, // send lineCoding + SET_CONTROL_LINE_STATE = 0x22 // nothing +}; + +template +class UsbDefaultEndpoint { + static const uint16_t maxPacketLength = 64; + static constexpr uint8_t deviceDescriptor[18] = { 18, 0x01, 0x00, 0x02, 0x02, 0x00, 1, 64, 0x00, 0x00, 0x00, 0x00, 0x10, 0, 0, 0, 0, 1 }; + static constexpr uint8_t configurationDescriptor[9] = { 9, 0x02, 67, 0, 2, 1, 0, 0x80, 0 }; + static constexpr uint8_t interface0Descriptor[9] = { 9, 0x04, 0, 0, 1, 0x02, 0x02, 1, 0 }; + static constexpr uint8_t interface0HeaderDescriptor[5] = { 5, 0x24, 0x00, 0x20, 0x01 }; + static constexpr uint8_t interface0CallManagementDescriptor[5] = { 5, 0x24, 0x01, 0x01, 0x01 }; + static constexpr uint8_t interface0ACMDescriptor[4] = { 4, 0x24, 0x02, 0x00 }; + static constexpr uint8_t interface0UnionDescriptor[5] = { 5, 0x24, 0x06, 0x00, 0x01 }; + static constexpr uint8_t interface0Endpoint1Descriptor[7] = { 7, 0x05, 0x81, 0x03, 8, 0, 0xFF }; //we need this endpoint, but it always NAKs... + static constexpr uint8_t interface1Descriptor[9] = { 9, 0x04, 1, 0, 2, 0x0A, 0x00, 0, 0 }; + // we use interrupt endpoints for the main data transfer, as they are easier to use, and have limited latency, + // but this limits our data rate to 64kB/s. If we want more, we can get it using bulk endpoints... + // it is unlikely that this will become a major issue however, as the Ethernet interface is there for the high-speed stuff. + static constexpr uint8_t interface1Endpoint2Descriptor[7] = { 7, 0x05, 0x82, 0x03, 64, 0, 1 }; //rx + static constexpr uint8_t interface1Endpoint3Descriptor[7] = { 7, 0x05, 0x02, 0x03, 64, 0, 1 }; //tx + + static constexpr uint8_t configurationDescriptorAll[67] = { 9, 0x02, 67, 0, 2, 1, 0, 0x80, 0, + 9, 0x04, 0, 0, 1, 0x02, 0x02, 1, 0, + 5, 0x24, 0x00, 0x20, 0x01, + 5, 0x24, 0x01, 0x01, 0x01, + 4, 0x24, 0x02, 0x00, + 5, 0x24, 0x06, 0x00, 0x01, + 7, 0x05, 0x81, 0x03, 8, 0, 0xFF, + 9, 0x04, 1, 0, 2, 0x0A, 0x00, 0, 0, + 7, 0x05, 0x82, 0x03, 64, 0, 1, + 7, 0x05, 0x02, 0x03, 64, 0, 1 }; + + UsbRegisters *registers; + UsbPbm *pbm; + UsbEndpointRegister endpointRegister; + + uint16_t txBufferStart; + uint16_t rxBufferStart; + + uint16_t expectedLength = 0; + bool expectedRxNTx = false; + bool statusExpected = false; + + bool configured = false; + bool isSendEncapsulated = false; + + uint32_t lineCodingBaud = 9600; + uint8_t lineCodingFormat = 0; + uint8_t lineCodingParity = 0; + uint8_t lineCodingBits = 8; + + uint8_t descriptorType = 0; + uint8_t descriptorOffset = 0; + + uint8_t nextAddr = 0; + + void __attribute__ ((noinline)) stallAll() { + //reset both interrupt sources as well + expectedLength = 0; + statusExpected = false; + endpointRegister.clearRxComplete(); + endpointRegister.clearTxComplete(); + endpointRegister.setEndpointRxStatus(UsbEndpointStall); + endpointRegister.setEndpointTxStatus(UsbEndpointStall); + } + + void setupNext() { + expectedLength = 0; + statusExpected = false; + endpointRegister.setEndpointKind(false); + endpointRegister.clearRxComplete(); + endpointRegister.clearTxComplete(); + ackRx(); + ackTx(); + } + + void receiveStatusNext() { + pbm->getbufferDescriptor()[0] = txBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[1] = 0; + endpointRegister.setEndpointKind(true); + statusExpected = true; + expectedRxNTx = true; + ackRx(); + ackTx(); + } + + void sendStatusNext() { + pbm->getbufferDescriptor()[0] = txBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[1] = 0; + statusExpected = true; + expectedRxNTx = false; + ackTx(); + ackRx(); + } + + void ackRx() { + endpointRegister.setEndpointRxStatus(UsbEndpointValid); + } + + void ackTx() { + endpointRegister.setEndpointTxStatus(UsbEndpointValid); + } + + void nackRx() { + endpointRegister.setEndpointRxStatus(UsbEndpointNak); + } + + void nackTx() { + endpointRegister.setEndpointTxStatus(UsbEndpointNak); + } + + void __attribute__((noinline)) stallRx() { + endpointRegister.setEndpointRxStatus(UsbEndpointStall); + } + + void __attribute__((noinline)) stallTx() { + endpointRegister.setEndpointTxStatus(UsbEndpointStall); + } + + uint16_t getRxLength() { + return pbm->getbufferDescriptor()[3] & 0x3FF; + } + + void parseSetup() { + uint8_t bmReqType = pbm->buffer[rxBufferStart] & 0xFF; + uint8_t bReq = pbm->buffer[rxBufferStart] >> 8; + uint16_t wValue = pbm->buffer[rxBufferStart + 1]; + uint16_t wIndex = pbm->buffer[rxBufferStart + 2]; + uint16_t wLength = pbm->buffer[rxBufferStart + 3]; + + // the following parses bits of the USB setup message... read the USB 2.0 spec for more details. + if ((bmReqType & 0x80) != 0) { + expectedRxNTx = false; + } else { + expectedRxNTx = true; + } + uint8_t type = (bmReqType >> 5) & 0x03; + uint8_t recipient = bmReqType & 0x1F; + if (type == 0) { + //standard request + UsbStandardControlMessageType reqType = (UsbStandardControlMessageType) bReq; + switch (reqType) { + case SET_ADDRESS: + if (wIndex != 0 || wLength != 0 || recipient != 0) { + stallAll(); + return; + } + nextAddr = wValue | 0x80; + sendStatusNext(); + return; + case GET_DESCRIPTOR: + descriptorType = wValue >> 8; + if (wIndex != 0 || recipient != 0 || (wValue & 0xFF) != 0 || (descriptorType != 1 && descriptorType != 2)) { + stallAll(); + return; + } + expectedLength = wLength; + sendDescriptor(); + return; + case SET_CONFIGURATION: + if ((wValue != 0 && wValue != 1) || wIndex != 0 || wLength != 0 || recipient != 0) { + stallAll(); + return; + } + configured = wValue != 0; + sendStatusNext(); + return; + case GET_CONFIGURATION: + if (wValue != 0 || wIndex != 0 || wLength != 1 || recipient != 0 || !expectedRxNTx) { + stallAll(); + return; + } + pbm->buffer[txBufferStart] = configured ? 1 : 0; + pbm->getbufferDescriptor()[0] = txBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[1] = 1; + expectedLength = 0; + ackTx(); + ackRx(); + return; + case GET_STATUS: //simply transmit a zero... + if (wValue != 0 || wIndex != 0 || wLength != 2 || recipient > 2 || !expectedRxNTx) { + stallAll(); + return; + } + pbm->buffer[txBufferStart] = 0; + pbm->getbufferDescriptor()[0] = txBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[1] = 2; + expectedLength = 0; + ackTx(); + stallRx(); + return; + default: + stallAll(); + return; + } + } else { + stallAll(); + return; + } + } + + void parseRxData() { + if (statusExpected && expectedRxNTx) { + statusExpected = false; + endpointRegister.setEndpointKind(false); + setupNext(); + return; + } else if (statusExpected) { + sendStatusNext(); + return; + } + uint16_t length = getRxLength(); + if (length == expectedLength) { + sendStatusNext(); + } + if (length > expectedLength) { + stallAll(); + return; + } + if (length < expectedLength) { + expectedLength -= length; + } + // Do something with the data... we need to flush the buffer whether this is the last packet or not... + // if there is an error, just stallAll and return + + if (!isSendEncapsulated) { + // We must be in the SET_LINE_CODING command, as it is the only one we transmit for - this has only one packet of data - great!! + lineCodingBaud = pbm->buffer[rxBufferStart] | (pbm->buffer[rxBufferStart + 1] << 16); + lineCodingFormat = pbm->buffer[rxBufferStart + 2] & 0xFF; + lineCodingParity = pbm->buffer[rxBufferStart + 2] >> 8; + lineCodingBits = pbm->buffer[rxBufferStart + 3] & 0xFF; + } + if (length != expectedLength) { + ackRx(); + stallTx(); + } + } + + void sendDescriptor() { + uint8_t lengthToSend = maxPacketLength; + if (expectedLength < maxPacketLength) { + lengthToSend = expectedLength; + } + const uint8_t *data = NULL; + if (descriptorType == 1) { + data = deviceDescriptor; + } else { + data = configurationDescriptorAll; + } + if (descriptorType == 1 && lengthToSend > sizeof(deviceDescriptor)) { + lengthToSend = sizeof(deviceDescriptor); + expectedLength = lengthToSend; + } else if (descriptorType == 2 && lengthToSend > sizeof(configurationDescriptorAll)) { + lengthToSend = sizeof(configurationDescriptorAll); + expectedLength = lengthToSend; + } + expectedLength -= lengthToSend; + bool posInHW = false; + for (descriptorOffset = 0; descriptorOffset < lengthToSend; descriptorOffset++) { + if (posInHW) { + pbm->buffer[txBufferStart + descriptorOffset / sizeof(uint16_t)] |= data[descriptorOffset] << 8; + } else { + pbm->buffer[txBufferStart + descriptorOffset / sizeof(uint16_t)] = data[descriptorOffset]; + } + posInHW = !posInHW; + } + pbm->getbufferDescriptor()[0] = txBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[1] = lengthToSend; + ackTx(); + ackRx(); + } + + void sentTxData() { + if (statusExpected && !expectedRxNTx) { + statusExpected = false; + endpointRegister.setEndpointKind(false); + setupNext(); + if (nextAddr != 0) { + registers->DADDR = nextAddr; + nextAddr = 0; + } + return; + } else if (statusExpected) { + receiveStatusNext(); + return; + } + + if (expectedLength == 0 || descriptorType == 1) { + receiveStatusNext(); + return; + } + uint16_t lengthToSend = maxPacketLength; + if (expectedLength < maxPacketLength) { + lengthToSend = expectedLength; + } + // Generate the new data to send... + // if there is an error, just stallAll and return + + //the only multi-packet transmit we do is device descriptors, so just assume we're doing those... + const uint8_t *data = NULL; + if (descriptorType == 1) { + data = deviceDescriptor; + } else { + data = configurationDescriptorAll; + } + if (descriptorType == 1 && lengthToSend + descriptorOffset > sizeof(deviceDescriptor)) { + lengthToSend = sizeof(deviceDescriptor) - descriptorOffset; + expectedLength = lengthToSend; + } else if (descriptorType == 2 && lengthToSend + descriptorOffset > sizeof(configurationDescriptorAll)) { + lengthToSend = sizeof(configurationDescriptorAll) - descriptorOffset; + expectedLength = lengthToSend; + } + expectedLength -= lengthToSend; + bool posInHW = false; + for (int i = 0; i < lengthToSend; descriptorOffset++, i++) { + if (posInHW) { + pbm->buffer[txBufferStart + i / 2] |= data[descriptorOffset] << 8; + } else { + pbm->buffer[txBufferStart + i / 2] = data[descriptorOffset]; + } + posInHW = !posInHW; + } + pbm->getbufferDescriptor()[0] = txBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[1] = lengthToSend; + + ackRx(); + ackTx(); + } + + void packetReceived() { + nackRx(); + nackTx(); + if (endpointRegister.getSetupLast()) { + parseSetup(); + endpointRegister.clearRxComplete(); + } else { + if (expectedRxNTx && endpointRegister.getRxComplete()) { + parseRxData(); + endpointRegister.clearRxComplete(); + } else if (!expectedRxNTx && endpointRegister.getTxComplete()) { + sentTxData(); + endpointRegister.clearTxComplete(); + } else { + stallAll(); + } + } + } + +public: + void setup(UsbRegisters *registers, UsbPbm *pbm, volatile uint16_t *endpointRegister, uint16_t txBufferStart, uint16_t rxBufferStart) { + this->registers = registers; + this->pbm = pbm; + this->endpointRegister = UsbEndpointRegister(endpointRegister); + this->txBufferStart = txBufferStart; + this->rxBufferStart = rxBufferStart; + this->endpointRegister.resetAll(); + this->endpointRegister.setEndpointType(UsbControlEndpoint); + expectedLength = 0; + expectedRxNTx = false; + statusExpected = false; + configured = false; + isSendEncapsulated = false; + descriptorType = 1; + descriptorOffset = 0; + nextAddr = 0; + setupNext(); + + const uint16_t rxBlockSize32Byte = 0x8000; + const uint16_t rx2Blocks = 0x0400; + + pbm->getbufferDescriptor()[0] = txBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[1] = 0; + pbm->getbufferDescriptor()[2] = rxBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[3] = rxBlockSize32Byte | rx2Blocks; // give us 64 bytes of input - should be enough. + } + + void interrupt() { + packetReceived(); + } +}; + +template +constexpr uint8_t UsbDefaultEndpoint::deviceDescriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::configurationDescriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface0Descriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface0HeaderDescriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface0CallManagementDescriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface0ACMDescriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface0UnionDescriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface0Endpoint1Descriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface1Descriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface1Endpoint2Descriptor[]; +template +constexpr uint8_t UsbDefaultEndpoint::interface1Endpoint3Descriptor[]; + +template +constexpr uint8_t UsbDefaultEndpoint::configurationDescriptorAll[]; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBDEFAULTENDPOINT_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbEndpointRegister.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbEndpointRegister.hpp new file mode 100644 index 000000000..fde0fb77c --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbEndpointRegister.hpp @@ -0,0 +1,153 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBENDPOINTREGISTER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBENDPOINTREGISTER_HPP_ + +#include +#include "UsbRegisters.hpp" + +enum UsbEndpointType { + UsbBulkEndpoint = 0, + UsbControlEndpoint = 1, + UsbIsoEndpoint = 2, + UsbInterruptEndpoint = 3, +}; +enum UsbResponseStatus { + UsbEndpointDisabled = 0, + UsbEndpointStall = 1, + UsbEndpointNak = 2, + UsbEndpointValid = 3, +}; + +class UsbEndpointRegister { +private: + static const uint16_t rxComplete = 0x8000; + static const uint16_t rxDataToggle = 0x4000; + static const uint16_t rxStat = 0x3000; + static const uint16_t setupLast = 0x0800; + static const uint16_t epType = 0x0600; + static const uint16_t epKind = 0x0100; + static const uint16_t txComplete = 0x0080; + static const uint16_t txDataToggle = 0x0040; + static const uint16_t txStat = 0x0030; + static const uint16_t epAddr = 0x000F; + + volatile uint16_t *reg; + + uint16_t generateNoOpValue() { + uint16_t val = rxComplete | txComplete; + val |= (*reg) & (epType | epKind | epAddr); + return val; + } + +public: + UsbEndpointRegister() : + reg(NULL) { + } + + UsbEndpointRegister(volatile uint16_t *reg) : + reg(reg) { + } + + void setEndpointAddress(uint8_t addr) { + uint16_t val = (generateNoOpValue() & ~epAddr) | (addr & epAddr); + *reg = val; + } + + void setEndpointType(UsbEndpointType type) { + uint16_t val = (generateNoOpValue() & ~epType) | (type << 9); + *reg = val; + } + + void setEndpointRxStatus(UsbResponseStatus status) { + uint16_t current = *reg; + current ^= status << 12; + current &= rxStat; + uint16_t val = generateNoOpValue() | current; + *reg = val; + } + + void setEndpointTxStatus(UsbResponseStatus status) { + uint16_t current = *reg; + current ^= status << 4; + current &= txStat; + uint16_t val = generateNoOpValue() | current; + *reg = val; + } + + void setEndpointKind(bool highNLow) { + uint16_t val = generateNoOpValue(); + if (highNLow) { + val |= epKind; + } else { + val &= ~epKind; + } + *reg = val; + } + + void clearRxComplete() { + uint16_t val = generateNoOpValue() & ~rxComplete; + *reg = val; + } + + void clearTxComplete() { + uint16_t val = generateNoOpValue() & ~txComplete; + *reg = val; + } + + void clearRxDataToggle() { + uint16_t current = *reg; + current &= rxDataToggle; + uint16_t val = generateNoOpValue() | current; + *reg = val; + } + + void setRxDataToggle() { + uint16_t current = *reg; + current ^= rxDataToggle; + current &= rxDataToggle; + uint16_t val = generateNoOpValue() | current; + *reg = val; + } + + void clearTxDataToggle() { + uint16_t current = *reg; + current &= txDataToggle; + uint16_t val = generateNoOpValue() | current; + *reg = val; + } + + void setTxDataToggle() { + uint16_t current = *reg; + current ^= txDataToggle; + current &= txDataToggle; + uint16_t val = generateNoOpValue() | current; + *reg = val; + } + + bool getRxComplete() { + return (*reg & rxComplete) != 0; + } + + bool getTxComplete() { + return (*reg & txComplete) != 0; + } + + bool getSetupLast() { + return (*reg & setupLast) != 0; + } + + void resetAll() { + uint16_t val = *reg; + val ^= 0x0000; + val &= (rxDataToggle | rxStat | txDataToggle | txStat); + *reg = val; + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBENDPOINTREGISTER_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInternal.hpp new file mode 100644 index 000000000..9e5eabd4d --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInternal.hpp @@ -0,0 +1,174 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBINTERNAL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBINTERNAL_HPP_ + +#include +#include +#include +#include +#include "UsbRegisters.hpp" + +#include "UsbDefaultEndpoint.hpp" +#include "UsbInterruptDataEndpoint.hpp" + +template +class UsbInternal { + UsbDefaultEndpoint defaultEndpoint; + UsbInterruptDataEndpoint dataEndpoint; + UsbRegisters *registers; + UsbEndpointRegisters *endpointRegisters; + UsbPbm *pbm; + + void interrupt() { + const uint16_t resetRequested = 0x0400; + const uint16_t dataReceived = 0x8000; + const uint16_t receivedEndpointMask = 0x0F; + if ((registers->ISTR & resetRequested) != 0) { // we are in a reset... do that thing! + reset(); + } else if ((registers->ISTR & dataReceived) != 0) { + if ((registers->ISTR & receivedEndpointMask) == 0) { + defaultEndpoint.interrupt(); + } else { + dataEndpoint.interrupt(); + } + } else { + registers->ISTR = 0; + } + } + + UsbInternal() : + registers(NULL), endpointRegisters(NULL), pbm(NULL) { + } + + static void UsbDataTxOverflowCallback(SerialIdentifier id) { + (void) id; + UsbInternal::usbI.checkBuffers(); + } + + static void UsbInterrupt(uint8_t i) { + (void) i; + UsbInternal::usbI.interrupt(); + } + +public: + static UsbInternal usbI; + + void setup() { + const uint32_t clockRecoveryRegisterClockEnable = 0x100; + const uint32_t usbRegisterClockEnable = 0x00800000; + const uint32_t clockRecoveryEnable = 0x20; + const uint32_t clockRecoveryAutoTuneEnable = 0x40; + + const uint32_t usbClockSelectMask = 0x0C000000; + + const uint16_t transferCompleteInterruptEnable = 0x8000; + const uint16_t resetInterruptEnable = 0x0400; + const uint16_t usbPowerDisable = 0x0002; + + const uint16_t dpPullUpEnable = 0x8000; + const uint16_t enableReception = 0x0080; + + const uint16_t sendResume = 0x0010; + + SystemMilliClock::blockDelayMillis(1); + InterruptManager::setInterrupt(&UsbInternal::UsbInterrupt, UsbInt); + + GpioManager::activateClock(PA_11); + GpioManager::activateClock(PA_12); + GpioManager::getPin(PA_11).init(); + GpioManager::getPin(PA_11).setMode(Output); + GpioManager::getPin(PA_11).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(PA_11).setOutputMode(PushPull); + GpioManager::getPin(PA_12).init(); + GpioManager::getPin(PA_12).setMode(Output); + GpioManager::getPin(PA_12).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(PA_12).setOutputMode(PushPull); + + ClockManager::getClock(HSI48)->set(48000, NONE); + RCC->APB1ENR1 |= usbRegisterClockEnable | clockRecoveryRegisterClockEnable; + *((uint32_t*) 0x40002000) |= clockRecoveryAutoTuneEnable | clockRecoveryEnable; //enable the CRS system for clock generation, with auto trim enabled + RCC->CCIPR &= ~usbClockSelectMask; + SystemMilliClock::blockDelayMillis(1); + + registers = (UsbRegisters*) 0x40005C40; + endpointRegisters = (UsbEndpointRegisters*) 0x40005C00; + pbm = (UsbPbm*) 0x40006000; + + registers->CNTR = transferCompleteInterruptEnable | resetInterruptEnable | usbPowerDisable; + SystemMilliClock::blockDelayMillis(1); + registers->CNTR = transferCompleteInterruptEnable | resetInterruptEnable; + SystemMilliClock::blockDelayMillis(5); + registers->ISTR = 0; + registers->BTABLE = 0; + registers->LPMCSR = 0; + + defaultEndpoint.setup(registers, pbm, (volatile uint16_t*) &(endpointRegisters->EP0R), 32, 96); + + UsbEndpointRegister ep1r((volatile uint16_t*) &endpointRegisters->EP1R); + ep1r.resetAll(); + ep1r.setEndpointType(UsbInterruptEndpoint); + ep1r.setEndpointAddress(1); + ep1r.setEndpointTxStatus(UsbEndpointNak); //minimal setup for endpoint 1, to just NAK everything... + + dataEndpoint.setup(pbm, (volatile uint16_t*) &(endpointRegisters->EP2R), 160, 224, 2); + + registers->BCDR = dpPullUpEnable; + registers->DADDR = enableReception; + SystemMilliClock::blockDelayMillis(1); + registers->CNTR |= sendResume; + SystemMilliClock::blockDelayMillis(5); + registers->CNTR &= ~sendResume; + InterruptManager::enableInterrupt(UsbInt, 0, 1); + InterruptManager::enableInterrupt(UsbInt, 1, 1); + dataEndpoint.getTxBuffer()->setCallback(&UsbInternal::UsbDataTxOverflowCallback, LL::HW::uartCount); + } + + void reset() { + const uint16_t transferCompleteInterruptEnable = 0x8000; + const uint16_t resetInterruptEnable = 0x0400; + + const uint16_t dpPullUpEnable = 0x8000; + const uint16_t enableReception = 0x0080; + + registers->CNTR = transferCompleteInterruptEnable | resetInterruptEnable; + registers->ISTR = 0; + registers->BTABLE = 0; + registers->LPMCSR = 0; + defaultEndpoint.setup(registers, pbm, (volatile uint16_t*) &(endpointRegisters->EP0R), 32, 96); + + endpointRegisters->EP1R = ((endpointRegisters->EP1R) & 0x0000) | (((endpointRegisters->EP1R) ^ 0x0000) & 0x7070); + endpointRegisters->EP1R |= 0x0621; //minimal setup for endpoint 1, to just NAK everything... + + dataEndpoint.setup(pbm, (volatile uint16_t*) &(endpointRegisters->EP2R), 160, 224, 2); + + registers->BCDR = dpPullUpEnable; + registers->DADDR = enableReception; + } + + void setTargetValue(void (*volatile targetValueCallback)(), uint8_t targetValue) { + dataEndpoint.setTargetValue(targetValueCallback, targetValue); + } + void clearTargetValue() { + dataEndpoint.clearTargetValue(); + } + void checkBuffers() { + dataEndpoint.checkBuffers(); + } + SerialRingBuffer* getRxBuffer() { + return dataEndpoint.getRxBuffer(); + } + SerialRingBuffer* getTxBuffer() { + return dataEndpoint.getTxBuffer(); + } +}; + +template +UsbInternal UsbInternal::usbI; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBINTERNAL_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInterruptDataEndpoint.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInterruptDataEndpoint.hpp new file mode 100644 index 000000000..12d443434 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbInterruptDataEndpoint.hpp @@ -0,0 +1,140 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBINTERRUPTDATAENDPOINT_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBINTERRUPTDATAENDPOINT_HPP_ + +#include +#include +#include "UsbRegisters.hpp" +#include "UsbEndpointRegister.hpp" + +template +class UsbInterruptDataEndpoint { + + static const uint16_t maxPacketLength = 64; + + void (*volatile targetValueCallback)() = NULL; + uint8_t targetValue = 0; + + UsbPbm *pbm; + UsbEndpointRegister endpointRegister; + SerialRingBuffer rxBuffer; + SerialRingBuffer txBuffer; + + uint16_t txPbmBufferStart; + uint16_t rxPbmBufferStart; + + uint8_t endpointIndex; + + void ackRx() { + endpointRegister.setEndpointRxStatus(UsbEndpointValid); + } + void ackTx() { + endpointRegister.setEndpointTxStatus(UsbEndpointValid); + } + void nackRx() { + endpointRegister.setEndpointRxStatus(UsbEndpointNak); + } + void nackTx() { + endpointRegister.setEndpointTxStatus(UsbEndpointNak); + } + void stallRx() { + endpointRegister.setEndpointRxStatus(UsbEndpointStall); + } + void stallTx() { + endpointRegister.setEndpointTxStatus(UsbEndpointStall); + } +// we don't use DMAs because setting them up would take longer than iterating the transmit loop a few times +// 64 bytes isn't much, and it doesn't happen that often. + void __attribute__ ((noinline)) parseRxData() { + const uint16_t rxByteCountMask = 0x3FF; + + uint16_t rxLength = pbm->getbufferDescriptor()[4 * endpointIndex + 3] & rxByteCountMask; + uint8_t *data = (uint8_t*) (pbm->buffer + rxPbmBufferStart); + if (targetValueCallback != NULL) { + for (int i = 0; i < rxLength; ++i) { + if (data[i] == targetValue) { + targetValueCallback(); + } + } + } + rxBuffer.write(data, rxLength); + if (rxBuffer.canWrite(maxPacketLength)) { + ackRx(); + } + } + void __attribute__ ((noinline)) sentTxData() { + uint16_t txLength = txBuffer.read16(pbm->buffer + txPbmBufferStart, maxPacketLength); + pbm->getbufferDescriptor()[4 * endpointIndex + 1] = txLength; + if (txLength != 0) { + ackTx(); + } + } +public: + + UsbInterruptDataEndpoint() : + pbm(NULL), endpointRegister(NULL), txPbmBufferStart(0), rxPbmBufferStart(0), endpointIndex(0) { + } + + void setup(UsbPbm *pbm, volatile uint16_t *endpointRegister, uint16_t txBufferStart, uint16_t rxBufferStart, uint8_t endpointIndex) { + this->pbm = pbm; + this->endpointRegister = UsbEndpointRegister(endpointRegister); + this->txPbmBufferStart = txBufferStart; + this->rxPbmBufferStart = rxBufferStart; + this->endpointIndex = endpointIndex; + this->endpointRegister.resetAll(); + this->endpointRegister.setEndpointAddress(endpointIndex); + this->endpointRegister.setEndpointType(UsbInterruptEndpoint); + nackTx(); + nackRx(); + + checkBuffers(); + + const uint16_t rxBlockSize32Byte = 0x8000; + const uint16_t rx2Blocks = 0x0400; + + pbm->getbufferDescriptor()[endpointIndex * 4 + 0] = txBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[endpointIndex * 4 + 1] = 0; + pbm->getbufferDescriptor()[endpointIndex * 4 + 2] = rxBufferStart * sizeof(uint16_t); + pbm->getbufferDescriptor()[endpointIndex * 4 + 3] = rxBlockSize32Byte | rx2Blocks; // give us 64 bytes of input space - the maximum packet size + } + void setTargetValue(void (*volatile targetValueCallback)(), uint8_t targetValue) { + this->targetValueCallback = targetValueCallback; + this->targetValue = targetValue; + } + void clearTargetValue() { + this->targetValueCallback = NULL; + this->targetValue = 0; + } + void interrupt() { + if (endpointRegister.getRxComplete()) { + parseRxData(); + endpointRegister.clearRxComplete(); + } else if (endpointRegister.getTxComplete()) { + sentTxData(); + endpointRegister.clearTxComplete(); + } + } + void checkBuffers() { + if (txBuffer.available() > 0) { + sentTxData(); + ackTx(); + } + if (rxBuffer.canWrite(maxPacketLength)) { + ackRx(); + } + } + SerialRingBuffer* getRxBuffer() { + return &rxBuffer; + } + SerialRingBuffer* getTxBuffer() { + return &txBuffer; + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBINTERRUPTDATAENDPOINT_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbRegisters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbRegisters.hpp new file mode 100644 index 000000000..163448f62 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usb-module/lowlevel/specific/UsbRegisters.hpp @@ -0,0 +1,41 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBREGISTERS_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBREGISTERS_HPP_ + +#include +struct UsbRegisters { + volatile uint32_t CNTR; + volatile uint32_t ISTR; + volatile uint32_t FNR; + volatile uint32_t DADDR; + volatile uint32_t BTABLE; + volatile uint32_t LPMCSR; + volatile uint32_t BCDR; +}; + +struct UsbEndpointRegisters { + volatile uint32_t EP0R; + volatile uint32_t EP1R; + volatile uint32_t EP2R; + volatile uint32_t EP3R; + volatile uint32_t EP4R; + volatile uint32_t EP5R; + volatile uint32_t EP6R; + volatile uint32_t EP7R; +}; + +struct UsbPbm { + uint16_t buffer[512]; + + uint16_t* getbufferDescriptor() { + return buffer; + } +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USB_MODULE_LOWLEVEL_SPECIFIC_USBREGISTERS_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp new file mode 100644 index 000000000..9c98d61a7 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdInternal.hpp @@ -0,0 +1,652 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDINTERNAL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDINTERNAL_HPP_ + +#include +#include +#include +#include +#include "UcpdParser.hpp" + +enum PowerStatus { + Negotiating, + ContractMade, // has a contract - not nessesarily the right one + UnresponsiveSource, // defaulting to 5v, talking to a resistor + SourceCannotProvideVoltage, // source cannot provide a voltage in range + NewVoltageContractMade, // voltage contract changed - power needs satisfied + NewVoltageInsufficientCurrent, // voltage contract changed - power needs not satisfied + SourceCannotProvideCurrent, // just changed current, not enough for stated requirements + HardResetImminent, + OverCurrentAlert, + OverTemperatureAlert, + OverVoltageAlert +}; +enum VoltageNegotiationStrategy { + HighestPower, // defaults to higher voltage if same + HighestCurrent, // defaults to higher voltage if same + LowestVoltage, + HighestVoltage, + HighestPower10DefaultLow, // if within 10% of larger power, use lower voltage + HighestPower20DefaultLow, // if within 20% of larger power, use lower voltage +}; +class PowerContract { + uint16_t minVoltage; + uint16_t maxVoltage; + uint16_t current; + +public: + PowerContract(uint16_t minVoltage, uint16_t maxVoltage, uint16_t current) : + minVoltage(minVoltage), maxVoltage(maxVoltage), current(current) { + } + uint16_t getMinVoltage() { + return minVoltage; + } + uint16_t getMaxVoltage() { + return maxVoltage; + } + uint16_t getCurrent() { + return current; + } + uint16_t getPower() { + return ((uint32_t) (current / 10) * (uint32_t) (minVoltage / 10)) / 5; + } +}; + +// voltages in 50mV units +// currents in 10mA units +// powers in 250mW units +template +class UcpdInternal { + + static void doNotUseMessage(UcpdMessage *m) { + (void) m; + } + + static volatile uint32_t expectResponseTime; + static volatile uint32_t resendTime; + static volatile uint32_t hardResetAt; + static volatile bool hardResetTiming; + static volatile bool resendRequestTiming; + static volatile bool expectResponse; + + static bool useChunking; + + static void (*powerStatusChangeCallback)(PowerStatus, PowerContract); + static void (*messageOfInterestCallback)(UcpdMessage*); + + static uint32_t *unInitialisedStore; + + static uint16_t absMinVoltage; + static uint16_t absMaxVoltage; + static VoltageNegotiationStrategy strategy; + + static PowerContract currentContract; + + static PowerContract requestedContract; + + static uint16_t currentContractMaxCurrent; + static uint8_t currentContractObjectPosition; + + static uint16_t targetAbsMinVoltage; + static uint16_t targetAbsMaxVoltage; + + static uint16_t targetCurrent; + + static uint8_t hardResetCount; + static bool hasAttemptedSoftReset; + static bool hasSentHardReset; + + static bool voltageMismatch; + + static bool hasContract; + + static void hardResetHandler() { + *unInitialisedStore = hardResetCount | 0x80000000; + hardResetTiming = true; + powerStatusChangeCallback(HardResetImminent, currentContract); + hardResetAt = SystemMilliClock::getTimeMillis() + 500; + } + static void messageSentHandler(UcpdMessageSentStatus status) { + if (status != GoodCrcReceived) { + if (status != SoftResetFailed && !hasAttemptedSoftReset) { + hasAttemptedSoftReset = true; + UcpdParser::sendSoftReset(); + UcpdParser::softReset(); + } else { + hasAttemptedSoftReset = false; + UcpdParser::sendHardReset(); + resendRequestTiming = false; + expectResponse = false; + hardResetAt = SystemMilliClock::getTimeMillis() + 500; + hardResetTiming = true; + } + } + } + static void messageReceivedHandler(UcpdMessage *message) { + if (message->getUcpdMessageType() == ExtendedMessage) { + UcpdExtendedMessage *extendedMessage = (UcpdExtendedMessage*) message; + if (useChunking) { + UcpdControlMessage message(NotSupported); + UcpdParser::sendMessage(&message); + } else { + if (extendedMessage->getUcpdExtendedMessageType() == GetManufacturerInfo) { + sendManufacturerInfo(); + } else if (extendedMessage->getUcpdExtendedMessageType() == ManufacturerInfo + || extendedMessage->getUcpdExtendedMessageType() == SourceCapabilitiesExtended + || extendedMessage->getUcpdExtendedMessageType() == PPSStatus + || extendedMessage->getUcpdExtendedMessageType() == Status) { + messageOfInterestCallback(message); + } else { + UcpdControlMessage message(NotSupported); + UcpdParser::sendMessage(&message); + } + } + } else if (message->getUcpdMessageType() == ControlMessage) { + UcpdControlMessage *controlMessage = (UcpdControlMessage*) message; + switch (controlMessage->getUcpdControlMessageType()) { + case Accept: + if (hasAttemptedSoftReset) { + hasAttemptedSoftReset = false; + UcpdParser::resendCurrent(); + } else { + currentContract = requestedContract; + hardResetAt = SystemMilliClock::getTimeMillis() + 500; + hardResetTiming = true; + } + break; + case Reject: + powerStatusChangeCallback(SourceCannotProvideVoltage, currentContract); + break; + case PSRdy: + hasContract = true; + hardResetTiming = false; + powerStatusChangeCallback(ContractMade, currentContract); + hardResetCount = 0; + break; + case GetSinkCap: + sendSinkCap(); + break; + case SoftReset: + { + hasAttemptedSoftReset = false; + UcpdControlMessage accept(Accept); + UcpdParser::sendMessage(&accept); + } + break; + case GetSinkCapExtended: + sendSinkCapExtended(); + break; + case Wait: + resendTime = SystemMilliClock::getTimeMillis() + 100; + resendRequestTiming = true; + break; + case NotSupported: + break; + default: + { + UcpdControlMessage ns(NotSupported); + UcpdParser::sendMessage(&ns); + } + break; + } + } else { + UcpdDataMessage *dataMessage = (UcpdDataMessage*) message; + switch (dataMessage->getUcpdDataMessageType()) { + case SourceCapabilities: + messageOfInterestCallback(message); + useChunking = !((UcpdSourceCapabilitiesMessage*) dataMessage)->hasUnchunkedExtendedMessageSupport(); + hardResetCount = 0; + hasAttemptedSoftReset = false; + expectResponse = false; + hardResetTiming = false; + choosePowerContract((UcpdSourceCapabilitiesMessage*) dataMessage); + break; + case Alert: + { + messageOfInterestCallback(message); + UcpdAlertMessage *alertMessage = (UcpdAlertMessage*) dataMessage; + if (alertMessage->hasOcpEvent()) { + powerStatusChangeCallback(OverCurrentAlert, currentContract); + } + if (alertMessage->hasOvpEvent()) { + powerStatusChangeCallback(OverVoltageAlert, currentContract); + } + if (alertMessage->hasOtpEvent()) { + powerStatusChangeCallback(OverTemperatureAlert, currentContract); + } + sendGetStatus(); + } + break; + case GetCountryInfo: + case Request: + case BIST: + case SinkCapabilities: + case BatteryStatus: + case EnterUSB: + { + UcpdControlMessage ns(NotSupported); + UcpdParser::sendMessage(&ns); + } + break; + default: + break; + } + } + } + static void sendSinkCap() { + UcpdSinkCapabilitiesMessage message(false, true, false, true, false); + message.addPDO(PowerDataObject(5 * 20, 5 * 20, targetCurrent)); //need a vSafe5v PDO + if (absMaxVoltage > 5 * 20 && absMinVoltage < 5 * 20) { //check for a good 5v PDO + message.addPDO(PowerDataObject(5 * 20, 5 * 20, targetCurrent)); + } + if (absMaxVoltage > 9 * 20 && absMinVoltage < 9 * 20) { //check for a good 9v PDO + message.addPDO(PowerDataObject(9 * 20, 9 * 20, targetCurrent)); + } + if (absMaxVoltage > 15 * 20 && absMinVoltage < 15 * 20) { //check for a good 15v PDO + message.addPDO(PowerDataObject(15 * 20, 15 * 20, targetCurrent)); + } + if (absMaxVoltage > 20 * 20 && absMinVoltage < 20 * 20) { //check for a good 20v PDO + message.addPDO(PowerDataObject(20 * 20, 20 * 20, targetCurrent)); + } + message.addPDO(PowerDataObject(absMaxVoltage, absMinVoltage, targetCurrent)); //check for a good variable power supply + UcpdParser::sendMessage(&message); + } + static void sendSinkCapExtended() { + uint16_t vidTmp = LL::ucpdVID; + uint16_t pidTmp = LL::ucpdPID; + uint32_t xidTmp = LL::ucpdXID; + uint8_t *vid = (uint8_t*) &vidTmp; + uint8_t *pid = (uint8_t*) &pidTmp; + uint8_t *xid = (uint8_t*) &xidTmp; + uint8_t data[21] = { vid[findBytePairInvertedAddress(0)], vid[findBytePairInvertedAddress(1)], + pid[findBytePairInvertedAddress(0)], pid[findBytePairInvertedAddress(1)], + xid[findDataObjectInvertedAddress(0)], xid[findDataObjectInvertedAddress(1)], + xid[findDataObjectInvertedAddress(2)], xid[findDataObjectInvertedAddress(3)], + // assumes no overload, gives lots of load step (500mA/us as opposed to 150mA/us) + LL::ucpdFirmwareRevisionNum, LL::ucpdHardwareRevisionNum, 1, 0, 0x00, 0x00, 0, 0, 0, 0x02, // the 2 means it is VBus Powered + LL::ucpdMinPower, LL::ucpdOperationalPower, LL::ucpdMaxPower }; + UcpdExtendedMessage message(SinkCapabilitiesExtended, useChunking, 0, false, 21, data); + UcpdParser::sendMessage(&message); + } + static void sendManufacturerInfo() { + int i = 0; + for (; LL::ucpdManufacturerInfo[i] != 0; i++) + ; + UcpdExtendedMessage message(ManufacturerInfo, false, 0, false, i, (const uint8_t*) LL::ucpdManufacturerInfo); + UcpdParser::sendMessage(&message); + } + + static void choosePowerContract(UcpdSourceCapabilitiesMessage *cap) { + uint8_t validOptions[7]; + uint8_t optionNum = 0; + for (uint8_t i = 0; i < cap->getPdoNum(); ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMaximumVoltage() <= targetAbsMaxVoltage && obj.getMinimumVoltage() >= targetAbsMinVoltage) { + validOptions[optionNum++] = i; + } + } + uint8_t winner; + PowerStatus endStatus = NewVoltageContractMade; + if (optionNum == 0) { + winner = 0; + endStatus = SourceCannotProvideVoltage; + } else if (optionNum == 1) { + winner = validOptions[0]; + } else if (strategy == HighestPower) { + uint32_t highestPower = 0; + int currentBest = 0; + for (int i = 0; i < optionNum; ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent() >= highestPower) { + currentBest = i; + highestPower = obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent(); + } + } + winner = validOptions[currentBest]; + } else if (strategy == HighestCurrent) { + uint16_t highestCurrent = 0; + int currentBest = 0; + for (int i = 0; i < optionNum; ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMaximumCurrent() >= highestCurrent) { + currentBest = i; + highestCurrent = obj.getMaximumCurrent(); + } + } + winner = validOptions[currentBest]; + } else if (strategy == LowestVoltage) { + uint16_t lowestVoltage = 0; + int currentBest = 0; + for (int i = 0; i < optionNum; ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMaximumVoltage() < lowestVoltage) { + currentBest = i; + lowestVoltage = obj.getMaximumVoltage(); + } + } + winner = validOptions[currentBest]; + } else if (strategy == HighestVoltage) { + uint16_t highestVoltage = 0; + int currentBest = 0; + for (int i = 0; i < optionNum; ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMinimumVoltage() >= highestVoltage) { + currentBest = i; + highestVoltage = obj.getMinimumVoltage(); + } + } + winner = validOptions[currentBest]; + } else if (strategy == HighestPower10DefaultLow) { + uint32_t highestPower = 0; + for (int i = 0; i < optionNum; ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent() >= highestPower) { + highestPower = obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent(); + } + } + uint16_t currentVoltage = 0xFFFF; + int currentBest = 0; + for (int i = 0; i < optionNum; ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMaximumVoltage() > currentVoltage) { + if (obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent() * 10 >= highestPower * 11) { + currentBest = i; + } + } else { + if (obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent() * 11 >= highestPower * 10) { + currentBest = i; + } + } + } + winner = validOptions[currentBest]; + } else if (strategy == HighestPower20DefaultLow) { + uint32_t highestPower = 0; + for (int i = 0; i < optionNum; ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent() >= highestPower) { + highestPower = obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent(); + } + } + uint16_t currentVoltage = 0xFFFF; + int currentBest = 0; + for (int i = 0; i < optionNum; ++i) { + PowerDataObject obj = cap->getPdos()[i]; + if (obj.getMaximumVoltage() > currentVoltage) { + if (obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent() * 10 >= highestPower * 12) { + currentBest = i; + } + } else { + if (obj.getMinimumVoltage() * (uint32_t) obj.getMaximumCurrent() * 12 >= highestPower * 10) { + currentBest = i; + } + } + } + winner = validOptions[currentBest]; + } else { + winner = 0; + } + currentContractObjectPosition = winner; + bool hasMismatch; + if (endStatus == NewVoltageContractMade) { + voltageMismatch = false; + PowerDataObject selected = cap->getPdos()[winner]; + if (selected.getMaximumCurrent() < targetCurrent) { + endStatus = NewVoltageInsufficientCurrent; + requestedContract = PowerContract(selected.getMinimumVoltage(), selected.getMaximumVoltage(), selected.getMaximumCurrent()); + hasMismatch = true; + } else { + hasMismatch = false; + requestedContract = PowerContract(selected.getMinimumVoltage(), selected.getMaximumVoltage(), targetCurrent); + } + } else { + hasMismatch = true; + voltageMismatch = true; + if (cap->getPdos()[0].getMaximumCurrent() > 100) { + requestedContract = PowerContract(5 * 20, 5 * 20, 100); + } else { + requestedContract = PowerContract(5 * 20, 5 * 20, cap->getPdos()[0].getMaximumCurrent()); + } + } + currentContractMaxCurrent = cap->getPdos()[winner].getMaximumCurrent(); + UcpdRequestMessage request(currentContractObjectPosition, false, hasMismatch, true, true, + true, requestedContract.getCurrent(), requestedContract.getCurrent()); + UcpdParser::sendMessage(&request); + absMaxVoltage = targetAbsMaxVoltage; + absMinVoltage = targetAbsMinVoltage; + powerStatusChangeCallback(endStatus, currentContract); + } + +public: + static void init(uint32_t *unInitialisedStore, uint16_t targetCurrent, uint16_t minVoltage, uint16_t maxVoltage, VoltageNegotiationStrategy strategy) { + UcpdInternal::hasContract = false; + UcpdInternal::unInitialisedStore = unInitialisedStore; + UcpdInternal::absMinVoltage = minVoltage; + UcpdInternal::absMaxVoltage = maxVoltage; + UcpdInternal::targetAbsMaxVoltage = maxVoltage; + UcpdInternal::targetAbsMinVoltage = minVoltage; + UcpdInternal::strategy = strategy; + UcpdInternal::currentContract = PowerContract(5 * 20, 5 * 20, 15); + UcpdInternal::requestedContract = currentContract; + UcpdInternal::currentContractMaxCurrent = 15; + UcpdInternal::currentContractObjectPosition = 0; + UcpdInternal::targetCurrent = targetCurrent; + if ((*unInitialisedStore & 0xC0000000) == 0x80000000) { + UcpdInternal::hardResetCount = (*unInitialisedStore) & 0xF; + } else { + UcpdInternal::hardResetCount = 0; + } + UcpdInternal::hardResetAt = SystemMilliClock::getTimeMillis() + 500; + UcpdInternal::expectResponseTime = 0; + UcpdInternal::resendTime = 0; + UcpdInternal::hardResetTiming = true; + UcpdInternal::resendRequestTiming = false; + UcpdInternal::hasAttemptedSoftReset = false; + UcpdInternal::hasSentHardReset = false; + UcpdInternal::expectResponse = false; + UcpdInternal::voltageMismatch = false; + UcpdParser::setMessageReceivedCallback(messageReceivedHandler); + UcpdParser::setHardResetCallback(hardResetHandler); + UcpdParser::setMessageSentCallback(messageSentHandler); + UcpdParser::init(); + if (hardResetCount > 2) { + hasContract = true; + } + while (!hasContract && hardResetCount <= 2) { + tick(); + } +// UcpdControlMessage control(GotoMin); +// while (!UcpdParser::sendMessage(&control)) +// ; + } + static void setPowerStatusChangeCallback(void (*powerStatusChangeCallback)(PowerStatus, PowerContract)) { + UcpdInternal::powerStatusChangeCallback = powerStatusChangeCallback; + } + static void setMessageOfInterestCallback(void (*messageOfInterestCallback)(UcpdMessage*)) { + // gets ManufacturerInfo, SourceCapabilitiesExtended, PPSStatus, Status, SourceCapabilities messages - needs to be quick + UcpdInternal::messageOfInterestCallback = messageOfInterestCallback; + } + static void setTargetPower(uint16_t power) { + setTargetCurrent((((uint32_t) power) * 500) / currentContract.getMinVoltage()); + } + + static void setTargetCurrent(uint16_t current) { + bool hasMismatch = false; + uint16_t currentToRequest = current; + targetCurrent = current; + if (!voltageMismatch) { + if (current > currentContractMaxCurrent) { + hasMismatch = true; + currentToRequest = currentContractMaxCurrent; + } + requestedContract = PowerContract(currentContract.getMinVoltage(), currentContract.getMaxVoltage(), currentToRequest); + UcpdRequestMessage request(currentContractObjectPosition, false, hasMismatch && voltageMismatch, true, true, + true, currentToRequest, currentToRequest); + UcpdParser::sendMessage(&request); + } + } + + static void changeTargetVoltage(uint16_t minVoltage, uint16_t maxVoltage, VoltageNegotiationStrategy strategy) { + UcpdInternal::strategy = strategy; + targetCurrent = currentContract.getCurrent(); + targetAbsMaxVoltage = maxVoltage; + targetAbsMinVoltage = minVoltage; + expectResponseTime = SystemMilliClock::getTimeMillis() + 31; + expectResponse = true; + UcpdControlMessage message(GetSourceCap); + UcpdParser::sendMessage(&message); + } + + static void changeAll(uint16_t current, uint16_t minVoltage, uint16_t maxVoltage, VoltageNegotiationStrategy strategy) { + UcpdInternal::strategy = strategy; + targetCurrent = current; + targetAbsMaxVoltage = maxVoltage; + targetAbsMinVoltage = minVoltage; + expectResponseTime = SystemMilliClock::getTimeMillis() + 31; + expectResponse = true; + UcpdControlMessage message(GetSourceCap); + UcpdParser::sendMessage(&message); + } + + static void renegotiateNoChange() { + expectResponseTime = SystemMilliClock::getTimeMillis() + 31; + expectResponse = true; + UcpdControlMessage message(GetSourceCap); + UcpdParser::sendMessage(&message); + } + + static bool sendGetManufacturerInfo() { + if (!useChunking) { + uint8_t data[2] = { 0, 0 }; + UcpdExtendedMessage message(GetManufacturerInfo, false, 0, false, 2, data); + UcpdParser::sendMessage(&message); + } + return !useChunking; + } + + static bool sendGetSourceCapExtended() { + if (!useChunking) { + UcpdControlMessage message(GetSourceCapExtended); + UcpdParser::sendMessage(&message); + } + return !useChunking; + } + static bool sendGetStatus() { + if (!useChunking) { + UcpdControlMessage message(GetStatus); + UcpdParser::sendMessage(&message); + } + return !useChunking; + } + static bool sendGetPPSStatus() { + if (!useChunking) { + UcpdControlMessage message(GetPPSStatus); + UcpdParser::sendMessage(&message); + } + return !useChunking; + } + + static void tick() { + UcpdParser::tick(); + if (hardResetTiming) { + if (SystemMilliClock::getTimeMillis() >= hardResetAt) { + if (hardResetCount <= 2) { + UcpdParser::sendHardReset(); + hardResetAt = SystemMilliClock::getTimeMillis() + 500; + hardResetCount++; + } else { + hardResetTiming = false; + powerStatusChangeCallback(UnresponsiveSource, currentContract); + } + } + } + if (resendRequestTiming) { + if (SystemMilliClock::getTimeMillis() >= resendTime) { + resendRequestTiming = false; + bool hasMismatch = false; + if (targetCurrent > currentContractMaxCurrent) { + hasMismatch = true; + } + UcpdRequestMessage request(currentContractObjectPosition, false, hasMismatch && voltageMismatch, true, true, + true, requestedContract.getCurrent(), requestedContract.getCurrent()); + UcpdParser::sendMessage(&request); + } + } + if (expectResponse) { + if (SystemMilliClock::getTimeMillis() >= expectResponseTime) { + UcpdParser::softReset(); + UcpdControlMessage message(SoftReset); + UcpdParser::sendMessage(&message); + } + } + } +} +; +template +volatile uint32_t UcpdInternal::expectResponseTime = 0; +template +volatile uint32_t UcpdInternal::resendTime = 0; +template +volatile uint32_t UcpdInternal::hardResetAt = 0; +template +volatile bool UcpdInternal::hardResetTiming = false; +template +volatile bool UcpdInternal::resendRequestTiming = false; +template +volatile bool UcpdInternal::expectResponse = false; + +template +bool UcpdInternal::useChunking = true; + +template +void (*UcpdInternal::powerStatusChangeCallback)(PowerStatus, PowerContract) = NULL; +template +void (*UcpdInternal::messageOfInterestCallback)(UcpdMessage*) = &UcpdInternal::doNotUseMessage; +template +uint32_t *UcpdInternal::unInitialisedStore = NULL; + +template +uint16_t UcpdInternal::absMinVoltage = 0; +template +uint16_t UcpdInternal::absMaxVoltage = 0; +template +VoltageNegotiationStrategy UcpdInternal::strategy = HighestPower; + +template +PowerContract UcpdInternal::currentContract(0, 0, 0); + +template +PowerContract UcpdInternal::requestedContract(0, 0, 0); + +template +uint16_t UcpdInternal::currentContractMaxCurrent = 0; +template +uint8_t UcpdInternal::currentContractObjectPosition = 0; + +template +uint16_t UcpdInternal::targetAbsMinVoltage = 0; +template +uint16_t UcpdInternal::targetAbsMaxVoltage = 0; + +template +uint16_t UcpdInternal::targetCurrent = 0; + +template +uint8_t UcpdInternal::hardResetCount = 0; +template +bool UcpdInternal::hasAttemptedSoftReset = false; +template +bool UcpdInternal::hasSentHardReset = false; + +template +bool UcpdInternal::voltageMismatch = false; + +template +bool UcpdInternal::hasContract = false; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDINTERNAL_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdLowLevel.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdLowLevel.hpp new file mode 100644 index 000000000..58516925f --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdLowLevel.hpp @@ -0,0 +1,186 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDLOWLEVEL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDLOWLEVEL_HPP_ + +#include +#include +#include +#include +#include + +enum UcpdTxTerminationStatus { + UcpdTxAborted, UcpdTxMessageDiscarded, UcpdTxDmaFail, UcpdMessageSent +}; + +enum UcpdRxReceiveStatus { + UcpdRxMessageDiscarded, UcpdRxDmaFail, UcpdRxMessageReceived +}; + +template +class UcpdLowLevel { + typedef typename LL::HW HW; + static UcpdLowLevel ucpdBuffers; + uint8_t rxBuffer[LL::ucpdRxBufferSize]; + uint8_t txBuffer[LL::ucpdTxBufferSize]; + static uint16_t rxLength; + static Dma *rxDma; + static void (*rxCallback)(UcpdRxReceiveStatus); + static Dma *txDma; + static void (*txCallback)(UcpdTxTerminationStatus); + + static void (*hardResetCallback)(); + + static void cableOrientationDetect() { + UCPD1->IMR &= ~0xC000; + if (UCPD1->SR & 0x30000) { + if (UCPD1->CR & 0x40) { + UCPD1->CR &= ~0x40; + } + } else if (UCPD1->SR & 0xC0000) { + UCPD1->CR |= 0x40; + } else { + UCPD1->IMR |= 0xC000; // enable interrupts for a cable event. + } + } + + static void interrupt(uint8_t id) { + (void) id; + if (UCPD1->SR & 0x0420) { + UCPD1->ICR |= 0x0420; + hardResetCallback(); + } else if (UCPD1->SR & 0x2000) { + resetRxDma(); + UCPD1->ICR |= 0x3000; + rxCallback(UcpdRxMessageDiscarded); + } else if (UCPD1->SR & 0x0008) { + resetTxDma(); + UCPD1->ICR |= 0x000C; + txCallback(UcpdTxAborted); + } else if (UCPD1->SR & 0x0002) { + resetTxDma(); + UCPD1->ICR |= 0x0006; + txCallback(UcpdTxMessageDiscarded); + } else if (UCPD1->SR & 0x0800) { + resetRxDma(); + UCPD1->ICR |= 0x800; + rxCallback(UcpdRxDmaFail); + } else if (UCPD1->SR & 0x0040) { + resetTxDma(); + UCPD1->ICR |= 0x0004; + txCallback(UcpdTxDmaFail); + } else if (UCPD1->SR & 0xC000) { + UCPD1->ICR |= 0xC000; + cableOrientationDetect(); + } else if (UCPD1->SR & 0x1000) { + rxLength = UCPD1->RX_PAYSZ; + resetRxDma(); + UCPD1->ICR |= 0x1000; + rxCallback(UcpdRxMessageReceived); + } else if (UCPD1->SR & 0x0004) { + UCPD1->ICR |= 0x0004; + resetTxDma(); + txCallback(UcpdMessageSent); + } + } + static void resetRxDma() { + rxDma->halt(); + rxDma->peripheralRead(DMAMUX_UCPD_RX, (uint8_t*) &UCPD1->RXDR, false, ucpdBuffers.rxBuffer, true, LL::ucpdRxBufferSize, false, High, + &UcpdLowLevel::DmaRxCallback, false); + } + static void resetTxDma() { + txDma->halt(); + } + + static void DmaRxCallback(Dma *d, DmaTerminationStatus status) { + (void) d; + if (status != DataTransferComplete) { + rxCallback(UcpdRxDmaFail); + } + } + static void DmaTxCallback(Dma *d, DmaTerminationStatus status) { + (void) d; + if (status != DataTransferComplete) { + txCallback(UcpdTxDmaFail); + } + } + +public: + static void init() { + RCC->APB1ENR2 |= 0x0100; + rxDma = DmaManager::getDmaById(LL::ucpdRxDma); + txDma = DmaManager::getDmaById(LL::ucpdTxDma); + UCPD1->CFG1 = 0x60900000 | (0x00 << 17) | (0x09 << 11) | (0x0E << 6) | (0x1A); //Set recommended clock settings, do not enable yet + UCPD1->CFG1 |= 0x80000000; // enable + UCPD1->IMR = 0x1C2E; // enable RX complete, rx hard reset, tx complete/aborted/discarded + UCPD1->CR = 0x0E00; // use 0x0E00 to do pd + SystemMilliClock::blockDelayMillis(10); + PWR->CR2 |= 0x4000; // disable dead-battery pull downs - hope the peripheral is running, or we lose power now! + cableOrientationDetect(); + UCPD1->CR |= 0x20; + InterruptManager::enableInterrupt(UcpdInt, 0, 2); + InterruptManager::setInterrupt(&UcpdLowLevel::interrupt, UcpdInt); + rxDma->lock(); + txDma->lock(); + rxDma->peripheralRead(DMAMUX_UCPD_RX, (uint8_t*) &UCPD1->RXDR, false, ucpdBuffers.rxBuffer, true, LL::ucpdRxBufferSize, false, High, + &UcpdLowLevel::DmaRxCallback, false); + PWR->CR2 |= 0x4000; // disable dead-battery pull downs - hope the peripheral is running, or we lose power now! + } + + static uint8_t* getTxBuffer() { + return ucpdBuffers.txBuffer; + } + + static const uint8_t* getRxBuffer() { + return ucpdBuffers.rxBuffer; + } + static uint16_t getRxLength() { + return rxLength; + } + + static void hardReset() { + UCPD1->CR |= 0x8; + } + + static void setRxCallback(void (*rxCallback)(UcpdRxReceiveStatus)) { + UcpdLowLevel::rxCallback = rxCallback; + } + + static void setHardResetCallback(void (*hardResetCallback)()) { + UcpdLowLevel::hardResetCallback = hardResetCallback; + } + + static void sendTxBuffer(int length, void (*txCallback)(UcpdTxTerminationStatus)) { + sendBuffer(ucpdBuffers.txBuffer, length, txCallback); + } + + static void sendBuffer(uint8_t *buf, uint8_t length, void (*txCallback)(UcpdTxTerminationStatus)) { + UcpdLowLevel::txCallback = txCallback; + UCPD1->TX_ORDSET = HW::ucpdTxSOP; + UCPD1->TX_PAYSZ = length; + txDma->peripheralWrite(DMAMUX_UCPD_TX, buf, true, (uint8_t*) &UCPD1->TXDR, false, length, false, High, &UcpdLowLevel::DmaTxCallback, false); + UCPD1->CR |= 0x4; + } +}; +template +UcpdLowLevel UcpdLowLevel::ucpdBuffers; +template +uint16_t UcpdLowLevel::rxLength = 0; +template +Dma *UcpdLowLevel::rxDma = NULL; +template +void (*UcpdLowLevel::rxCallback)(UcpdRxReceiveStatus)= NULL; +template +Dma *UcpdLowLevel::txDma = NULL; +template +void (*UcpdLowLevel::txCallback)(UcpdTxTerminationStatus)= NULL; + +template +void (*UcpdLowLevel::hardResetCallback)()= NULL; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDLOWLEVEL_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdMessages.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdMessages.hpp new file mode 100644 index 000000000..d235c135e --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdMessages.hpp @@ -0,0 +1,551 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDMESSAGES_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDMESSAGES_HPP_ + +#include + +template +int findByteInvertedAddress(int i); +template +int findDataObjectInvertedAddress(int i); +template +int findBytePairInvertedAddress(int i); + +enum UcpdMessageType { + ControlMessage, DataMessage, ExtendedMessage +}; + +enum UcpdControlMessageType { + UcpdControlReserved0, + GoodCRC, + GotoMin, + Accept, + Reject, + Ping, + PSRdy, + GetSourceCap, + GetSinkCap, + DRSwap, + PRSwap, + VCONNSwap, + Wait, + SoftReset, + DataReset, + DataResetComplete, + NotSupported, + GetSourceCapExtended, + GetStatus, + FRSwap, + GetPPSStatus, + GetCountryCodes, + GetSinkCapExtended +}; +enum UcpdDataMessageType { + UcpdDataReserved0, + SourceCapabilities, + Request, + BIST, + SinkCapabilities, + BatteryStatus, + Alert, + GetCountryInfo, + EnterUSB, + UcpdReserved9, + UcpdReserved10, + UcpdReserved11, + UcpdReserved12, + UcpdReserved13, + UcpdReserved14, + VenderDefined +}; +enum UcpdExtendedMessageType { + UcpdExtendedReserved0, + SourceCapabilitiesExtended, + Status, + GetBatteryCap, + GetBatteryStatus, + BatteryCapabilities, + GetManufacturerInfo, + ManufacturerInfo, + SecurityRequest, + SecurityResponse, + FirmwareUpdateRequest, + FirmwareUpdateResponse, + PPSStatus, + CountryInfo, + CountryCodes, + SinkCapabilitiesExtended +}; + +template +class UcpdMessage { + UcpdMessageType type; + +protected: + UcpdMessage(UcpdMessageType type) : + type(type) { + + } +public: + UcpdMessageType getUcpdMessageType() { + return type; + } + virtual void encode(uint8_t *target, uint8_t messageId) = 0; //assumes is given a long enough byte array - e.g. txBuffer + virtual uint16_t getLength() = 0; + virtual ~UcpdMessage() { + } +}; + +template +class UcpdControlMessage: public UcpdMessage { + UcpdControlMessageType controlType; + +public: + UcpdControlMessage(UcpdControlMessageType controlType) : + UcpdMessage(ControlMessage), controlType(controlType) { + } + UcpdControlMessageType getUcpdControlMessageType() { + return controlType; + } + virtual void encode(uint8_t *target, uint8_t messageId) { + target[findByteInvertedAddress(0)] = messageId << 1; //always assumes is Sink + target[findByteInvertedAddress(1)] = 0x80; //always assumes is UFP + target[findByteInvertedAddress(1)] |= (uint8_t) controlType; + } + virtual uint16_t getLength() { + return 2; + } +}; + +template +class UcpdDataMessage: public UcpdMessage { +protected: + UcpdDataMessageType dataType; + +public: + UcpdDataMessage(UcpdDataMessageType dataType) : + UcpdMessage(DataMessage), dataType(dataType) { + } + + UcpdDataMessageType getUcpdDataMessageType() { + return dataType; + } + + virtual void encode(uint8_t *target, uint8_t messageId) { //placeholder for messages which are never sent, only received + (void) target; + (void) messageId; + } + virtual uint16_t getLength() { + return 0; + } +}; +template +class PowerDataObject { + uint16_t maximumVoltage; + uint16_t minimumVoltage; + uint16_t maximumCurrent; + +public: + PowerDataObject() : + maximumVoltage(0), minimumVoltage(0), maximumCurrent(0) { + } + PowerDataObject(uint16_t maximumVoltage, uint16_t minimumVoltage, uint16_t maximumCurrent) : + maximumVoltage(maximumVoltage), minimumVoltage(minimumVoltage), maximumCurrent(maximumCurrent) { + } + uint16_t getMaximumVoltage() const { //50mV units + return maximumVoltage; + } + uint16_t getMinimumVoltage() const { //50mV units + return minimumVoltage; + } + uint16_t getMaximumCurrent() const { //10mA units + return maximumCurrent; + } + void encode(uint8_t *target) const { + if (minimumVoltage == maximumVoltage) { + uint32_t pdo = (maximumCurrent & 0x3FF) | ((minimumVoltage & 0x3FF) << 10); + target[findDataObjectInvertedAddress(0)] = (pdo >> 24) & 0xFF; + target[findDataObjectInvertedAddress(1)] = (pdo >> 16) & 0xFF; + target[findDataObjectInvertedAddress(2)] = (pdo >> 8) & 0xFF; + target[findDataObjectInvertedAddress(3)] = pdo & 0xFF; + } else { + uint32_t pdo = (maximumCurrent & 0x3FF) | ((minimumVoltage & 0x3FF) << 10) | ((maximumVoltage & 0x3FF) << 20) | (0x2 << 30); + target[findDataObjectInvertedAddress(0)] = (pdo >> 24) & 0xFF; + target[findDataObjectInvertedAddress(1)] = (pdo >> 16) & 0xFF; + target[findDataObjectInvertedAddress(2)] = (pdo >> 8) & 0xFF; + target[findDataObjectInvertedAddress(3)] = pdo & 0xFF; + } + } +}; + +template +class UcpdSourceCapabilitiesMessage: public UcpdDataMessage { + PowerDataObject pdos[7]; + uint8_t pdoCount = 0; + bool usbSuspendRequired; + bool unconstrainedPower; + bool usbCommunicationsCapable; + bool dualRoleData; + bool unchunkedExtendedMessagesSupported; + +public: + UcpdSourceCapabilitiesMessage() : + UcpdDataMessage(SourceCapabilities), usbSuspendRequired(false), unconstrainedPower(false), usbCommunicationsCapable( + false), dualRoleData(false), unchunkedExtendedMessagesSupported(false) { + } + UcpdSourceCapabilitiesMessage(bool usbSuspendRequired, bool unconstrainedPower, bool usbCommunicationsCapable, bool dualRoleData, + bool unchunkedExtendedMessagesSupported) : + UcpdDataMessage(SourceCapabilities), usbSuspendRequired(usbSuspendRequired), unconstrainedPower(unconstrainedPower), usbCommunicationsCapable( + usbCommunicationsCapable), dualRoleData(dualRoleData), unchunkedExtendedMessagesSupported(unchunkedExtendedMessagesSupported) { + } + void addPDO(PowerDataObject obj) { + pdos[pdoCount++] = obj; + } + + bool isUsbSuspendRequired() const { + return usbSuspendRequired; + } + + bool hasUnconstrainedPower() const { + return unconstrainedPower; + } + + bool isUsbCommunicationsCapable() const { + return usbCommunicationsCapable; + } + + bool hasDualRoleData() const { + return dualRoleData; + } + + bool hasUnchunkedExtendedMessageSupport() const { + return unchunkedExtendedMessagesSupported; + } + + const PowerDataObject* getPdos() const { + return pdos; + } + uint8_t getPdoNum() const { + return pdoCount; + } +}; + +template +class UcpdSinkCapabilitiesMessage: public UcpdDataMessage { + PowerDataObject pdos[7]; + uint8_t pdoCount = 0; + bool dualRolePower; + bool higherCapability; + bool unconstrainedPower; + bool usbCommunicationsCapable; + bool dualRoleData; + +public: + UcpdSinkCapabilitiesMessage(bool dualRolePower, bool higherCapability, bool unconstrainedPower, bool usbCommunicationsCapable, bool dualRoleData) : + UcpdDataMessage(SinkCapabilities), dualRolePower(dualRolePower), higherCapability(higherCapability), + unconstrainedPower(unconstrainedPower), usbCommunicationsCapable(usbCommunicationsCapable), dualRoleData(dualRoleData) { + } + void addPDO(PowerDataObject obj) { + pdos[pdoCount++] = obj; + } + bool hasDualRolePower() { + return dualRoleData; + } + bool hasHigherCapability() { + return higherCapability; + } + + bool hasUnconstrainedPower() { + return unconstrainedPower; + } + + bool isUsbCommunicationsCapable() { + return usbCommunicationsCapable; + } + + bool hasDualRoleData() { + return dualRoleData; + } + + const PowerDataObject* getPdos() { + return pdos; + } + uint8_t getPdoNum() { + return pdoCount; + } + + virtual void encode(uint8_t *target, uint8_t messageId) { + target[findByteInvertedAddress(0)] = (messageId << 1) | (pdoCount << 4); //always assumes is Sink + target[findByteInvertedAddress(1)] = 0x80; //always assumes is UFP + target[findByteInvertedAddress(1)] |= (uint8_t) this->dataType; + for (int i = 0; i < pdoCount; ++i) { + pdos[i].encode(target + 4 * i + 2); + } + if (dualRolePower) { + target[findByteInvertedAddress(2)] |= 0x20; + } + if (higherCapability) { + target[findByteInvertedAddress(2)] |= 0x10; + } + if (unconstrainedPower) { + target[findByteInvertedAddress(2)] |= 0x08; + } + if (usbCommunicationsCapable) { + target[findByteInvertedAddress(2)] |= 0x04; + } + if (dualRoleData) { + target[findByteInvertedAddress(2)] |= 0x02; + } + // presuming FRS not supported, and that first PDO is vSafe5V like it should be + } + virtual uint16_t getLength() { + return 2 + 4 * pdoCount; + } +}; + +template +class UcpdRequestMessage: public UcpdDataMessage { + uint8_t objectPosition; + bool giveBack; + bool capabilityMismatch; + bool usbCommunicationsCapable; + bool ignoreUsbSuspend; + bool unchunkedExtendedMessagesSupported; + uint16_t operatingCurrentDraw; //10mA units + uint16_t maximumCurrentDraw; //10mA units + +public: + UcpdRequestMessage(uint8_t objectPosition, bool giveBack, bool capabilityMismatch, bool usbCommunicationsCapable, bool ignoreUsbSuspend, + bool unchunkedExtendedMessagesSupported, uint16_t operatingCurrentDraw, uint16_t maximumCurrentDraw) : + UcpdDataMessage(Request), objectPosition(objectPosition), giveBack(giveBack), capabilityMismatch(capabilityMismatch), + usbCommunicationsCapable(usbCommunicationsCapable), ignoreUsbSuspend(ignoreUsbSuspend), + unchunkedExtendedMessagesSupported(unchunkedExtendedMessagesSupported), operatingCurrentDraw(operatingCurrentDraw), maximumCurrentDraw( + maximumCurrentDraw) { + } + uint8_t getObjectPosition() { + return objectPosition; + } + bool hasGiveBack() { + return giveBack; + } + bool hasCapabilityMismatch() { + return capabilityMismatch; + } + + bool canIgnoreUsbSuspend() { + return ignoreUsbSuspend; + } + + bool isUsbCommunicationsCapable() { + return usbCommunicationsCapable; + } + + bool hasUnchunkedExtendedMessageSupport() { + return unchunkedExtendedMessagesSupported; + } + uint16_t getOperatingCurrentDraw() { + return operatingCurrentDraw; + } + uint16_t getMaximumCurrentDraw() { + return maximumCurrentDraw; + } + virtual void encode(uint8_t *target, uint8_t messageId) { + target[findByteInvertedAddress(0)] = (messageId << 1) | (1 << 4); //always assumes is Sink + target[findByteInvertedAddress(1)] = 0x80; //always assumes is UFP + target[findByteInvertedAddress(1)] |= (uint8_t) this->dataType; + uint32_t rdo = (maximumCurrentDraw & 0x3FF) | ((operatingCurrentDraw & 0x3FF) << 10); + rdo |= (objectPosition + 1) << 28; + if (giveBack) { + rdo |= 0x08000000; + } + if (capabilityMismatch) { + rdo |= 0x04000000; + } + if (usbCommunicationsCapable) { + rdo |= 0x02000000; + } + if (ignoreUsbSuspend) { + rdo |= 0x01000000; + } + if (unchunkedExtendedMessagesSupported) { + rdo |= 0x00800000; + } + target[findByteInvertedAddress(2)] = (rdo >> 24) & 0xFF; + target[findByteInvertedAddress(3)] = (rdo >> 16) & 0xFF; + target[findByteInvertedAddress(4)] = (rdo >> 8) & 0xFF; + target[findByteInvertedAddress(5)] = rdo & 0xFF; + } + virtual uint16_t getLength() { + return 6; + } +}; + +template +class UcpdAlertMessage: public UcpdDataMessage { + bool OcpEvent; + bool OtpEvent; + bool OvpEvent; + +public: + UcpdAlertMessage(bool OcpEvent, bool OtpEvent, bool OvpEvent) : + UcpdDataMessage(Alert), OcpEvent(OcpEvent), OtpEvent(OtpEvent), OvpEvent(OvpEvent) { + } + bool hasOcpEvent() { + return OcpEvent; + } + bool hasOtpEvent() { + return OtpEvent; + } + + bool hasOvpEvent() { + return OvpEvent; + } +}; + +enum UcpdUsbMode { + Usb2Mode, Usb3Mode, Usb4Mode +}; +enum UcpdCableSpeed { + Usb2, Usb3Gen1, Usb3Gen2, Usb4 +}; +enum UcpdCableType { + Passive, ActiveReTimer, ActiveReDriver, OpticallyIsolated +}; +enum UcpdCableCurrent { + NoVBus, Reserved1, Current3A, Current5A +}; + +template +class UcpdEnterUsbMessage: public UcpdDataMessage { + UcpdUsbMode mode; + bool Usb4Device; + bool Usb3Device; + UcpdCableSpeed cableSpeed; + UcpdCableType cableType; + UcpdCableCurrent cableCurrent; + bool PCIeTunnel; + bool DPTunnel; + bool TBTSupport; + bool HostPresent; + +public: + UcpdEnterUsbMessage(UcpdUsbMode mode, bool Usb4Device, bool Usb3Device, UcpdCableSpeed cableSpeed, UcpdCableType cableType, UcpdCableCurrent cableCurrent, + bool PCIeTunnel, bool DPTunnel, bool TBTSupport, bool HostPresent) : + UcpdDataMessage(EnterUSB), mode(mode), Usb4Device(Usb4Device), Usb3Device(Usb3Device), cableSpeed(cableSpeed), cableType(cableType), + cableCurrent(cableCurrent), PCIeTunnel(PCIeTunnel), DPTunnel(DPTunnel), TBTSupport(TBTSupport), HostPresent(HostPresent) { + } + UcpdUsbMode getUsbMode() { + return mode; + } + UcpdCableSpeed getCableSpeed() { + return cableSpeed; + } + UcpdCableType getCableType() { + return cableType; + } + UcpdCableCurrent getCableCurrent() { + return cableCurrent; + } + bool supportsUsb4Device() { + return Usb4Device; + } + bool supportsUsb3Device() { + return Usb3Device; + } + bool canPCIeTunnel() { + return PCIeTunnel; + } + bool canDPTunnel() { + return DPTunnel; + } + bool hasTBTSupport() { + return TBTSupport; + } + bool isHostPresent() { + return HostPresent; + } +}; + +template +class UcpdExtendedMessage: public UcpdMessage { + UcpdExtendedMessageType extendedType; + bool chunked; + uint8_t chunkNum; + bool chunkRequest; + uint16_t dataSize; + const uint8_t *data; + +public: + UcpdExtendedMessage(UcpdExtendedMessageType extendedType, bool chunked, uint8_t chunkNum, bool chunkRequest, uint16_t dataSize, const uint8_t *data) : + UcpdMessage(ExtendedMessage), extendedType(extendedType), chunked(chunked), chunkNum(chunkNum), chunkRequest(chunkRequest), dataSize(dataSize), + data(data) { + } + + UcpdExtendedMessageType getUcpdExtendedMessageType() { + return extendedType; + } + bool isChunked() { + return chunked; + } + bool isChunkRequest() { + return chunkRequest; + } + uint8_t getChunkNum() { + return chunkNum; + } + uint16_t getDataSize() { + return dataSize; + } + const uint8_t* getData() const { + return data; + } + virtual void encode(uint8_t *target, uint8_t messageId) { + if (chunked) { + target[findByteInvertedAddress(0)] = 0x80 | (messageId << 1) | (((dataSize + 5) / 4) << 4); + } else { + target[findByteInvertedAddress(0)] = 0x80 | (messageId << 1); + } + target[findByteInvertedAddress(1)] = 0x80; //always assumes is UFP + target[findByteInvertedAddress(1)] |= (uint8_t) extendedType; + target[findBytePairInvertedAddress(0) + 2] = 0; + if (chunked) { + target[findBytePairInvertedAddress(0) + 2] |= 0x80 | (chunkNum << 3); + } + if (chunkRequest) { + target[findBytePairInvertedAddress(0) + 2] |= 0x04; + } + target[findBytePairInvertedAddress(0) + 2] |= (dataSize >> 8) & 1; + target[findBytePairInvertedAddress(1) + 2] = dataSize & 0xFF; + for (int i = 0; i < dataSize; ++i) { + target[4 + i] = data[i]; + } + } + virtual uint16_t getLength() { + return 4 + dataSize; + } +}; + +template +int findByteInvertedAddress(int i) { + if (i < 2) { + return 1 - i; + } + return ((i - 2) / 4) * 8 + 7 - i; +} +template +int findDataObjectInvertedAddress(int i) { + return 3 - i; +} + +template +int findBytePairInvertedAddress(int i) { + return 1 - i; +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDMESSAGES_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdParser.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdParser.hpp new file mode 100644 index 000000000..3855a7996 --- /dev/null +++ b/receivers/generic-c++/zll/arm/no-os/stm32g4/src/main/c++/arm-no-os/stm32g4/usbc-pd-module/lowlevel/specific/UcpdParser.hpp @@ -0,0 +1,344 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDPARSER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDPARSER_HPP_ + +#include +#include +#include +#include "UcpdLowLevel.hpp" +#include "UcpdMessages.hpp" + +enum UcpdMessageSentStatus { + GoodCrcReceived, RetriesFailed, WrongCrc, SoftResetFailed +}; +template +class UcpdParser { + static void (*messageReceivedCallback)(UcpdMessage*); + static void (*messageSentCallback)(UcpdMessageSentStatus); + static uint32_t sendTimeMs; + static uint16_t sendLength; + static uint8_t txMessageId; + static uint8_t prevRxMessageId; + static uint8_t retryCounter; + static uint8_t goodCrcMsg[2]; + static uint8_t softRstMsg[2]; + static bool isSendingSoftReset; + static bool isSending; + static bool hasBuffered; + static bool isReceiving; + static bool needsCrc; + + static void incMessageId() { + txMessageId++; + if (txMessageId > 7) { + txMessageId = 0; + } + } + static void setBufferMessageId(uint8_t *buffer, uint8_t id) { + buffer[findByteInvertedAddress(0)] &= ~0x0E; + buffer[findByteInvertedAddress(0)] |= (id & 0x7) << 1; + } + + static void rxCallback(UcpdRxReceiveStatus status) { + if (status == UcpdRxMessageReceived) { + isReceiving = true; + parseMessage(); + } + } + static void txCallback(UcpdTxTerminationStatus status) { + if (status == UcpdTxMessageDiscarded) { + isReceiving = true; + isSending = false; + } else if (status == UcpdMessageSent) { + if (isReceiving && hasBuffered) { + sendInternal(); + } else { + hasBuffered = false; + isSending = false; + } + isReceiving = false; + } else { + hasBuffered = false; + isSending = false; + } + } + static void goodCrcSentCallback(UcpdTxTerminationStatus status) { + (void) status; + if (isReceiving && hasBuffered) { + sendInternal(); + } + isReceiving = false; + } + + static void sendGoodCRC(); + static void parseControlMessage(const uint8_t *rxBuf, uint16_t rxLen); + static void parseDataMessage(const uint8_t *rxBuf, uint16_t rxLen); + static void parseExtendedMessage(const uint8_t *rxBuf, uint16_t rxLen); + static void parseMessage(); + + static void sendInternal() { + retryCounter = 0; + isSendingSoftReset = false; + sendTimeMs = SystemMilliClock::getTimeMillis(); + needsCrc = true; + incMessageId(); + setBufferMessageId(UcpdLowLevel::getTxBuffer(), txMessageId); + UcpdLowLevel::sendTxBuffer(sendLength, txCallback); + } +public: + static void init() { + UcpdLowLevel::init(); + UcpdLowLevel::setRxCallback(rxCallback); + } + + static void setHardResetCallback(void (*hardResetCallback)()) { + UcpdLowLevel::setHardResetCallback(hardResetCallback); + } + static void setMessageReceivedCallback(void (*messageReceivedCallback)(UcpdMessage*)) { + UcpdParser::messageReceivedCallback = messageReceivedCallback; + } + + static void setMessageSentCallback(void (*messageSentCallback)(UcpdMessageSentStatus)) { + UcpdParser::messageSentCallback = messageSentCallback; + } + static void sendHardReset() { + isSending = false; + retryCounter = 0; + UcpdLowLevel::hardReset(); + } + static void softReset() { + retryCounter = 0; + txMessageId = 0; + prevRxMessageId = 8; + } + static void sendSoftReset(); + + static void resendCurrent() { + if (!isReceiving) { + sendInternal(); + } else { + hasBuffered = true; + } + } + + static bool sendMessage(UcpdMessage *message) { + retryCounter = 0; + if (isSending) { + return false; + } + sendLength = message->getLength(); + message->encode(UcpdLowLevel::getTxBuffer(), txMessageId & 0x7); + if (!isReceiving) { + sendInternal(); + } else { + hasBuffered = true; + } + isSending = true; + return true; + } + + static void tick() { + if (needsCrc && SystemMilliClock::getTimeMillis() > sendTimeMs + 5) { + if (retryCounter < 2) { + retryCounter++; + sendTimeMs = SystemMilliClock::getTimeMillis(); + needsCrc = true; + if (isSendingSoftReset) { + UcpdLowLevel::sendBuffer(softRstMsg, 2, txCallback); + } else { + UcpdLowLevel::sendTxBuffer(sendLength, txCallback); + } + } else { + retryCounter = 0; + needsCrc = false; + if (isSendingSoftReset) { + messageSentCallback(SoftResetFailed); + } else { + messageSentCallback(RetriesFailed); + } + } + } + } +}; + +template +uint8_t UcpdParser::goodCrcMsg[2] = { 0x81, 0x00 }; +template +uint8_t UcpdParser::softRstMsg[2] = { 0x8D, 0x00 }; + +template +void (*UcpdParser::messageReceivedCallback)(UcpdMessage*)= NULL; +template +void (*UcpdParser::messageSentCallback)(UcpdMessageSentStatus) = NULL; +template +uint32_t UcpdParser::sendTimeMs = 0; +template +uint16_t UcpdParser::sendLength = 0; +template +uint8_t UcpdParser::txMessageId = 0; +template +uint8_t UcpdParser::prevRxMessageId = 8; +template +uint8_t UcpdParser::retryCounter = 0; +template +bool UcpdParser::isSending = false; +template +bool UcpdParser::isSendingSoftReset = false; +template +bool UcpdParser::hasBuffered = false; +template +bool UcpdParser::isReceiving = false; +template +bool UcpdParser::needsCrc = false; + +template +void UcpdParser::sendSoftReset() { + retryCounter = 0; + incMessageId(); + setBufferMessageId(softRstMsg, txMessageId); + isSendingSoftReset = true; + sendTimeMs = SystemMilliClock < LL > ::getTimeMillis(); + needsCrc = true; + UcpdLowLevel::sendBuffer(softRstMsg, 2, txCallback); +} +template +void UcpdParser::sendGoodCRC() { + setBufferMessageId(goodCrcMsg, prevRxMessageId); + UcpdLowLevel::sendBuffer(goodCrcMsg, 2, goodCrcSentCallback); +} + +template +void UcpdParser::parseControlMessage(const uint8_t *rxBuf, uint16_t rxLen) { + (void) rxLen; //FIXME: We kinda just assume we got the right length... + uint8_t tmpMessageId = (rxBuf[findByteInvertedAddress(0)] >> 1) & 0x07; + if ((rxBuf[findByteInvertedAddress(1)] & 0x1F) == GoodCRC) { + if (isSendingSoftReset && txMessageId == tmpMessageId) { + retryCounter = 0; + messageSentCallback(GoodCrcReceived); + } else if (txMessageId == tmpMessageId) { + retryCounter = 0; + needsCrc = false; + messageSentCallback(GoodCrcReceived); + } else { + messageSentCallback(WrongCrc); + } + return; + } + if (tmpMessageId == prevRxMessageId) { + sendGoodCRC(); + return; + } + prevRxMessageId = tmpMessageId; + sendGoodCRC(); + if ((rxBuf[findByteInvertedAddress(1)] & 0x1F) == SoftReset) { + retryCounter = 0; + prevRxMessageId = 8; + } + + UcpdControlMessage message((UcpdControlMessageType) (rxBuf[findByteInvertedAddress(1)] & 0x1F)); + messageReceivedCallback(&message); +} + +template +void UcpdParser::parseDataMessage(const uint8_t *rxBuf, uint16_t rxLen) { + (void) rxLen; //FIXME: We kinda just assume we got the right length... + uint8_t tmpMessageId = (rxBuf[findByteInvertedAddress(0)] >> 1) & 0x07; + + if (tmpMessageId == prevRxMessageId) { + sendGoodCRC(); + return; + } + prevRxMessageId = tmpMessageId; + sendGoodCRC(); + + UcpdDataMessageType type = (UcpdDataMessageType) (rxBuf[findByteInvertedAddress(1)] & 0x1F); + + uint8_t dataObjectNum = (rxBuf[findByteInvertedAddress(0)] >> 4) & 0x7; + + switch (type) { + case SourceCapabilities: + { + UcpdSourceCapabilitiesMessage capMessage(rxBuf[findByteInvertedAddress(2)] & 0x10, rxBuf[findByteInvertedAddress(2)] & 0x08, + rxBuf[findByteInvertedAddress(2)] & 0x04, rxBuf[findByteInvertedAddress(2)] & 0x02, + rxBuf[findByteInvertedAddress(2)] & 0x01); + for (int i = 0; i < dataObjectNum; ++i) { + uint32_t pdoRaw = (rxBuf[findByteInvertedAddress(2 + 4 * i)] << 24) | (rxBuf[findByteInvertedAddress(3 + 4 * i)] << 16) + | (rxBuf[findByteInvertedAddress(4 + 4 * i)] << 8) | rxBuf[findByteInvertedAddress(5 + 4 * i)]; + uint16_t maxCurrent = pdoRaw & 0x3FF; + uint16_t minVoltage = (pdoRaw >> 10) & 0x3FF; + uint16_t maxVoltage = minVoltage; + if ((pdoRaw & 0xC0000000) == 0) { + maxVoltage = minVoltage; + } else if ((rxBuf[findByteInvertedAddress(2 + 4 * i)] & 0xC0) == 0x80) { + maxVoltage = (pdoRaw >> 20) & 0x3FF; + } + PowerDataObject obj(maxVoltage, minVoltage, maxCurrent); + capMessage.addPDO(obj); + } + messageReceivedCallback(&capMessage); + } + break; + case Alert: + { + UcpdAlertMessage alertMessage(rxBuf[findByteInvertedAddress(2)] & 0x04, rxBuf[findByteInvertedAddress(2)] & 0x08, + rxBuf[findByteInvertedAddress(2)] & 0x40); + messageReceivedCallback(&alertMessage); + } + break; + case EnterUSB: + { + UcpdEnterUsbMessage eUsbMessage((UcpdUsbMode) ((rxBuf[findByteInvertedAddress(2)] >> 4) & 0x7), rxBuf[findByteInvertedAddress(2)] & 0x4, + rxBuf[findByteInvertedAddress(2)] & 0x2, (UcpdCableSpeed) ((rxBuf[findByteInvertedAddress(3)] >> 5) & 0x3), + (UcpdCableType) ((rxBuf[findByteInvertedAddress(3)] >> 3) & 0x3), (UcpdCableCurrent) ((rxBuf[findByteInvertedAddress(3)] >> 1) & 0x3), + rxBuf[findByteInvertedAddress(3)] & 0x1, rxBuf[findByteInvertedAddress(4)] & 0x80, rxBuf[findByteInvertedAddress(4)] & 0x40, + rxBuf[findByteInvertedAddress(4)] & 0x20); + messageReceivedCallback(&eUsbMessage); + } + break; + default: + { + UcpdDataMessage message(type); + messageReceivedCallback(&message); + } + break; + } +} + +template +void UcpdParser::parseExtendedMessage(const uint8_t *rxBuf, uint16_t rxLen) { + (void) rxLen; //FIXME: We kinda just assume we got the right length... + uint8_t tmpMessageId = (rxBuf[findByteInvertedAddress(0)] >> 1) & 0x07; + + if (tmpMessageId == prevRxMessageId) { + sendGoodCRC(); + return; + } + prevRxMessageId = tmpMessageId; + sendGoodCRC(); + + UcpdExtendedMessageType type = (UcpdExtendedMessageType) (rxBuf[findByteInvertedAddress(1)] & 0x1F); + UcpdExtendedMessage message(type, rxBuf[findByteInvertedAddress(3)] & 0x80, (rxBuf[findByteInvertedAddress(3)] >> 3) & 0xF, + rxBuf[findByteInvertedAddress(3)] & 0x4, rxBuf[findByteInvertedAddress(4)] & 0x1FF, NULL); + messageReceivedCallback(&message); +} + +template +void UcpdParser::parseMessage() { + const uint8_t *rxBuf = UcpdLowLevel::getRxBuffer(); + uint16_t rxLen = UcpdLowLevel::getRxLength(); + if ((rxBuf[findByteInvertedAddress(0)] & 0x80) != 0) { + parseExtendedMessage(rxBuf, rxLen); + } else if ((rxBuf[findByteInvertedAddress(0)] & 0x70) != 0) { + parseDataMessage(rxBuf, rxLen); + } else { + parseControlMessage(rxBuf, rxLen); + } +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_USBC_PD_MODULE_LOWLEVEL_SPECIFIC_UCPDPARSER_HPP_ */ diff --git a/receivers/native/arm/no-os/stm32g484/pom.xml b/receivers/generic-c++/zll/arm/no-os/stm32g484/pom.xml similarity index 100% rename from receivers/native/arm/no-os/stm32g484/pom.xml rename to receivers/generic-c++/zll/arm/no-os/stm32g484/pom.xml diff --git a/receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/ArmPlatformFirmwareVersion.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/ArmPlatformFirmwareVersion.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/ArmPlatformFirmwareVersion.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/ArmPlatformFirmwareVersion.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/i2c-module/lowlevel/specific/I2cPins.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/i2c-module/lowlevel/specific/I2cPins.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/i2c-module/lowlevel/specific/I2cPins.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/i2c-module/lowlevel/specific/I2cPins.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/llIncludes.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/llIncludes.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/llIncludes.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/llIncludes.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/pins-module/lowlevel/specific/GpioManagercpp.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/pins-module/lowlevel/specific/GpioManagercpp.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/pins-module/lowlevel/specific/GpioManagercpp.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/pins-module/lowlevel/specific/GpioManagercpp.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/serial-module/lowlevel/specific/UartPins.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/serial-module/lowlevel/specific/UartPins.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/serial-module/lowlevel/specific/UartPins.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/serial-module/lowlevel/specific/UartPins.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/udp-module/lowlevel/SpiPins.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/udp-module/lowlevel/SpiPins.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/udp-module/lowlevel/SpiPins.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/main/c++/arm-no-os/stm32g484/udp-module/lowlevel/SpiPins.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/test/c++/common/startup_stm32g484xx.s b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/common/startup_stm32g484xx.s similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/c++/common/startup_stm32g484xx.s rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/common/startup_stm32g484xx.s diff --git a/receivers/native/arm/no-os/stm32g484/src/test/c++/common/system_stm32g4xx.c b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/common/system_stm32g4xx.c similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/c++/common/system_stm32g4xx.c rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/common/system_stm32g4xx.c diff --git a/receivers/native/arm/no-os/stm32g484/src/test/c++/main/GeneralLLSetup.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/main/GeneralLLSetup.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/c++/main/GeneralLLSetup.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/main/GeneralLLSetup.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/test/c++/main/ZcodeParameters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/main/ZcodeParameters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/c++/main/ZcodeParameters.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/main/ZcodeParameters.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/test/c++/main/main.cpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/main/main.cpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/c++/main/main.cpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/main/main.cpp diff --git a/receivers/native/arm/no-os/stm32g484/src/test/c++/test-minimal/GeneralLLSetup.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/test-minimal/GeneralLLSetup.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/c++/test-minimal/GeneralLLSetup.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/test-minimal/GeneralLLSetup.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/test/c++/test-minimal/ZcodeParameters.hpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/test-minimal/ZcodeParameters.hpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/c++/test-minimal/ZcodeParameters.hpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/test-minimal/ZcodeParameters.hpp diff --git a/receivers/native/arm/no-os/stm32g484/src/test/c++/test-minimal/test-minimal.cpp b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/test-minimal/test-minimal.cpp similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/c++/test-minimal/test-minimal.cpp rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/c++/test-minimal/test-minimal.cpp diff --git a/receivers/native/arm/no-os/stm32g484/src/test/ld/STM32G484QETX_FLASH.ld b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/ld/STM32G484QETX_FLASH.ld similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/ld/STM32G484QETX_FLASH.ld rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/ld/STM32G484QETX_FLASH.ld diff --git a/receivers/native/arm/no-os/stm32g484/src/test/openocd/openocd.cfg b/receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/openocd/openocd.cfg similarity index 100% rename from receivers/native/arm/no-os/stm32g484/src/test/openocd/openocd.cfg rename to receivers/generic-c++/zll/arm/no-os/stm32g484/src/test/openocd/openocd.cfg diff --git a/receivers/native/arm/peripherals/README b/receivers/generic-c++/zll/arm/peripherals/README similarity index 100% rename from receivers/native/arm/peripherals/README rename to receivers/generic-c++/zll/arm/peripherals/README diff --git a/receivers/native/arm/peripherals/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/all/pom.xml diff --git a/receivers/native/arm/peripherals/clock/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/clock/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/clock/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/clock/all/pom.xml diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32f/pom.xml b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32f/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/pom.xml diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/Clock.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/Clock.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/Clock.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/Clock.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/ClockManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/ClockManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/ClockManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/ClockManagercpp.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/Clockcpp.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/Clockcpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/Clockcpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/Clockcpp.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/SystemClocks.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/SystemClocks.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/SystemClocks.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/SystemClocks.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/SystemMilliClockcpp.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/SystemMilliClockcpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/SystemMilliClockcpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32f/src/main/c++/clock-ll-stm32f/specific/SystemMilliClockcpp.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32g/pom.xml b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32g/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/pom.xml diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/Clock.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/Clock.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/Clock.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/Clock.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/ClockManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/ClockManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/ClockManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/ClockManagercpp.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/ClockRegisters.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/ClockRegisters.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/ClockRegisters.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/ClockRegisters.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/Clockcpp.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/Clockcpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/Clockcpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/Clockcpp.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/SystemClocks.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/SystemClocks.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/SystemClocks.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/SystemClocks.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/SystemMilliClockcpp.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/SystemMilliClockcpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/SystemMilliClockcpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll-stm32g/src/main/c++/clock-ll-stm32g/specific/SystemMilliClockcpp.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/pom.xml diff --git a/receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/ClockManager.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/ClockManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/ClockManager.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/ClockManager.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/SystemMilliClock.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/SystemMilliClock.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/SystemMilliClock.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/SystemMilliClock.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/Clock.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/Clock.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/Clock.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/Clock.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/ClockManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/ClockManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/ClockManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/ClockManagercpp.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/ClockRegisters.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/ClockRegisters.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/ClockRegisters.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/ClockRegisters.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/SystemClocks.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/SystemClocks.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/SystemClocks.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/SystemClocks.hpp diff --git a/receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/SystemMilliClockcpp.hpp b/receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/SystemMilliClockcpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/SystemMilliClockcpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/clock/clock-ll/src/main/c++/clock-ll/specific/SystemMilliClockcpp.hpp diff --git a/receivers/native/arm/peripherals/clock/pom.xml b/receivers/generic-c++/zll/arm/peripherals/clock/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/clock/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/clock/pom.xml diff --git a/receivers/native/arm/peripherals/dma/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/dma/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/dma/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/dma/all/pom.xml diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaChannelInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaChannelInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaChannelInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaChannelInternal.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaManagercpp.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaRegisters.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaRegisters.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaRegisters.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/DmaRegisters.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/Dmacpp.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/Dmacpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/Dmacpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32f/src/main/c++/dma-ll-stm32f/specific/Dmacpp.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32g/pom.xml b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32g/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/pom.xml diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaChannelInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaChannelInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaChannelInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaChannelInternal.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaManagercpp.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaMuxRequest.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaMuxRequest.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaMuxRequest.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaMuxRequest.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaRegisters.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaRegisters.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaRegisters.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/DmaRegisters.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/Dmacpp.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/Dmacpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/Dmacpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll-stm32g/src/main/c++/dma-ll-stm32g/specific/Dmacpp.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/pom.xml diff --git a/receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/Dma.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/Dma.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/Dma.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/Dma.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/DmaManager.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/DmaManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/DmaManager.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/DmaManager.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/DmaChannelInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/DmaChannelInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/DmaChannelInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/DmaChannelInternal.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/DmaManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/DmaManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/DmaManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/DmaManagercpp.hpp diff --git a/receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/Dmacpp.hpp b/receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/Dmacpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/Dmacpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/dma/dma-ll/src/main/c++/dma-ll/specific/Dmacpp.hpp diff --git a/receivers/native/arm/peripherals/dma/pom.xml b/receivers/generic-c++/zll/arm/peripherals/dma/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/dma/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/dma/pom.xml diff --git a/receivers/native/arm/peripherals/i2c/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/i2c/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/i2c/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/i2c/all/pom.xml diff --git a/receivers/native/arm/peripherals/i2c/i2c-core/pom.xml b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-core/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-core/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-core/pom.xml diff --git a/receivers/native/arm/peripherals/i2c/i2c-core/src/main/c++/i2c/ZcodeI2cChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-core/src/main/c++/i2c/ZcodeI2cChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-core/src/main/c++/i2c/ZcodeI2cChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-core/src/main/c++/i2c/ZcodeI2cChannel.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-core/src/main/c++/i2c/ZcodeI2cModule.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-core/src/main/c++/i2c/ZcodeI2cModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-core/src/main/c++/i2c/ZcodeI2cModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-core/src/main/c++/i2c/ZcodeI2cModule.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/pom.xml b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/pom.xml diff --git a/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cInternal.hpp new file mode 100644 index 000000000..d1ac7eecc --- /dev/null +++ b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cInternal.hpp @@ -0,0 +1,430 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CINTERNAL_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CINTERNAL_HPP_ + +#include + +#include +#include +#include +#include +#include +#include "I2cRegisters.hpp" + +struct I2cState { + uint16_t repeatCount :10; + bool hasTx :1; + bool hasRx :1; + bool hasTxRx :1; + bool txDone :1; + bool useDmas :1; + bool lockBool :1; + bool tenBit :1; +}; +template +class I2cInternal { +private: + GpioPinName sda; + PinAlternateFunction sdaFunction; + GpioPinName scl; + PinAlternateFunction sclFunction; + I2cRegisters *registers; + + void setupCr1(bool setupDmas, bool setupInterrupts) { + const uint32_t enableI2cRxDma = 0x8000; + const uint32_t enableI2cTxDma = 0x4000; + const uint32_t enableI2cRxInterrupt = 0x04; + const uint32_t enableI2cTxInterrupt = 0x02; + const uint32_t enableI2cStopInterrupt = 0x20; + const uint32_t enableI2cNackInterrupt = 0x10; + const uint32_t enableI2cTransmitCompleteInterrupt = 0x40; + const uint32_t enableI2cErrorInterrupt = 0x80; + uint32_t cr1r = registers->CR1; + cr1r &= ~(enableI2cRxDma | enableI2cTxDma | + enableI2cRxInterrupt | enableI2cTxInterrupt | + enableI2cErrorInterrupt | enableI2cTransmitCompleteInterrupt | enableI2cStopInterrupt | enableI2cNackInterrupt); + if (setupInterrupts) { + cr1r |= enableI2cErrorInterrupt | enableI2cTransmitCompleteInterrupt | enableI2cStopInterrupt + | enableI2cNackInterrupt; + if (setupDmas) { + cr1r |= enableI2cRxDma | enableI2cTxDma; + } else { + cr1r |= enableI2cRxInterrupt | enableI2cTxInterrupt; + } + } + registers->CR1 = cr1r; + } +public: + I2cInternal(GpioPinName sda, PinAlternateFunction sdaFunction, GpioPinName scl, PinAlternateFunction sclFunction, I2cRegisters *registers) : + sda(sda), sdaFunction(sdaFunction), scl(scl), sclFunction(sclFunction), registers(registers) { + } + void activateClock(I2cIdentifier id); + void activatePins(); + bool recoverSdaJam(); + + void setFrequency(Clock *clock, I2cFrequency freq); + + void enablePeripheral() { + const uint32_t enableI2c = 0x1; + if (registers != NULL) { + setupErrorInterrupt(); + registers->CR1 |= enableI2c; + } + } + + void disablePeripheral() { + const uint32_t enableI2c = 0x1; + if (registers != NULL) { + setupCr1(false, false); + registers->CR1 &= ~enableI2c; + } + } + + void setStop() { + const uint32_t i2cStopGenerate = 0x4000; + registers->CR2 |= i2cStopGenerate; + } + void setNackAndStop() { + const uint32_t i2cNackGenerate = 0x8000; + const uint32_t i2cStopGenerate = 0x4000; + registers->CR2 |= i2cNackGenerate | i2cStopGenerate; + } + + void doBasicSetup() { + const uint32_t enableI2c = 0x1; + + const uint32_t enableI2c10BitAddress = 0x00001000; + + const uint32_t enableI2cSclLowTimeout = 0x8000; + const uint32_t sclLowTimeout3564Clock = 0x0600; + + uint32_t ccr1 = enableI2c; + + uint32_t ccr2 = enableI2c10BitAddress; + + if (registers != NULL) { + registers->TIMEOUTR = enableI2cSclLowTimeout | sclLowTimeout3564Clock; // disable timeout on clock stretch, + // Enable SCL low timeout - with 50ms of timeout. + + registers->CR2 = ccr2; + registers->CR1 = ccr1; // turn on peripheral + } + } + + bool hasReadDataInt() { + const uint32_t rxNotEmpty = 0x04; + return registers->ISR & rxNotEmpty; + } + uint8_t readData() { + uint8_t data = registers->RXDR; + return data; + } + bool isSetUp() { + return registers != NULL; + } + + bool hasNoSendDataInt() { + const uint32_t txEmpty = 0x02; + return registers->ISR & txEmpty; + } + void sendData(uint8_t data) { + registers->TXDR = data; + } + + bool hasBusErrorInt() { + const uint32_t i2cBusError = 0x100; + return registers->ISR & i2cBusError; + } + void clearBusErrorInt() { + const uint32_t i2cBusError = 0x100; + registers->ICR |= i2cBusError; + } + + bool hasArbitrationLossInt() { + const uint32_t i2cArbitrationLoss = 0x200; + return registers->ISR & i2cArbitrationLoss; + } + void clearArbitrationLossInt() { + const uint32_t i2cArbitrationLoss = 0x200; + registers->ICR |= i2cArbitrationLoss; + } + + bool hasTimeoutInt() { + const uint32_t i2cTimeout = 0x1000; + return registers->ISR & i2cTimeout; + } + void clearTimeoutInt() { + const uint32_t i2cTimeout = 0x1000; + registers->ICR |= i2cTimeout; + } + + bool hasNackInt() { + const uint32_t i2cNack = 0x10; + return registers->ISR & i2cNack; + } + void clearNackInt() { + const uint32_t i2cNack = 0x10; + registers->ICR |= i2cNack; + } + + bool hasStopInt() { + const uint32_t i2cStop = 0x20; + return registers->ISR & i2cStop; + } + void clearStopInt() { + const uint32_t i2cStop = 0x20; + registers->ICR |= i2cStop; + } + + bool hasTransferCompleteInt() { + const uint32_t i2cTransferComplete = 0x40; + return registers->ISR & i2cTransferComplete; + } + + bool hasReloadInt() { + const uint32_t i2cReload = 0x80; + return registers->ISR & i2cReload; + } + void setFullReload() { + registers->CR2 |= 0x1FF << 16; + } + void loadSize(uint8_t length) { + registers->CR2 &= ~(0x1FF << 16); + registers->CR2 |= length << 16; + } + + bool isBusy() { + const uint32_t i2cBusy = 0x8000; + return registers->ISR & i2cBusy; + } + + uint8_t* rxRegAddr() { + return (uint8_t*) ®isters->RXDR; + } + uint8_t* txRegAddr() { + return (uint8_t*) ®isters->TXDR; + } + void setupTransmit(bool setupDmas, bool setupInterrupts, uint16_t addr, bool tenBit, uint16_t txLen) { + const uint32_t enableI2c10BitAddress = 0x00001000; + const uint32_t enableI2cAutoEnd = 0x02000000; + const uint32_t enableI2c10BitAddressing = 0x0800; + const uint32_t i2cStart = 0x2000; + + if (hasStopInt()) { + // STOP + clearStopInt(); + } + uint32_t cr2r = enableI2c10BitAddress; //we always want 10 bit addressing to be done properly, and we want to write + cr2r |= enableI2cAutoEnd; // set autoend + if (tenBit) { + cr2r |= enableI2c10BitAddressing; // set 10 bit addressing + } else { + addr <<= 1; + } + cr2r |= addr; + uint16_t chunking; + if (txLen > 255) { + chunking = 0x1FF; + } else { + chunking = txLen; + } + cr2r |= chunking << 16; + setupCr1(setupDmas, setupInterrupts); + registers->CR2 = cr2r; + registers->CR2 |= i2cStart; + } + void setupReceive(bool setupDmas, bool setupInterrupts, uint16_t addr, bool tenBit, uint16_t rxLen) { + const uint32_t enableI2c10BitAddress = 0x00001000; + const uint32_t enableI2cAutoEnd = 0x02000000; + const uint32_t enableI2c10BitAddressing = 0x0800; + const uint32_t i2cStart = 0x2000; + const uint32_t i2cRxNTx = 0x0400; + + if (hasStopInt()) { + // STOP + clearStopInt(); + } + uint32_t cr2r = enableI2c10BitAddress | i2cRxNTx; //and want 10 bit addressing to be done properly, and we want to read + cr2r |= enableI2cAutoEnd; // set autoend + if (tenBit) { + cr2r |= enableI2c10BitAddressing; // set 10 bit addressing + } else { + addr <<= 1; + } + cr2r |= addr; + uint16_t chunking; + if (rxLen > 255) { + chunking = 0x1FF; + } else { + chunking = rxLen; + } + cr2r |= chunking << 16; + setupCr1(setupDmas, setupInterrupts); + registers->CR2 = cr2r; + registers->CR2 |= i2cStart; + } + void setupErrorInterrupt() { + const uint32_t enableI2cErrorInterrupt = 0x80; + registers->CR1 |= enableI2cErrorInterrupt; + } + +}; + +template +void I2cInternal::activateClock(I2cIdentifier id) { + const uint32_t enableI2c1Registers = 0x00200000; + const uint32_t enableI2c2Registers = 0x00400000; + const uint32_t enableI2c3Registers = 0x40000000; + const uint32_t enableI2c4Registers = 0x00000002; + + const uint32_t i2c1ClockMask = 0x00003000; + const uint32_t i2c1ClockHSI16 = 0x00002000; + + const uint32_t i2c2ClockMask = 0x0000C000; + const uint32_t i2c2ClockHSI16 = 0x00008000; + + const uint32_t i2c3ClockMask = 0x00030000; + const uint32_t i2c3ClockHSI16 = 0x00020000; + + const uint32_t i2c4ClockMask = 0x00000003; + const uint32_t i2c4ClockHSI16 = 0x00000002; + + GpioManager::getPin(scl).init(); + GpioManager::getPin(sda).init(); + if (id == 0) { + RCC->APB1ENR1 |= enableI2c1Registers; + RCC->CCIPR &= ~i2c1ClockMask; + RCC->CCIPR |= i2c1ClockHSI16; + } else if (id == 1) { + RCC->APB1ENR1 |= enableI2c2Registers; + RCC->CCIPR &= ~i2c2ClockMask; + RCC->CCIPR |= i2c2ClockHSI16; + } else if (id == 2) { + RCC->APB1ENR1 |= enableI2c3Registers; + RCC->CCIPR &= ~i2c3ClockMask; + RCC->CCIPR |= i2c3ClockHSI16; + } else { + RCC->APB1ENR2 |= enableI2c4Registers; + RCC->CCIPR2 &= ~i2c4ClockMask; + RCC->CCIPR2 |= i2c4ClockHSI16; + } +} + +template +void I2cInternal::activatePins() { + GpioManager::getPin(scl).setPullMode(NoPull); + GpioManager::getPin(scl).setOutputMode(OpenDrain); + GpioManager::getPin(scl).setAlternateFunction(sclFunction); + GpioManager::getPin(scl).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(scl).setMode(AlternateFunction); + GpioManager::getPin(sda).setPullMode(NoPull); + GpioManager::getPin(sda).setOutputMode(OpenDrain); + GpioManager::getPin(sda).setAlternateFunction(sdaFunction); + GpioManager::getPin(sda).setOutputSpeed(VeryHighSpeed); + GpioManager::getPin(sda).setMode(AlternateFunction); +} + +template +bool I2cInternal::recoverSdaJam() { + int attempts = 18; + GpioPin sdaPin = GpioManager::getPin(sda); + GpioPin sclPin = GpioManager::getPin(scl); + sdaPin.setPullMode(NoPull); + sdaPin.setOutputMode(OpenDrain); + sdaPin.setOutputSpeed(VeryHighSpeed); + sclPin.setPullMode(NoPull); + sclPin.setOutputMode(OpenDrain); + sclPin.setOutputSpeed(VeryHighSpeed); + sdaPin.set(); + sclPin.set(); + sdaPin.setMode(Output); + sclPin.setMode(Output); + sdaPin.set(); + if (sdaPin.read()) { + activatePins(); + return true; + } + sclPin.set(); + SystemMilliClock::blockDelayMillis(10); + if (!sclPin.read()) { + activatePins(); + return false; + } + while (!sdaPin.read() && attempts > 0) { + sclPin.set(); + SystemMilliClock::blockDelayMillis(10); + sclPin.reset(); + SystemMilliClock::blockDelayMillis(10); + attempts--; + } + sdaPin.reset(); + sclPin.set(); + sdaPin.set(); + sdaPin.setMode(AlternateFunction); + sclPin.setMode(AlternateFunction); + activatePins(); + return sdaPin.read(); +} + +template +void I2cInternal::setFrequency(Clock *clock, I2cFrequency freq) { + const uint32_t enableI2c = 0x1; + + const uint32_t sclDelay3 = 0x00200000; + const uint32_t sclDelay4 = 0x00300000; + const uint32_t sclDelay5 = 0x00400000; + + const uint32_t sdaDelay0 = 0x00000000; + const uint32_t sdaDelay2 = 0x00020000; + const uint32_t sdaDelay3 = 0x00030000; + + const uint32_t sclHigh2 = 0x0100; + const uint32_t sclHigh4 = 0x0300; + const uint32_t sclHigh16 = 0x0F00; + const uint32_t sclHigh184 = 0xC300; + + const uint32_t sclLow4 = 0x03; + const uint32_t sclLow10 = 0x09; + const uint32_t sclLow20 = 0x13; + const uint32_t sclLow200 = 0xC7; + + if (registers == NULL) { + return; + } + registers->CR1 &= ~enableI2c; // turn off peripheral + // Always uses PCLK_1 + if (freq == kHz10) { + uint8_t scale = clock->getDivider(4000) - 1; + if (scale > 15) { + scale = 15; + } + registers->TIMINGR = sclDelay5 | sdaDelay2 | sclHigh184 | sclLow200 | (scale << 28); + } else if (freq == kHz100) { + uint8_t scale = clock->getDivider(4000) - 1; + if (scale > 15) { + scale = 15; + } + registers->TIMINGR = sclDelay5 | sdaDelay2 | sclHigh16 | sclLow20 | (scale << 28); + } else if (freq == kHz400) { + uint8_t scale = clock->getDivider(8000) - 1; + if (scale > 15) { + scale = 15; + } + registers->TIMINGR = sclDelay4 | sdaDelay3 | sclHigh4 | sclLow10 | (scale << 28); + } else if (freq == kHz1000) { + uint8_t scale = clock->getDivider(16000) - 1; + if (scale > 15) { + scale = 15; + } + registers->TIMINGR = sclDelay3 | sdaDelay0 | sclHigh2 | sclLow4 | (scale << 28); + } + registers->CR1 |= enableI2c; // turn on peripheral +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CINTERNAL_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cManagercpp.hpp new file mode 100644 index 000000000..ead4c561f --- /dev/null +++ b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cManagercpp.hpp @@ -0,0 +1,97 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CMANAGERCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CMANAGERCPP_HPP_ + +#define I2C_SDA_Inner(I2C,PIN) I2C##_SDA_##PIN +#define I2C_SDA(I2C,PIN) I2C_SDA_Inner(I2C, PIN) + +#define I2C_SCL_Inner(I2C,PIN) I2C##_SCL_##PIN +#define I2C_SCL(I2C,PIN) I2C_SCL_Inner(I2C, PIN) + +#ifdef USE_I2C1 +#if !I2C_SDA(_I2C1, I2C1_SDA) +#error Not defined as a valid I2C 1 SDA pin: I2C1_SDA +#endif +#if !I2C_SCL(_I2C1, I2C1_SCL) +#error Not defined as a valid I2C 1 SCL pin: I2C1_SCL +#endif +#endif + +#ifdef USE_I2C2 +#if !I2C_SDA(_I2C2, I2C2_SDA) +#error Not defined as a valid I2C 2 SDA pin: I2C2_SDA +#endif +#if !I2C_SCL(_I2C2, I2C2_SCL) +#error Not defined as a valid I2C 2 SCL pin: I2C2_SCL +#endif +#endif + +#ifdef USE_I2C3 +#if !I2C_SDA(_I2C3, I2C3_SDA) +#error Not defined as a valid I2C 3 SDA pin: I2C3_SDA +#endif +#if !I2C_SCL(_I2C3, I2C3_SCL) +#error Not defined as a valid I2C 3 SCL pin: I2C3_SCL +#endif +#endif + +#ifdef USE_I2C4 +#if !I2C_SDA(_I2C4, I2C4_SDA) +#error Not defined as a valid I2C 4 SDA pin: I2C4_SDA +#endif +#if !I2C_SCL(_I2C4, I2C4_SCL) +#error Not defined as a valid I2C 4 SCL pin: I2C4_SCL +#endif +#endif + +#ifdef I2C_DMA +#define I2C_INITIALISE(x) I2c(\ + I2cInternal(I2C_SDA(I2C1, I2C1_SDA), I2C_SCL(I2C1, I2C1_SCL), I2C##x##_REGISTER_LOC),\ + x,\ + DMAMUX_I2C##x##_TX,\ + DMAMUX_I2C##x##_RX\ + ) +#else +#define I2C_INITIALISE(x) I2c(\ + I2cInternal(I2C_SDA(I2C1, I2C1_SDA), I2C_SCL(I2C1, I2C1_SCL), I2C##x##_REGISTER_LOC),\ + x\ + ) +#endif + +template +I2c I2cManager::i2cs[] = { + ARRAY_INITIALISE_1(I2C_INITIALISE, I2C_COUNT) +}; + +template +void I2cManager::interrupt(uint8_t id) { + i2cs[id].interrupt(); +} + +template +void I2cManager::dmaInterrupt(Dma *dma, DmaTerminationStatus status) { + for (int i = 0; i < HW::i2cCount; ++i) { + if (I2cManager::getI2cById(i)->dma == dma) { + I2cManager::getI2cById(i)->dmaInterrupt(status); + break; + } + } +} +template +void I2cManager::init() { + InterruptManager::setInterrupt(&I2cManager::interrupt, InterruptType::I2cEv); + InterruptManager::setInterrupt(&I2cManager::interrupt, InterruptType::I2cEr); + for (int i = 0; i < HW::i2cCount; ++i) { + i2cs[i].init(); + InterruptManager::enableInterrupt(InterruptType::I2cEv, i, 10); + InterruptManager::enableInterrupt(InterruptType::I2cEr, i, 10); + } +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CMANAGERCPP_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cRegisters.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cRegisters.hpp new file mode 100644 index 000000000..45cf5931a --- /dev/null +++ b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2cRegisters.hpp @@ -0,0 +1,27 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CREGISTERS_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CREGISTERS_HPP_ + +#include + +struct I2cRegisters { + volatile uint32_t CR1; + volatile uint32_t CR2; + volatile uint32_t OAR1; + volatile uint32_t OAR2; + volatile uint32_t TIMINGR; + volatile uint32_t TIMEOUTR; + volatile uint32_t ISR; + volatile uint32_t ICR; + volatile uint32_t PECR; + volatile uint32_t RXDR; + volatile uint32_t TXDR; +}; + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CREGISTERS_HPP_ */ diff --git a/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2ccpp.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2ccpp.hpp new file mode 100644 index 000000000..ad0aac2e0 --- /dev/null +++ b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll-stm32-2-1-1/src/main/c++/i2c-ll-stm32-2-1-1/lowlevel/specific/I2ccpp.hpp @@ -0,0 +1,458 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CCPP_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CCPP_HPP_ + +#include +#include +#include +#include "I2cInternal.hpp" + +template +bool I2c::init() { + state.hasRx = false; + state.hasTx = false; + state.hasTxRx = false; + state.txDone = false; + state.lockBool = false; + i2c.activateClock(id); + i2c.disablePeripheral(); + setFrequency(kHz100); + i2c.doBasicSetup(); + bool worked = i2c.recoverSdaJam(); // just make sure no stupid states + i2c.activatePins(); + i2c.enablePeripheral(); + return worked; +} + +template +void I2c::setFrequency(I2cFrequency freq) { + i2c.disablePeripheral(); + i2c.setFrequency(ClockManager::getClock(HSI), freq); + i2c.enablePeripheral(); +} + +template +void I2c::dmaInterrupt(DmaTerminationStatus status) { + if (status == SetupError) { + callback(this, OtherError); + } else if (status == DmaError) { + callback(this, MemoryError); + } else if (status == DataTransferComplete) { + if (state.hasTxRx && state.txDone) { + i2c.setStop(); + } else { + callback(this, OtherError); // as we set the DMA to be able to transfer 1 extra byte + } + } +} + +template +void I2c::finish() { + if (((state.hasRx && (!state.hasTxRx || state.txDone)) || txLen != 0) && state.useDmas) { + dma->halt(); + dma->unlock(); + } + state.hasRx = false; + state.hasTx = false; + state.hasTxRx = false; + state.txDone = false; + txLen = 0; + txData = NULL; + rxLen = 0; + rxData = NULL; + position = 0; +} + +template +void I2c::interrupt() { + if (i2c.hasReadDataInt() && position != rxLen) { + if (position == rxLen) { + i2c.setNackAndStop(); + } else { + rxData[position++] = i2c.readData(); + } + } else if (i2c.hasNoSendDataInt() && position != txLen) { + if (position == txLen) { + i2c.setNackAndStop(); + } else { + i2c.sendData(txData[position++]); + } + } else if (i2c.hasBusErrorInt()) { + // BERR + if (callback != NULL) { + callback(this, BusError); + } + finish(); + i2c.clearBusErrorInt(); + } else if (i2c.hasArbitrationLossInt()) { + // ARLO + if ((state.hasRx && (!state.hasTxRx || state.txDone)) || txLen != 0) { + dma->halt(); + dma->unlock(); + } + bool worked = init(); + if (callback != NULL) { + if (worked) { + callback(this, BusError); + } else { + callback(this, BusJammed); + } + } + finish(); + i2c.clearArbitrationLossInt(); + } else if (i2c.hasTimeoutInt()) { + bool worked = init(); + if (callback != NULL) { + // TIMEOUT + if (worked) { + callback(this, BusError); + } else { + callback(this, BusJammed); + } + } + finish(); + i2c.clearTimeoutInt(); + } else if (i2c.hasNackInt()) { + // NACK + if ((!state.hasTxRx && state.hasRx && ((state.useDmas && dma->fetchRemainingTransferLength() == rxLen) || (!state.useDmas && position == 0))) + || (state.hasTx && (txLen == 0 || ((state.useDmas && dma->fetchRemainingTransferLength() == txLen) || (!state.useDmas && position == 0))))) { + callback(this, AddressNack); + } else if (state.hasTxRx && state.txDone && ((state.useDmas && dma->fetchRemainingTransferLength() == rxLen) || (!state.useDmas && position == 0))) { + callback(this, Address2Nack); + } else { + callback(this, DataNack); + } + finish(); + i2c.clearNackInt(); + } else if (i2c.hasStopInt()) { + // STOP + if (state.hasRx || state.hasTx || state.hasTxRx) { + callback(this, Complete); + } + finish(); + i2c.clearStopInt(); + } else if (i2c.hasTransferCompleteInt()) { + // TC - bidirectional + if (!state.txDone) { + restartReceive(); + } else { + i2c.setNackAndStop(); + finish(); + callback(this, Complete); + } + } else if (i2c.hasReloadInt()) { + // TCR - reload + uint16_t length = 0; + if (state.hasTx && !state.txDone) { + length = txLen; + } else if (state.hasRx) { + length = rxLen; + } // umm, what if neither - obviously an illegal state, but still + length -= state.repeatCount * 0xFF; + if (length > 255) { + i2c.setFullReload(); + } else { + i2c.loadSize(length); + } + state.repeatCount++; + } +} + +template +void I2c::asyncTransmit10(PeripheralOperationMode mode, uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, + void (*callback)(I2c*, I2cTerminationStatus)) { + if (mode == DMA && dma == NULL) { + mode = INTERRUPT; + } + if (mode == SYNCHRONOUS) { + callback(this, transmit10(address, tenBit, txData, txLen)); + return; + } + if (state.hasTx || state.hasRx || state.hasTxRx || state.txDone || i2c.isBusy()) { + callback(this, BusBusy); + return; + } + if (txLen != 0 && mode == DMA && !dma->lock()) { + callback(this, BusBusy); + return; + } + if (address >= 1024 || (address >= 128 && !tenBit)) { + callback(this, OtherError); + return; + } + this->callback = callback; + state.repeatCount = 0; + state.hasTx = true; + this->txData = txData; + this->txLen = txLen; + this->address = address; + state.tenBit = tenBit; + state.useDmas = mode == DMA; + if (txLen != 0 && mode == DMA) { + dma->peripheralWrite(requestTx, txData, true, i2c.txRegAddr(), false, txLen + 1, false, Medium, &I2cManager::dmaInterrupt, false); + } + i2c.setupTransmit(mode == DMA, true, address, tenBit, txLen); +} + +template +void I2c::asyncReceive10(PeripheralOperationMode mode, uint16_t address, bool tenBit, uint8_t *rxData, uint16_t rxLen, + void (*callback)(I2c*, I2cTerminationStatus)) { + if (mode == DMA && dma == NULL) { + mode = INTERRUPT; + } + if (mode == SYNCHRONOUS) { + callback(this, receive10(address, tenBit, rxData, rxLen)); + return; + } + if (state.hasTx || state.hasRx || state.hasTxRx || state.txDone || i2c.isBusy()) { + callback(this, BusBusy); + return; + } + if (address >= 1024 || (address >= 128 && !tenBit)) { + callback(this, OtherError); + return; + } + if (txLen != 0 && mode == DMA && !dma->lock()) { + callback(this, BusBusy); + return; + } + this->callback = callback; + state.repeatCount = 0; + state.hasRx = true; + this->rxData = rxData; + this->rxLen = rxLen; + this->address = address; + state.useDmas = mode == DMA; + state.tenBit = tenBit; + if (mode == DMA) { + dma->peripheralRead(requestRx, i2c.rxRegAddr(), false, rxData, true, rxLen + 1, false, Medium, &I2cManager::dmaInterrupt, false); + } + i2c.setupReceive(state.useDmas, true, address, tenBit, rxLen); +} + +template +void I2c::asyncTransmitReceive10(PeripheralOperationMode mode, uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, uint8_t *rxData, + uint16_t rxLen, void (*callback)(I2c*, I2cTerminationStatus)) { + if (mode == DMA && dma == NULL) { + mode = INTERRUPT; + } + if (mode == SYNCHRONOUS) { + callback(this, transmitReceive10(address, tenBit, txData, txLen, rxData, rxLen)); + return; + } + state.hasTx = true; + state.hasTxRx = true; + this->rxData = rxData; + this->rxLen = rxLen; + asyncTransmit10(mode, address, tenBit, txData, txLen, callback); +} + +template +void I2c::restartReceive() { + if (txLen == 0 && state.useDmas && !dma->lock()) { + callback(this, BusBusy); + i2c.setStop(); + return; + } + if (state.useDmas) { + dma->halt(); + } + if (rxLen == 0) { + callback(this, OtherError); + i2c.setStop(); + if (state.useDmas) { + dma->unlock(); + } + return; + } + if (address >= 1024 || (address >= 128 && !state.tenBit)) { + callback(this, OtherError); + i2c.setStop(); + if (state.useDmas) { + dma->unlock(); + } + return; + } + this->callback = callback; + state.repeatCount = 0; + state.txDone = true; + if (state.useDmas) { + dma->peripheralRead(requestRx, i2c.rxRegAddr(), false, rxData, true, rxLen + 1, false, Medium, &I2cManager::dmaInterrupt, false); + } + i2c.setupReceive(state.useDmas, true, address, state.tenBit, rxLen); +} + +template +I2cTerminationStatus I2c::transmit10(uint16_t address, bool tenBit, const uint8_t *txData, uint16_t txLen, bool stop) { + if (state.hasTx || state.hasRx || state.hasTxRx || state.txDone || i2c.isBusy()) { + return BusBusy; + } + if (address >= 1024 || (address >= 128 && !tenBit)) { + return OtherError; + } + state.repeatCount = 0; + state.hasRx = false; + state.hasTx = false; + state.txDone = false; + state.hasTxRx = false; + position = 0; + i2c.setupTransmit(false, false, address, tenBit, txLen); + while (true) { + if (i2c.hasNoSendDataInt()) { + if (position == txLen) { + i2c.setNackAndStop(); + } else { + i2c.sendData(txData[position++]); + } + } else if (i2c.hasBusErrorInt()) { + finish(); + i2c.clearBusErrorInt(); + i2c.setupErrorInterrupt(); + return BusError; + } else if (i2c.hasArbitrationLossInt()) { + // ARLO + bool worked = init(); + finish(); + i2c.clearArbitrationLossInt(); + i2c.setupErrorInterrupt(); + if (worked) { + return BusError; + } else { + return BusJammed; + } + } else if (i2c.hasTimeoutInt()) { + // TIMEOUT + finish(); + i2c.clearTimeoutInt(); + i2c.setupErrorInterrupt(); + return BusJammed; + } else if (i2c.hasNackInt()) { + // NACK + finish(); + i2c.clearNackInt(); + i2c.setupErrorInterrupt(); + if (position == 0) { + return AddressNack; + } else { + return DataNack; + } + } else if (i2c.hasStopInt()) { + // STOP + finish(); + i2c.clearStopInt(); + i2c.setupErrorInterrupt(); + return Complete; + } else if (i2c.hasTransferCompleteInt()) { + // TC - bidirectional + if (stop) { + finish(); + i2c.setNackAndStop(); + i2c.setupErrorInterrupt(); + return Complete; + } else { + return Complete; + } + } else if (i2c.hasReloadInt()) { + // TCR - reload + uint16_t length = txLen; + length -= state.repeatCount * 0xFF; + if (length > 255) { + i2c.setFullReload(); + } else { + i2c.loadSize(length); + } + state.repeatCount++; + } + } +} +template +I2cTerminationStatus I2c::receive10(uint16_t address, bool tenBit, uint8_t *rxData, uint16_t rxLen) { + if (state.hasTx || state.hasRx || state.hasTxRx || state.txDone || i2c.isBusy()) { + return BusBusy; + } + if (address >= 1024 || (address >= 128 && !tenBit)) { + return OtherError; + } + state.repeatCount = 0; + state.hasRx = false; + state.hasTx = false; + state.txDone = false; + state.hasTxRx = false; + position = 0; + i2c.setupReceive(false, false, address, state.tenBit, rxLen); + while (true) { + if (i2c.hasReadDataInt()) { + if (position == rxLen) { + i2c.setNackAndStop(); + volatile uint8_t v = i2c.readData(); + (void) v; + i2c.setupErrorInterrupt(); + return Complete; + } else { + rxData[position++] = i2c.readData(); + } + } else if (i2c.hasBusErrorInt()) { + finish(); + i2c.clearBusErrorInt(); + i2c.setupErrorInterrupt(); + return BusError; + } else if (i2c.hasArbitrationLossInt()) { + // ARLO + bool worked = init(); + finish(); + i2c.clearArbitrationLossInt(); + i2c.setupErrorInterrupt(); + if (worked) { + return BusError; + } else { + return BusJammed; + } + } else if (i2c.hasTimeoutInt()) { + // TIMEOUT + finish(); + i2c.clearTimeoutInt(); + i2c.setupErrorInterrupt(); + return BusJammed; + } else if (i2c.hasNackInt()) { + // NACK + finish(); + i2c.clearNackInt(); + i2c.setupErrorInterrupt(); + if (position == 0) { + return AddressNack; + } else { + return DataNack; + } + } else if (i2c.hasStopInt()) { + // STOP + finish(); + i2c.clearStopInt(); + i2c.setupErrorInterrupt(); + return Complete; + } else if (i2c.hasTransferCompleteInt()) { + // TC - bidirectional + finish(); + i2c.setNackAndStop(); + i2c.setupErrorInterrupt(); + return Complete; + } else if (i2c.hasReloadInt()) { + // TCR - reload + uint16_t length = rxLen; + length -= state.repeatCount * 0xFF; + if (length > 255) { + i2c.setFullReload(); + } else { + i2c.loadSize(length); + } + state.repeatCount++; + } + } +} + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_STM32G4_I2C_MODULE_LOWLEVEL_SPECIFIC_I2CCPP_HPP_ */ diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/pom.xml diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/I2cLLInterfaceInclude.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/I2cLLInterfaceInclude.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/I2cLLInterfaceInclude.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/I2cLLInterfaceInclude.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/ZcodeI2cChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/ZcodeI2cChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/ZcodeI2cChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/ZcodeI2cChannel.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/ZcodeI2cModule.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/ZcodeI2cModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/ZcodeI2cModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/ZcodeI2cModule.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/addressing/ZcodeI2cAddressingSystem.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/addressing/ZcodeI2cAddressingSystem.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/addressing/ZcodeI2cAddressingSystem.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/addressing/ZcodeI2cAddressingSystem.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/addressing/ZcodeI2cBusInterruptSource.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/addressing/ZcodeI2cBusInterruptSource.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/addressing/ZcodeI2cBusInterruptSource.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/addressing/ZcodeI2cBusInterruptSource.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/GeneralI2cAction.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/GeneralI2cAction.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/GeneralI2cAction.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/GeneralI2cAction.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cCapabilitiesCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cCapabilitiesCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cCapabilitiesCommand.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cReceiveCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cReceiveCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cReceiveCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cReceiveCommand.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSendCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSendCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSendCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSendCommand.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSendReceiveCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSendReceiveCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSendReceiveCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSendReceiveCommand.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSetupCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSetupCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSetupCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/commands/ZcodeI2cSetupCommand.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2c.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2c.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2c.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2c.hpp diff --git a/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2cManager.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2cManager.hpp new file mode 100644 index 000000000..45260f194 --- /dev/null +++ b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/I2cManager.hpp @@ -0,0 +1,40 @@ +/* + * Zcode Library - Command System for Microcontrollers) + * Copyright (c) 2022 Zcode team (Susan Witts, Alicia Witts) + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2CMANAGER_HPP_ +#define SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2CMANAGER_HPP_ + +#include +#include +#include "I2c.hpp" + +template +class I2cManager { + typedef typename LL::HW HW; + private: + + friend class I2c ; + static I2c i2cs[I2C_COUNT]; + + static void interrupt(uint8_t); + +#ifdef I2C_DMA + static void dmaInterrupt(Dma*, DmaTerminationStatus); +#endif + I2cManager() { + } + +public: + static void init(); + + static I2c* getI2cById(I2cIdentifier id) { + return i2cs + id; + } +}; +#include "specific/I2cManagercpp.hpp" + +#endif /* SRC_MAIN_CPP_ARM_NO_OS_I2C_MODULE_LOWLEVEL_I2CMANAGER_HPP_ */ diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2cInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2cInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2cInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2cInternal.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2cManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2cManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2cManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2cManagercpp.hpp diff --git a/receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2ccpp.hpp b/receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2ccpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2ccpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/i2c/i2c-ll/src/main/c++/i2c-ll/lowlevel/specific/I2ccpp.hpp diff --git a/receivers/native/arm/peripherals/i2c/pom.xml b/receivers/generic-c++/zll/arm/peripherals/i2c/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/i2c/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/i2c/pom.xml diff --git a/receivers/native/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/FlashPage.hpp b/receivers/generic-c++/zll/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/FlashPage.hpp similarity index 100% rename from receivers/native/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/FlashPage.hpp rename to receivers/generic-c++/zll/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/FlashPage.hpp diff --git a/receivers/native/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/ZcodeFlashPersistence.hpp b/receivers/generic-c++/zll/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/ZcodeFlashPersistence.hpp similarity index 100% rename from receivers/native/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/ZcodeFlashPersistence.hpp rename to receivers/generic-c++/zll/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/ZcodeFlashPersistence.hpp diff --git a/receivers/native/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/commands/ZcodeReadGuidCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/commands/ZcodeReadGuidCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/commands/ZcodeReadGuidCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/commands/ZcodeReadGuidCommand.hpp diff --git a/receivers/native/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/commands/ZcodeWriteGuidCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/commands/ZcodeWriteGuidCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/commands/ZcodeWriteGuidCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/persistence/persistence-ll/src/main/c++/persistence-ll/commands/ZcodeWriteGuidCommand.hpp diff --git a/receivers/native/arm/peripherals/pins/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/pins/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/pins/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/pins/all/pom.xml diff --git a/receivers/native/arm/peripherals/pins/pins-core/pom.xml b/receivers/generic-c++/zll/arm/peripherals/pins/pins-core/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-core/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-core/pom.xml diff --git a/receivers/native/arm/peripherals/pins/pins-core/src/main/c++/pins/ZcodePinModule.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-core/src/main/c++/pins/ZcodePinModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-core/src/main/c++/pins/ZcodePinModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-core/src/main/c++/pins/ZcodePinModule.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll-stm32/pom.xml b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll-stm32/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll-stm32/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll-stm32/pom.xml diff --git a/receivers/native/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/GpioManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/GpioManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/GpioManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/GpioManagercpp.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/GpioPort.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/GpioPort.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/GpioPort.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/GpioPort.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/Gpiocpp.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/Gpiocpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/Gpiocpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll-stm32/src/main/c++/pins-ll-stm32/lowlevel/specific/Gpiocpp.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/pom.xml diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/ZcodePinModule.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/ZcodePinModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/ZcodePinModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/ZcodePinModule.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinCapabilitiesCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinCapabilitiesCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinCapabilitiesCommand.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinReadCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinReadCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinReadCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinReadCommand.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinSetupCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinSetupCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinSetupCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinSetupCommand.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinWriteCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinWriteCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinWriteCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/commands/ZcodePinWriteCommand.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/Gpio.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/Gpio.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/Gpio.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/Gpio.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/GpioManager.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/GpioManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/GpioManager.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/GpioManager.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/GpioManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/GpioManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/GpioManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/GpioManagercpp.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/GpioPort.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/GpioPort.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/GpioPort.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/GpioPort.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/Gpiocpp.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/Gpiocpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/Gpiocpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/lowlevel/specific/Gpiocpp.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/AnalogPinController.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/AnalogPinController.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/AnalogPinController.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/AnalogPinController.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/DigitalPinController.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/DigitalPinController.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/DigitalPinController.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/DigitalPinController.hpp diff --git a/receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/PinController.hpp b/receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/PinController.hpp similarity index 100% rename from receivers/native/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/PinController.hpp rename to receivers/generic-c++/zll/arm/peripherals/pins/pins-ll/src/main/c++/pins-ll/pin-controller/PinController.hpp diff --git a/receivers/native/arm/peripherals/pins/pom.xml b/receivers/generic-c++/zll/arm/peripherals/pins/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/pins/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/pins/pom.xml diff --git a/receivers/native/arm/peripherals/pom.xml b/receivers/generic-c++/zll/arm/peripherals/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/pom.xml diff --git a/receivers/native/arm/peripherals/serial/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/serial/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/serial/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/serial/all/pom.xml diff --git a/receivers/native/arm/peripherals/serial/pom.xml b/receivers/generic-c++/zll/arm/peripherals/serial/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/serial/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/serial/pom.xml diff --git a/receivers/native/arm/peripherals/serial/serial-core/pom.xml b/receivers/generic-c++/zll/arm/peripherals/serial/serial-core/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-core/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-core/pom.xml diff --git a/receivers/native/arm/peripherals/serial/serial-core/src/main/c++/serial/ZcodeSerialChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-core/src/main/c++/serial/ZcodeSerialChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-core/src/main/c++/serial/ZcodeSerialChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-core/src/main/c++/serial/ZcodeSerialChannel.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-core/src/main/c++/serial/ZcodeSerialModule.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-core/src/main/c++/serial/ZcodeSerialModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-core/src/main/c++/serial/ZcodeSerialModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-core/src/main/c++/serial/ZcodeSerialModule.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/pom.xml diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/SerialLLInterfaceInclude.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/SerialLLInterfaceInclude.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/SerialLLInterfaceInclude.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/SerialLLInterfaceInclude.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/ZcodeSerialChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/ZcodeSerialChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/ZcodeSerialChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/ZcodeSerialChannel.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/ZcodeSerialModule.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/ZcodeSerialModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/ZcodeSerialModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/ZcodeSerialModule.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/addressing/ZcodeSerialAddressingSystem.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/addressing/ZcodeSerialAddressingSystem.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/addressing/ZcodeSerialAddressingSystem.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/addressing/ZcodeSerialAddressingSystem.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/addressing/ZcodeSerialBusInterruptSource.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/addressing/ZcodeSerialBusInterruptSource.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/addressing/ZcodeSerialBusInterruptSource.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/addressing/ZcodeSerialBusInterruptSource.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialCapabilitiesCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialCapabilitiesCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialCapabilitiesCommand.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialReadCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialReadCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialReadCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialReadCommand.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSendCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSendCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSendCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSendCommand.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSetupCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSetupCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSetupCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSetupCommand.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSkipCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSkipCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSkipCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/commands/ZcodeSerialSkipCommand.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/ErrorPacketSerialRingBuffer.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/ErrorPacketSerialRingBuffer.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/ErrorPacketSerialRingBuffer.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/ErrorPacketSerialRingBuffer.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/Serial.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/Serial.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/Serial.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/Serial.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/SerialManager.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/SerialManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/SerialManager.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/SerialManager.hpp diff --git a/receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/SerialRingBuffer.hpp b/receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/SerialRingBuffer.hpp similarity index 100% rename from receivers/native/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/SerialRingBuffer.hpp rename to receivers/generic-c++/zll/arm/peripherals/serial/serial-ll/src/main/c++/serial-ll/lowlevel/SerialRingBuffer.hpp diff --git a/receivers/native/arm/peripherals/spi/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/spi/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/spi/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/spi/all/pom.xml diff --git a/receivers/native/arm/peripherals/spi/pom.xml b/receivers/generic-c++/zll/arm/peripherals/spi/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/spi/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/spi/pom.xml diff --git a/receivers/native/arm/peripherals/spi/spi-for-wiznet-stm32/pom.xml b/receivers/generic-c++/zll/arm/peripherals/spi/spi-for-wiznet-stm32/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/spi/spi-for-wiznet-stm32/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/spi/spi-for-wiznet-stm32/pom.xml diff --git a/receivers/native/arm/peripherals/spi/spi-for-wiznet-stm32/src/main/c++/spi-for-wiznet-stm32/lowlevel/SPI.h b/receivers/generic-c++/zll/arm/peripherals/spi/spi-for-wiznet-stm32/src/main/c++/spi-for-wiznet-stm32/lowlevel/SPI.h similarity index 100% rename from receivers/native/arm/peripherals/spi/spi-for-wiznet-stm32/src/main/c++/spi-for-wiznet-stm32/lowlevel/SPI.h rename to receivers/generic-c++/zll/arm/peripherals/spi/spi-for-wiznet-stm32/src/main/c++/spi-for-wiznet-stm32/lowlevel/SPI.h diff --git a/receivers/native/arm/peripherals/spi/spi-for-wiznet/pom.xml b/receivers/generic-c++/zll/arm/peripherals/spi/spi-for-wiznet/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/spi/spi-for-wiznet/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/spi/spi-for-wiznet/pom.xml diff --git a/receivers/native/arm/peripherals/spi/spi-for-wiznet/src/main/c++/spi-for-wiznet/lowlevel/SPI.h b/receivers/generic-c++/zll/arm/peripherals/spi/spi-for-wiznet/src/main/c++/spi-for-wiznet/lowlevel/SPI.h similarity index 100% rename from receivers/native/arm/peripherals/spi/spi-for-wiznet/src/main/c++/spi-for-wiznet/lowlevel/SPI.h rename to receivers/generic-c++/zll/arm/peripherals/spi/spi-for-wiznet/src/main/c++/spi-for-wiznet/lowlevel/SPI.h diff --git a/receivers/native/arm/peripherals/system/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/system/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/system/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/system/all/pom.xml diff --git a/receivers/native/arm/peripherals/system/pom.xml b/receivers/generic-c++/zll/arm/peripherals/system/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/system/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/system/pom.xml diff --git a/receivers/native/arm/peripherals/system/system-core/pom.xml b/receivers/generic-c++/zll/arm/peripherals/system/system-core/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/system/system-core/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/system/system-core/pom.xml diff --git a/receivers/native/arm/peripherals/system/system-core/src/main/c++/system/ZcodeSystemModule.hpp b/receivers/generic-c++/zll/arm/peripherals/system/system-core/src/main/c++/system/ZcodeSystemModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/system/system-core/src/main/c++/system/ZcodeSystemModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/system/system-core/src/main/c++/system/ZcodeSystemModule.hpp diff --git a/receivers/native/arm/peripherals/system/system-ll-stm32f/pom.xml b/receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32f/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll-stm32f/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32f/pom.xml diff --git a/receivers/native/arm/peripherals/system/system-ll-stm32f/src/main/c++/interrupt-ll-stm32f/InterruptManager.hpp b/receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32f/src/main/c++/interrupt-ll-stm32f/InterruptManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll-stm32f/src/main/c++/interrupt-ll-stm32f/InterruptManager.hpp rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32f/src/main/c++/interrupt-ll-stm32f/InterruptManager.hpp diff --git a/receivers/native/arm/peripherals/system/system-ll-stm32f/src/main/c++/interrupt-ll-stm32f/InterruptManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32f/src/main/c++/interrupt-ll-stm32f/InterruptManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll-stm32f/src/main/c++/interrupt-ll-stm32f/InterruptManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32f/src/main/c++/interrupt-ll-stm32f/InterruptManagercpp.hpp diff --git a/receivers/native/arm/peripherals/system/system-ll-stm32g/pom.xml b/receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32g/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll-stm32g/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32g/pom.xml diff --git a/receivers/native/arm/peripherals/system/system-ll-stm32g/src/main/c++/interrupt-ll-stm32g/InterruptManager.hpp b/receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32g/src/main/c++/interrupt-ll-stm32g/InterruptManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll-stm32g/src/main/c++/interrupt-ll-stm32g/InterruptManager.hpp rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32g/src/main/c++/interrupt-ll-stm32g/InterruptManager.hpp diff --git a/receivers/native/arm/peripherals/system/system-ll-stm32g/src/main/c++/interrupt-ll-stm32g/InterruptManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32g/src/main/c++/interrupt-ll-stm32g/InterruptManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll-stm32g/src/main/c++/interrupt-ll-stm32g/InterruptManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll-stm32g/src/main/c++/interrupt-ll-stm32g/InterruptManagercpp.hpp diff --git a/receivers/native/arm/peripherals/system/system-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/system/system-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll/pom.xml diff --git a/receivers/native/arm/peripherals/system/system-ll/src/main/c++/interrupt-ll/InterruptManager.hpp b/receivers/generic-c++/zll/arm/peripherals/system/system-ll/src/main/c++/interrupt-ll/InterruptManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll/src/main/c++/interrupt-ll/InterruptManager.hpp rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll/src/main/c++/interrupt-ll/InterruptManager.hpp diff --git a/receivers/native/arm/peripherals/system/system-ll/src/main/c++/system-ll/ZcodeSystemModule.hpp b/receivers/generic-c++/zll/arm/peripherals/system/system-ll/src/main/c++/system-ll/ZcodeSystemModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/system/system-ll/src/main/c++/system-ll/ZcodeSystemModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/system/system-ll/src/main/c++/system-ll/ZcodeSystemModule.hpp diff --git a/receivers/native/arm/peripherals/uart/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/uart/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/uart/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/uart/all/pom.xml diff --git a/receivers/native/arm/peripherals/uart/pom.xml b/receivers/generic-c++/zll/arm/peripherals/uart/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/uart/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/uart/pom.xml diff --git a/receivers/native/arm/peripherals/uart/uart-core/pom.xml b/receivers/generic-c++/zll/arm/peripherals/uart/uart-core/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-core/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-core/pom.xml diff --git a/receivers/native/arm/peripherals/uart/uart-core/src/main/c++/uart/ZcodeUartChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-core/src/main/c++/uart/ZcodeUartChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-core/src/main/c++/uart/ZcodeUartChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-core/src/main/c++/uart/ZcodeUartChannel.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-core/src/main/c++/uart/ZcodeUartModule.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-core/src/main/c++/uart/ZcodeUartModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-core/src/main/c++/uart/ZcodeUartModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-core/src/main/c++/uart/ZcodeUartModule.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll-stm32f/pom.xml b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32f/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll-stm32f/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32f/pom.xml diff --git a/receivers/native/arm/peripherals/uart/uart-ll-stm32f/src/main/c++/uart-ll-stm32f/lowlevel/specific/UartInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32f/src/main/c++/uart-ll-stm32f/lowlevel/specific/UartInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll-stm32f/src/main/c++/uart-ll-stm32f/lowlevel/specific/UartInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32f/src/main/c++/uart-ll-stm32f/lowlevel/specific/UartInternal.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll-stm32f/src/main/c++/uart-ll-stm32f/lowlevel/specific/UartManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32f/src/main/c++/uart-ll-stm32f/lowlevel/specific/UartManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll-stm32f/src/main/c++/uart-ll-stm32f/lowlevel/specific/UartManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32f/src/main/c++/uart-ll-stm32f/lowlevel/specific/UartManagercpp.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll-stm32g/pom.xml b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32g/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll-stm32g/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32g/pom.xml diff --git a/receivers/native/arm/peripherals/uart/uart-ll-stm32g/src/main/c++/uart-ll-stm32g/lowlevel/specific/UartInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32g/src/main/c++/uart-ll-stm32g/lowlevel/specific/UartInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll-stm32g/src/main/c++/uart-ll-stm32g/lowlevel/specific/UartInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32g/src/main/c++/uart-ll-stm32g/lowlevel/specific/UartInternal.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll-stm32g/src/main/c++/uart-ll-stm32g/lowlevel/specific/UartManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32g/src/main/c++/uart-ll-stm32g/lowlevel/specific/UartManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll-stm32g/src/main/c++/uart-ll-stm32g/lowlevel/specific/UartManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll-stm32g/src/main/c++/uart-ll-stm32g/lowlevel/specific/UartManagercpp.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/pom.xml diff --git a/receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/UartLLInterfaceInclude.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/UartLLInterfaceInclude.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/UartLLInterfaceInclude.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/UartLLInterfaceInclude.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/ZcodeUartChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/ZcodeUartChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/ZcodeUartChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/ZcodeUartChannel.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/ZcodeUartModule.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/ZcodeUartModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/ZcodeUartModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/ZcodeUartModule.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/Uart.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/Uart.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/Uart.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/Uart.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/UartManager.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/UartManager.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/UartManager.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/UartManager.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/UartInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/UartInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/UartInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/UartInternal.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/UartManagercpp.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/UartManagercpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/UartManagercpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/UartManagercpp.hpp diff --git a/receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/Uartcpp.hpp b/receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/Uartcpp.hpp similarity index 100% rename from receivers/native/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/Uartcpp.hpp rename to receivers/generic-c++/zll/arm/peripherals/uart/uart-ll/src/main/c++/uart-ll/lowlevel/specific/Uartcpp.hpp diff --git a/receivers/native/arm/peripherals/udp/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/udp/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/udp/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/udp/all/pom.xml diff --git a/receivers/native/arm/peripherals/udp/pom.xml b/receivers/generic-c++/zll/arm/peripherals/udp/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/udp/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/udp/pom.xml diff --git a/receivers/native/arm/peripherals/udp/udp-core/pom.xml b/receivers/generic-c++/zll/arm/peripherals/udp/udp-core/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/udp/udp-core/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/udp/udp-core/pom.xml diff --git a/receivers/native/arm/peripherals/udp/udp-core/src/main/c++/udp/ZcodeUdpChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/udp/udp-core/src/main/c++/udp/ZcodeUdpChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/udp/udp-core/src/main/c++/udp/ZcodeUdpChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/udp/udp-core/src/main/c++/udp/ZcodeUdpChannel.hpp diff --git a/receivers/native/arm/peripherals/udp/udp-core/src/main/c++/udp/ZcodeUdpModule.hpp b/receivers/generic-c++/zll/arm/peripherals/udp/udp-core/src/main/c++/udp/ZcodeUdpModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/udp/udp-core/src/main/c++/udp/ZcodeUdpModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/udp/udp-core/src/main/c++/udp/ZcodeUdpModule.hpp diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/pom.xml diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/WiznetUdpLLInterfaceInclude.hpp b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/WiznetUdpLLInterfaceInclude.hpp similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/WiznetUdpLLInterfaceInclude.hpp rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/WiznetUdpLLInterfaceInclude.hpp diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/ZcodeUdpChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/ZcodeUdpChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/ZcodeUdpChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/ZcodeUdpChannel.hpp diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/ZcodeUdpModule.hpp b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/ZcodeUdpModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/ZcodeUdpModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/ZcodeUdpModule.hpp diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Client.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Client.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Client.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Client.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Dhcp.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Dhcp.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Dhcp.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Dhcp.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Dns.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Dns.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Dns.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Dns.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Ethernet.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Ethernet.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Ethernet.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Ethernet.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetClient.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetClient.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetClient.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetClient.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetServer.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetServer.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetServer.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetServer.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetUdp.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetUdp.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetUdp.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/EthernetUdp.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Ethernetcpp.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Ethernetcpp.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Ethernetcpp.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Ethernetcpp.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/IPAddress.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/IPAddress.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/IPAddress.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/IPAddress.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Server.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Server.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Server.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Server.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Udp.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Udp.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Udp.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/Udp.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/socket.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/socket.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/socket.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/socket.h diff --git a/receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/utility/w5100.h b/receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/utility/w5100.h similarity index 100% rename from receivers/native/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/utility/w5100.h rename to receivers/generic-c++/zll/arm/peripherals/udp/wiznet-udp-ll/src/main/c++/wiznet-udp-ll/lowlevel/wiznet-arduino-library-src/utility/w5100.h diff --git a/receivers/native/arm/peripherals/usb/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usb/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usb/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usb/all/pom.xml diff --git a/receivers/native/arm/peripherals/usb/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usb/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usb/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usb/pom.xml diff --git a/receivers/native/arm/peripherals/usb/usb-core/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usb/usb-core/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-core/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-core/pom.xml diff --git a/receivers/native/arm/peripherals/usb/usb-core/src/main/c++/usb/ZcodeUsbChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-core/src/main/c++/usb/ZcodeUsbChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-core/src/main/c++/usb/ZcodeUsbChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-core/src/main/c++/usb/ZcodeUsbChannel.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-core/src/main/c++/usb/ZcodeUsbModule.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-core/src/main/c++/usb/ZcodeUsbModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-core/src/main/c++/usb/ZcodeUsbModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-core/src/main/c++/usb/ZcodeUsbModule.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/pom.xml diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbDefaultEndpoint.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbDefaultEndpoint.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbDefaultEndpoint.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbDefaultEndpoint.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbEndpointRegister.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbEndpointRegister.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbEndpointRegister.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbEndpointRegister.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbInternal.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbInterruptDataEndpoint.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbInterruptDataEndpoint.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbInterruptDataEndpoint.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbInterruptDataEndpoint.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbRegisters.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbRegisters.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbRegisters.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll-stm32g/src/main/c++/usb-serial-ll-stm32g/lowlevel/specific/UsbRegisters.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/pom.xml diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/UsbLLInterfaceInclude.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/UsbLLInterfaceInclude.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/UsbLLInterfaceInclude.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/UsbLLInterfaceInclude.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/ZcodeUsbChannel.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/ZcodeUsbChannel.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/ZcodeUsbChannel.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/ZcodeUsbChannel.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/ZcodeUsbModule.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/ZcodeUsbModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/ZcodeUsbModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/ZcodeUsbModule.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/lowlevel/Usb.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/lowlevel/Usb.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/lowlevel/Usb.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/lowlevel/Usb.hpp diff --git a/receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/lowlevel/specific/UsbInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/lowlevel/specific/UsbInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/lowlevel/specific/UsbInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/usb/usb-serial-ll/src/main/c++/usb-serial-ll/lowlevel/specific/UsbInternal.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/all/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/all/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/all/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/all/pom.xml diff --git a/receivers/native/arm/peripherals/usbc-pd/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/pom.xml diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-core/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-core/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-core/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-core/pom.xml diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-core/src/main/c++/usbc-pd/ZcodeUsbcPdModule.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-core/src/main/c++/usbc-pd/ZcodeUsbcPdModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-core/src/main/c++/usbc-pd/ZcodeUsbcPdModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-core/src/main/c++/usbc-pd/ZcodeUsbcPdModule.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/pom.xml diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdInternal.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdLowLevel.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdLowLevel.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdLowLevel.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdLowLevel.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdMessages.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdMessages.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdMessages.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdMessages.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdParser.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdParser.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdParser.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll-stm32g/src/main/c++/usbc-pd-ll-stm32g/lowlevel/specific/UcpdParser.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/pom.xml b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/pom.xml similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/pom.xml rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/pom.xml diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/UsbcPdLLInterfaceInclude.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/UsbcPdLLInterfaceInclude.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/UsbcPdLLInterfaceInclude.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/UsbcPdLLInterfaceInclude.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/ZcodeUsbcPdModule.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/ZcodeUsbcPdModule.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/ZcodeUsbcPdModule.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/ZcodeUsbcPdModule.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDCapabilitiesCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDCapabilitiesCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDCapabilitiesCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDCapabilitiesCommand.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSetCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSetCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSetCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSetCommand.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceCommand.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceExtendedCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceExtendedCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceExtendedCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceExtendedCommand.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceStatusCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceStatusCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceStatusCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDSourceStatusCommand.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDStatusCommand.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDStatusCommand.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDStatusCommand.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/commands/ZcodeUsbcPDStatusCommand.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/Ucpd.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/Ucpd.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/Ucpd.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/Ucpd.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedExtendedSourceCapabilitiesMessage.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedManufacturerInfoMessage.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedManufacturerInfoMessage.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedManufacturerInfoMessage.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedManufacturerInfoMessage.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedPPSStatusMessage.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedPPSStatusMessage.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedPPSStatusMessage.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedPPSStatusMessage.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedStatusMessage.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedStatusMessage.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedStatusMessage.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/UcpdParsedStatusMessage.hpp diff --git a/receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/specific/UcpdInternal.hpp b/receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/specific/UcpdInternal.hpp similarity index 100% rename from receivers/native/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/specific/UcpdInternal.hpp rename to receivers/generic-c++/zll/arm/peripherals/usbc-pd/usbc-pd-ll/src/main/c++/usbc-pd-ll/lowlevel/specific/UcpdInternal.hpp diff --git a/receivers/native/arm/peripherals/utility/src/main/c++/utility/PreprocessorArrayInitialiser.hpp b/receivers/generic-c++/zll/arm/peripherals/utility/src/main/c++/utility/PreprocessorArrayInitialiser.hpp similarity index 100% rename from receivers/native/arm/peripherals/utility/src/main/c++/utility/PreprocessorArrayInitialiser.hpp rename to receivers/generic-c++/zll/arm/peripherals/utility/src/main/c++/utility/PreprocessorArrayInitialiser.hpp diff --git a/receivers/native/arm/pom.xml b/receivers/generic-c++/zll/arm/pom.xml similarity index 100% rename from receivers/native/arm/pom.xml rename to receivers/generic-c++/zll/arm/pom.xml diff --git a/receivers/native/pom.xml b/receivers/native/pom.xml deleted file mode 100644 index 12ee464b3..000000000 --- a/receivers/native/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - 4.0.0 - - - net.zscript - zscript-receivers - 0.0.1-SNAPSHOT - - - zscript-receivers-native - pom - Zscript Native Receivers - - - - build-native - - cpp-model-components - generic-core - - - - build-arduino - - cpp-model-components - generic-core - arduino - - - - build-arm - - cpp-model-components - generic-core - arm - - - -