From c173eb0358698bb71db85d2d030ebaffe4019081 Mon Sep 17 00:00:00 2001 From: Victor Borja Date: Wed, 25 Nov 2020 14:08:10 +0100 Subject: [PATCH 1/8] New Controller (FeedbackLinearization) Included New controller. Feedback linearization created. Included parameters in the parameters files --- .project | 11 + .vscode/settings.json | 34 + .vscode/tasks.json | 27 + KugleFirmware/.cproject | 821 ++++++++++-------- KugleFirmware/.cproject_org | 764 ++++++++++++++++ KugleFirmware/.project | 5 +- KugleFirmware/.project_org | 28 + KugleFirmware/.settings/language.settings.xml | 20 +- .../org.eclipse.cdt.codan.core.prefs | 56 ++ KugleFirmware/KugleFirmware Debug.launch | 73 ++ KugleFirmware/KugleFirmware_converter.log | 54 ++ .../BalanceController/BalanceController.cpp | 15 +- .../Libraries/Devices/LSPC/MessageTypes.h | 10 +- .../FeedbackLinearization.cpp | 322 +++++++ .../FeedbackLinearization.h | 50 ++ .../Modules/Parameters/Parameters.cpp | 12 + .../Libraries/Modules/Parameters/Parameters.h | 20 +- KugleFirmware/Src/main.c | 3 +- 18 files changed, 1952 insertions(+), 373 deletions(-) create mode 100644 .project create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 KugleFirmware/.cproject_org create mode 100644 KugleFirmware/.project_org create mode 100644 KugleFirmware/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 KugleFirmware/KugleFirmware Debug.launch create mode 100644 KugleFirmware/KugleFirmware_converter.log create mode 100644 KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.cpp create mode 100644 KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.h diff --git a/.project b/.project new file mode 100644 index 0000000..b83d9ba --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + Kugle-Embedded + + + + + + + + diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9d93367 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,34 @@ +{ + "files.associations": { + "algorithm": "cpp", + "array": "cpp", + "cctype": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "cwchar": "cpp", + "exception": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "limits": "cpp", + "map": "cpp", + "new": "cpp", + "stdexcept": "cpp", + "string": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "vector": "cpp", + "xmemory": "cpp", + "xstddef": "cpp", + "xstring": "cpp", + "xtr1common": "cpp", + "xtree": "cpp", + "xutility": "cpp" + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..a137f58 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,27 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++.exe build active file", + "command": "C:\\MinGW\\bin\\g++.exe", + "args": [ + "-g", + "${file}", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "C:\\MinGW\\bin" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Generated task by Debugger" + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/KugleFirmware/.cproject b/KugleFirmware/.cproject index 85f518e..1c5b7ba 100644 --- a/KugleFirmware/.cproject +++ b/KugleFirmware/.cproject @@ -1,8 +1,8 @@ - - + + @@ -14,29 +14,31 @@ - - - - - - - + + @@ -312,29 +366,38 @@ - - - - - - - + + @@ -437,31 +500,29 @@ - - - - - - + + @@ -587,30 +671,29 @@ - - - - @@ -724,7 +829,7 @@ - + @@ -736,9 +841,15 @@ + + + + + + diff --git a/KugleFirmware/.cproject_org b/KugleFirmware/.cproject_org new file mode 100644 index 0000000..85f518e --- /dev/null +++ b/KugleFirmware/.cproject_org @@ -0,0 +1,764 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KugleFirmware/.project b/KugleFirmware/.project index ac66c49..e0b534e 100644 --- a/KugleFirmware/.project +++ b/KugleFirmware/.project @@ -19,10 +19,11 @@ + com.st.stm32cube.ide.mcu.MCUProjectNature org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - fr.ac6.mcu.ide.core.MCUProjectNature org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + com.st.stm32cube.ide.mcu.MCUSW4STM32ConvertedProjectNature diff --git a/KugleFirmware/.project_org b/KugleFirmware/.project_org new file mode 100644 index 0000000..ac66c49 --- /dev/null +++ b/KugleFirmware/.project_org @@ -0,0 +1,28 @@ + + + KugleFirmware + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + fr.ac6.mcu.ide.core.MCUProjectNature + org.eclipse.cdt.core.ccnature + + diff --git a/KugleFirmware/.settings/language.settings.xml b/KugleFirmware/.settings/language.settings.xml index 785f6c2..b0e67ae 100644 --- a/KugleFirmware/.settings/language.settings.xml +++ b/KugleFirmware/.settings/language.settings.xml @@ -1,44 +1,48 @@ - + - + + - + - + + - + - + + - + - + + diff --git a/KugleFirmware/.settings/org.eclipse.cdt.codan.core.prefs b/KugleFirmware/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..f957b85 --- /dev/null +++ b/KugleFirmware/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,56 @@ +com.st.stm32cube.ide.mcu.ide.oss.source.checker.libnano.problem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Float formatting support\\")"} +eclipse.preferences.version=1 +org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} +org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} +org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} +org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} +org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} +org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} +org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} +org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} +org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} +org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} +org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} +org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} +org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} +org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} +org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error +org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} diff --git a/KugleFirmware/KugleFirmware Debug.launch b/KugleFirmware/KugleFirmware Debug.launch new file mode 100644 index 0000000..4957c6a --- /dev/null +++ b/KugleFirmware/KugleFirmware Debug.launch @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KugleFirmware/KugleFirmware_converter.log b/KugleFirmware/KugleFirmware_converter.log new file mode 100644 index 0000000..d010d3d --- /dev/null +++ b/KugleFirmware/KugleFirmware_converter.log @@ -0,0 +1,54 @@ +Project: KugleFirmware +Converter: ST System Workbench for STM32 project converter +Date: 20201102 + +Unrecognized tool command 'g++' for tool id fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler +Unknown value type "" for id gnu.c.link.option.libs on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker +Unknown value type "" for id gnu.c.link.option.paths on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker +Unknown value type "" for id gnu.c.link.option.other on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker +Unrecognized tool command 'g++' for tool id fr.ac6.managedbuild.tool.gnu.cross.cpp.linker +Unknown value type "" for id gnu.cpp.link.option.libs on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker +Unknown value type "" for id gnu.cpp.link.option.paths on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported +Value type err, id: gnu.cpp.link.option.flags +Unrecognized tool command 'as' for tool id fr.ac6.managedbuild.tool.gnu.cross.assembler +Unknown value type "" for id gnu.both.asm.option.include.paths on tool fr.ac6.managedbuild.tool.gnu.cross.assembler +Warning: MCU matched multiple possible MCUs: [STM32F030C6Tx, STM32F030C8Tx, STM32F030CCTx, STM32F030F4Px, STM32F030K6Tx, STM32F030R8Tx, STM32F030RCTx, STM32F031C4Tx, STM32F031C6Tx, STM32F031E6Yx, STM32F031F4Px, STM32F031F6Px, STM32F031G4Ux, STM32F031G6Ux, STM32F031K4Ux, STM32F031K6Tx, STM32F031K6Ux, STM32F038C6Tx, STM32F038E6Yx, STM32F038F6Px, STM32F038G6Ux, STM32F038K6Ux, STM32F042C4Tx, STM32F042C4Ux, STM32F042C6Tx, STM32F042C6Ux, STM32F042F4Px, STM32F042F6Px, STM32F042G4Ux, STM32F042G6Ux, STM32F042K4Tx, STM32F042K4Ux, STM32F042K6Tx, STM32F042K6Ux, STM32F042T6Yx, STM32F048C6Ux, STM32F048G6Ux, STM32F048T6Yx, STM32F051C4Tx, STM32F051C4Ux, STM32F051C6Tx, STM32F051C6Ux, STM32F051C8Tx, STM32F051C8Ux, STM32F051K4Tx, STM32F051K4Ux, STM32F051K6Tx, STM32F051K6Ux, STM32F051K8Tx, STM32F051K8Ux, STM32F051R4Tx, STM32F051R6Tx, STM32F051R8Hx, STM32F051R8Tx, STM32F051T8Yx, STM32F058C8Ux, STM32F058R8Hx, STM32F058R8Tx, STM32F058T8Yx, STM32F070C6Tx, STM32F070CBTx, STM32F070F6Px, STM32F070RBTx, STM32F071C8Tx, STM32F071C8Ux, STM32F071CBTx, STM32F071CBUx, STM32F071CBYx, STM32F071RBTx, STM32F071V8Hx, STM32F071V8Tx, STM32F071VBHx, STM32F071VBTx, STM32F072C8Tx, STM32F072C8Ux, STM32F072CBTx, STM32F072CBUx, STM32F072CBYx, STM32F072R8Tx, STM32F072RBHx, STM32F072RBIx, STM32F072RBTx, STM32F072V8Hx, STM32F072V8Tx, STM32F072VBHx, STM32F072VBTx, STM32F078CBTx, STM32F078CBUx, STM32F078CBYx, STM32F078RBHx, STM32F078RBTx, STM32F078VBHx, STM32F078VBTx, STM32F091CBTx, STM32F091CBUx, STM32F091CCTx, STM32F091CCUx, STM32F091RBTx, STM32F091RCHx, STM32F091RCTx, STM32F091RCYx, STM32F091VBTx, STM32F091VCHx, STM32F091VCTx, STM32F098CCTx, STM32F098CCUx, STM32F098RCHx, STM32F098RCTx, STM32F098RCYx, STM32F098VCHx, STM32F098VCTx, STM32F100C4Tx, STM32F100C6Tx, STM32F100C8Tx, STM32F100CBTx, STM32F100R4Hx, STM32F100R4Tx, STM32F100R6Hx, STM32F100R6Tx, STM32F100R8Hx, STM32F100R8Tx, STM32F100RBHx, STM32F100RBTx, STM32F100RCTx, STM32F100RDTx, STM32F100RETx, STM32F100V8Tx, STM32F100VBTx, STM32F100VCTx, STM32F100VDTx, STM32F100VETx, STM32F100ZCTx, STM32F100ZDTx, STM32F100ZETx, STM32F101C4Tx, STM32F101C6Tx, STM32F101C8Tx, STM32F101C8Ux, STM32F101CBTx, STM32F101CBUx, STM32F101R4Tx, STM32F101R6Tx, STM32F101R8Tx, STM32F101RBHx, STM32F101RBTx, STM32F101RCTx, STM32F101RDTx, STM32F101RETx, STM32F101RFTx, STM32F101RGTx, STM32F101T4Ux, STM32F101T6Ux, STM32F101T8Ux, STM32F101TBUx, STM32F101V8Tx, STM32F101VBTx, STM32F101VCTx, STM32F101VDTx, STM32F101VETx, STM32F101VFTx, STM32F101VGTx, STM32F101ZCTx, STM32F101ZDTx, STM32F101ZETx, STM32F101ZFTx, STM32F101ZGTx, STM32F102C4Tx, STM32F102C6Tx, STM32F102C8Tx, STM32F102CBTx, STM32F102R4Tx, STM32F102R6Tx, STM32F102R8Tx, STM32F102RBTx, STM32F103C4Tx, STM32F103C6Tx, STM32F103C6Ux, STM32F103C8Tx, STM32F103CBTx, STM32F103CBUx, STM32F103R4Hx, STM32F103R4Tx, STM32F103R6Hx, STM32F103R6Tx, STM32F103R8Hx, STM32F103R8Tx, STM32F103RBHx, STM32F103RBTx, STM32F103RCTx, STM32F103RCYx, STM32F103RDTx, STM32F103RDYx, STM32F103RETx, STM32F103REYx, STM32F103RFTx, STM32F103RGTx, STM32F103T4Ux, STM32F103T6Ux, STM32F103T8Ux, STM32F103TBUx, STM32F103V8Hx, STM32F103V8Tx, STM32F103VBHx, STM32F103VBIx, STM32F103VBTx, STM32F103VCHx, STM32F103VCTx, STM32F103VDHx, STM32F103VDTx, STM32F103VEHx, STM32F103VETx, STM32F103VFTx, STM32F103VGTx, STM32F103ZCHx, STM32F103ZCTx, STM32F103ZDHx, STM32F103ZDTx, STM32F103ZEHx, STM32F103ZETx, STM32F103ZFHx, STM32F103ZFTx, STM32F103ZGHx, STM32F103ZGTx, STM32F105R8Tx, STM32F105RBTx, STM32F105RCTx, STM32F105V8Hx, STM32F105V8Tx, STM32F105VBHx, STM32F105VBTx, STM32F105VCTx, STM32F107RBTx, STM32F107RCTx, STM32F107VBTx, STM32F107VCHx, STM32F107VCTx, STM32F205RBTx, STM32F205RCTx, STM32F205RETx, STM32F205REYx, STM32F205RFTx, STM32F205RGEx, STM32F205RGTx, STM32F205RGYx, STM32F205VBTx, STM32F205VCTx, STM32F205VETx, STM32F205VFTx, STM32F205VGTx, STM32F205ZCTx, STM32F205ZETx, STM32F205ZFTx, STM32F205ZGTx, STM32F207ICHx, STM32F207ICTx, STM32F207IEHx, STM32F207IETx, STM32F207IFHx, STM32F207IFTx, STM32F207IGHx, STM32F207IGTx, STM32F207VCTx, STM32F207VETx, STM32F207VFTx, STM32F207VGTx, STM32F207ZCTx, STM32F207ZETx, STM32F207ZFTx, STM32F207ZGTx, STM32F215RETx, STM32F215RGTx, STM32F215VETx, STM32F215VGTx, STM32F215ZETx, STM32F215ZGTx, STM32F217IEHx, STM32F217IETx, STM32F217IGHx, STM32F217IGTx, STM32F217VETx, STM32F217VGTx, STM32F217ZETx, STM32F217ZGTx, STM32F301C6Tx, STM32F301C8Tx, STM32F301C8Yx, STM32F301K6Tx, STM32F301K6Ux, STM32F301K8Tx, STM32F301K8Ux, STM32F301R6Tx, STM32F301R8Tx, STM32F302C6Tx, STM32F302C8Tx, STM32F302C8Yx, STM32F302CBTx, STM32F302CCTx, STM32F302K6Ux, STM32F302K8Ux, STM32F302R6Tx, STM32F302R8Tx, STM32F302RBTx, STM32F302RCTx, STM32F302RDTx, STM32F302RETx, STM32F302VBTx, STM32F302VCTx, STM32F302VCYx, STM32F302VDHx, STM32F302VDTx, STM32F302VEHx, STM32F302VETx, STM32F302ZDTx, STM32F302ZETx, STM32F303C6Tx, STM32F303C8Tx, STM32F303C8Yx, STM32F303CBTx, STM32F303CCTx, STM32F303K6Tx, STM32F303K6Ux, STM32F303K8Tx, STM32F303K8Ux, STM32F303R6Tx, STM32F303R8Tx, STM32F303RBTx, STM32F303RCTx, STM32F303RDTx, STM32F303RETx, STM32F303VBTx, STM32F303VCTx, STM32F303VCYx, STM32F303VDHx, STM32F303VDTx, STM32F303VEHx, STM32F303VETx, STM32F303VEYx, STM32F303ZDTx, STM32F303ZETx, STM32F318C8Tx, STM32F318C8Yx, STM32F318K8Ux, STM32F328C8Tx, STM32F334C4Tx, STM32F334C6Tx, STM32F334C8Tx, STM32F334C8Yx, STM32F334K4Tx, STM32F334K4Ux, STM32F334K6Tx, STM32F334K6Ux, STM32F334K8Tx, STM32F334K8Ux, STM32F334R6Tx, STM32F334R8Tx, STM32F358CCTx, STM32F358RCTx, STM32F358VCTx, STM32F373C8Tx, STM32F373CBTx, STM32F373CCTx, STM32F373R8Tx, STM32F373RBTx, STM32F373RCTx, STM32F373V8Hx, STM32F373V8Tx, STM32F373VBHx, STM32F373VBTx, STM32F373VCHx, STM32F373VCTx, STM32F378CCTx, STM32F378RCTx, STM32F378RCYx, STM32F378VCHx, STM32F378VCTx, STM32F398VETx, STM32F401CBUx, STM32F401CBYx, STM32F401CCFx, STM32F401CCUx, STM32F401CCYx, STM32F401CDUx, STM32F401CDYx, STM32F401CEUx, STM32F401CEYx, STM32F401RBTx, STM32F401RCTx, STM32F401RDTx, STM32F401RETx, STM32F401VBHx, STM32F401VBTx, STM32F401VCHx, STM32F401VCTx, STM32F401VDHx, STM32F401VDTx, STM32F401VEHx, STM32F401VETx, STM32F405OEYx, STM32F405OGYx, STM32F405RGTx, STM32F405VGTx, STM32F405ZGTx, STM32F407IEHx, STM32F407IETx, STM32F407IGHx, STM32F407IGTx, STM32F407VETx, STM32F407VGTx, STM32F407ZETx, STM32F407ZGTx, STM32F410C8Tx, STM32F410C8Ux, STM32F410CBTx, STM32F410CBUx, STM32F410R8Ix, STM32F410R8Tx, STM32F410RBIx, STM32F410RBTx, STM32F410T8Yx, STM32F410TBYx, STM32F411CCUx, STM32F411CCYx, STM32F411CEUx, STM32F411CEYx, STM32F411RCTx, STM32F411RETx, STM32F411VCHx, STM32F411VCTx, STM32F411VEHx, STM32F411VETx, STM32F412CEUx, STM32F412CGUx, STM32F412RETx, STM32F412REYx, STM32F412REYxP, STM32F412RGTx, STM32F412RGYx, STM32F412RGYxP, STM32F412VEHx, STM32F412VETx, STM32F412VGHx, STM32F412VGTx, STM32F412ZEJx, STM32F412ZETx, STM32F412ZGJx, STM32F412ZGTx, STM32F413CGUx, STM32F413CHUx, STM32F413MGYx, STM32F413MHYx, STM32F413RGTx, STM32F413RHTx, STM32F413VGHx, STM32F413VGTx, STM32F413VHHx, STM32F413VHTx, STM32F413ZGJx, STM32F413ZGTx, STM32F413ZHJx, STM32F413ZHTx, STM32F415OGYx, STM32F415RGTx, STM32F415VGTx, STM32F415ZGTx, STM32F417IEHx, STM32F417IETx, STM32F417IGHx, STM32F417IGTx, STM32F417VETx, STM32F417VGTx, STM32F417ZETx, STM32F417ZGTx, STM32F423CHUx, STM32F423MHYx, STM32F423RHTx, STM32F423VHHx, STM32F423VHTx, STM32F423ZHJx, STM32F423ZHTx, STM32F427AGHx, STM32F427AIHx, STM32F427IGHx, STM32F427IGTx, STM32F427IIHx, STM32F427IITx, STM32F427VGTx, STM32F427VITx, STM32F427ZGTx, STM32F427ZITx, STM32F429AGHx, STM32F429AIHx, STM32F429BETx, STM32F429BGTx, STM32F429BITx, STM32F429IEHx, STM32F429IETx, STM32F429IGHx, STM32F429IGTx, STM32F429IIHx, STM32F429IITx, STM32F429NEHx, STM32F429NGHx, STM32F429NIHx, STM32F429VETx, STM32F429VGTx, STM32F429VITx, STM32F429ZETx, STM32F429ZGTx, STM32F429ZGYx, STM32F429ZITx, STM32F429ZIYx, STM32F437AIHx, STM32F437IGHx, STM32F437IGTx, STM32F437IIHx, STM32F437IITx, STM32F437VGTx, STM32F437VITx, STM32F437ZGTx, STM32F437ZITx, STM32F439AIHx, STM32F439BGTx, STM32F439BITx, STM32F439IGHx, STM32F439IGTx, STM32F439IIHx, STM32F439IITx, STM32F439NGHx, STM32F439NIHx, STM32F439VGTx, STM32F439VITx, STM32F439ZGTx, STM32F439ZGYx, STM32F439ZITx, STM32F439ZIYx, STM32F446MCYx, STM32F446MEYx, STM32F446RCTx, STM32F446RETx, STM32F446VCTx, STM32F446VETx, STM32F446ZCHx, STM32F446ZCJx, STM32F446ZCTx, STM32F446ZEHx, STM32F446ZEJx, STM32F446ZETx, STM32F469AEHx, STM32F469AEYx, STM32F469AGHx, STM32F469AGYx, STM32F469AIHx, STM32F469AIYx, STM32F469BETx, STM32F469BGTx, STM32F469BITx, STM32F469IEHx, STM32F469IETx, STM32F469IGHx, STM32F469IGTx, STM32F469IIHx, STM32F469IITx, STM32F469NEHx, STM32F469NGHx, STM32F469NIHx, STM32F469VETx, STM32F469VGTx, STM32F469VITx, STM32F469ZETx, STM32F469ZGTx, STM32F469ZITx, STM32F479AGHx, STM32F479AGYx, STM32F479AIHx, STM32F479AIYx, STM32F479BGTx, STM32F479BITx, STM32F479IGHx, STM32F479IGTx, STM32F479IIHx, STM32F479IITx, STM32F479NGHx, STM32F479NIHx, STM32F479VGTx, STM32F479VITx, STM32F479ZGTx, STM32F479ZITx, STM32F722ICKx, STM32F722ICTx, STM32F722IEKx, STM32F722IETx, STM32F722RCTx, STM32F722RETx, STM32F722VCTx, STM32F722VETx, STM32F722ZCTx, STM32F722ZETx, STM32F723ICKx, STM32F723ICTx, STM32F723IEKx, STM32F723IETx, STM32F723VCTx, STM32F723VCYx, STM32F723VETx, STM32F723VEYx, STM32F723ZCIx, STM32F723ZCTx, STM32F723ZEIx, STM32F723ZETx, STM32F730I8Kx, STM32F730R8Tx, STM32F730V8Tx, STM32F730Z8Tx, STM32F732IEKx, STM32F732IETx, STM32F732RETx, STM32F732VETx, STM32F732ZETx, STM32F733IEKx, STM32F733IETx, STM32F733VETx, STM32F733VEYx, STM32F733ZEIx, STM32F733ZETx, STM32F745IEKx, STM32F745IETx, STM32F745IGKx, STM32F745IGTx, STM32F745VEHx, STM32F745VETx, STM32F745VGHx, STM32F745VGTx, STM32F745ZETx, STM32F745ZGTx, STM32F746BETx, STM32F746BGTx, STM32F746IEKx, STM32F746IETx, STM32F746IGKx, STM32F746IGTx, STM32F746NEHx, STM32F746NGHx, STM32F746VEHx, STM32F746VETx, STM32F746VGHx, STM32F746VGTx, STM32F746ZETx, STM32F746ZEYx, STM32F746ZGTx, STM32F746ZGYx, STM32F750N8Hx, STM32F750V8Tx, STM32F750Z8Tx, STM32F756BGTx, STM32F756IGKx, STM32F756IGTx, STM32F756NGHx, STM32F756VGHx, STM32F756VGTx, STM32F756ZGTx, STM32F756ZGYx, STM32F765BGTx, STM32F765BITx, STM32F765IGKx, STM32F765IGTx, STM32F765IIKx, STM32F765IITx, STM32F765NGHx, STM32F765NIHx, STM32F765VGHx, STM32F765VGTx, STM32F765VIHx, STM32F765VITx, STM32F765ZGTx, STM32F765ZITx, STM32F767BGTx, STM32F767BITx, STM32F767IGKx, STM32F767IGTx, STM32F767IIKx, STM32F767IITx, STM32F767NGHx, STM32F767NIHx, STM32F767VGHx, STM32F767VGTx, STM32F767VIHx, STM32F767VITx, STM32F767ZGTx, STM32F767ZITx, STM32F768AIYx, STM32F769AGYx, STM32F769AIYx, STM32F769BGTx, STM32F769BITx, STM32F769IGTx, STM32F769IITx, STM32F769NGHx, STM32F769NIHx, STM32F777BITx, STM32F777IIKx, STM32F777IITx, STM32F777NIHx, STM32F777VIHx, STM32F777VITx, STM32F777ZITx, STM32F778AIYx, STM32F779AIYx, STM32F779BITx, STM32F779IITx, STM32F779NIHx, STM32G4A1CETx, STM32G4A1CEUx, STM32G4A1KEUx, STM32G4A1MESx, STM32G4A1METx, STM32G4A1REIx, STM32G4A1RETx, STM32G4A1REYx, STM32G4A1VETx, STM32G030C6Tx, STM32G030C8Tx, STM32G030F6Px, STM32G030J6Mx, STM32G030K6Tx, STM32G030K8Tx, STM32G031C4Tx, STM32G031C4Ux, STM32G031C6Tx, STM32G031C6Ux, STM32G031C8Tx, STM32G031C8Ux, STM32G031F4Px, STM32G031F6Px, STM32G031F8Px, STM32G031G4Ux, STM32G031G6Ux, STM32G031G8Ux, STM32G031J4Mx, STM32G031J6Mx, STM32G031K4Tx, STM32G031K4Ux, STM32G031K6Tx, STM32G031K6Ux, STM32G031K8Tx, STM32G031K8Ux, STM32G031Y8Yx, STM32G041C6Tx, STM32G041C6Ux, STM32G041C8Tx, STM32G041C8Ux, STM32G041F6Px, STM32G041F8Px, STM32G041G6Ux, STM32G041G8Ux, STM32G041J6Mx, STM32G041K6Tx, STM32G041K6Ux, STM32G041K8Tx, STM32G041K8Ux, STM32G041Y8Yx, STM32G070CBTx, STM32G070KBTx, STM32G070RBTx, STM32G071C6Tx, STM32G071C6Ux, STM32G071C8Tx, STM32G071C8Ux, STM32G071CBTx, STM32G071CBUx, STM32G071EBYx, STM32G071G6Ux, STM32G071G8Ux, STM32G071G8UxN, STM32G071GBUx, STM32G071GBUxN, STM32G071K6Tx, STM32G071K6Ux, STM32G071K8Tx, STM32G071K8TxN, STM32G071K8Ux, STM32G071K8UxN, STM32G071KBTx, STM32G071KBTxN, STM32G071KBUx, STM32G071KBUxN, STM32G071R6Tx, STM32G071R8Tx, STM32G071RBIx, STM32G071RBTx, STM32G081CBTx, STM32G081CBUx, STM32G081EBYx, STM32G081GBUx, STM32G081GBUxN, STM32G081KBTx, STM32G081KBTxN, STM32G081KBUx, STM32G081KBUxN, STM32G081RBIx, STM32G081RBTx, STM32G431C6Tx, STM32G431C6Ux, STM32G431C8Tx, STM32G431C8Ux, STM32G431CBTx, STM32G431CBUx, STM32G431CBYx, STM32G431K6Tx, STM32G431K6Ux, STM32G431K8Tx, STM32G431K8Ux, STM32G431KBTx, STM32G431KBUx, STM32G431M6Tx, STM32G431M8Tx, STM32G431MBTx, STM32G431R6Ix, STM32G431R6Tx, STM32G431R8Ix, STM32G431R8Tx, STM32G431RBIx, STM32G431RBTx, STM32G431V6Tx, STM32G431V8Tx, STM32G431VBTx, STM32G441CBTx, STM32G441CBUx, STM32G441CBYx, STM32G441KBTx, STM32G441KBUx, STM32G441MBTx, STM32G441RBIx, STM32G441RBTx, STM32G441VBTx, STM32G471CCTx, STM32G471CCUx, STM32G471CETx, STM32G471CEUx, STM32G471MCTx, STM32G471METx, STM32G471MEYx, STM32G471QCTx, STM32G471QETx, STM32G471RCTx, STM32G471RETx, STM32G471VCHx, STM32G471VCIx, STM32G471VCTx, STM32G471VEHx, STM32G471VEIx, STM32G471VETx, STM32G473CBTx, STM32G473CBUx, STM32G473CCTx, STM32G473CCUx, STM32G473CETx, STM32G473CEUx, STM32G473MBTx, STM32G473MCTx, STM32G473METx, STM32G473MEYx, STM32G473PBIx, STM32G473PCIx, STM32G473PEIx, STM32G473QBTx, STM32G473QCTx, STM32G473QETx, STM32G473RBTx, STM32G473RCTx, STM32G473RETx, STM32G473VBHx, STM32G473VBIx, STM32G473VBTx, STM32G473VCHx, STM32G473VCIx, STM32G473VCTx, STM32G473VEHx, STM32G473VEIx, STM32G473VETx, STM32G474CBTx, STM32G474CBUx, STM32G474CCTx, STM32G474CCUx, STM32G474CETx, STM32G474CEUx, STM32G474MBTx, STM32G474MCTx, STM32G474METx, STM32G474MEYx, STM32G474PBIx, STM32G474PCIx, STM32G474PEIx, STM32G474QBTx, STM32G474QCTx, STM32G474QETx, STM32G474RBTx, STM32G474RCTx, STM32G474RETx, STM32G474VBHx, STM32G474VBIx, STM32G474VBTx, STM32G474VCHx, STM32G474VCIx, STM32G474VCTx, STM32G474VEHx, STM32G474VEIx, STM32G474VETx, STM32G483CETx, STM32G483CEUx, STM32G483METx, STM32G483MEYx, STM32G483PEIx, STM32G483QETx, STM32G483RETx, STM32G483VEHx, STM32G483VEIx, STM32G483VETx, STM32G484CETx, STM32G484CEUx, STM32G484METx, STM32G484MEYx, STM32G484PEIx, STM32G484QETx, STM32G484RETx, STM32G484VEHx, STM32G484VEIx, STM32G484VETx, STM32G491CCTx, STM32G491CCUx, STM32G491CETx, STM32G491CEUx, STM32G491KCUx, STM32G491KEUx, STM32G491MCSx, STM32G491MCTx, STM32G491MESx, STM32G491METx, STM32G491RCIx, STM32G491RCTx, STM32G491REIx, STM32G491RETx, STM32G491REYx, STM32G491VCTx, STM32G491VETx, STM32GBK1CBTx, STM32H7A3AGIxQ, STM32H7A3AIIxQ, STM32H7A3IGKx, STM32H7A3IGKxQ, STM32H7A3IGTx, STM32H7A3IGTxQ, STM32H7A3IIKx, STM32H7A3IIKxQ, STM32H7A3IITx, STM32H7A3IITxQ, STM32H7A3LGHxQ, STM32H7A3LIHxQ, STM32H7A3NGHx, STM32H7A3NIHx, STM32H7A3QIYxQ, STM32H7A3RGTx, STM32H7A3RITx, STM32H7A3VGHx, STM32H7A3VGHxQ, STM32H7A3VGTx, STM32H7A3VGTxQ, STM32H7A3VIHx, STM32H7A3VIHxQ, STM32H7A3VITx, STM32H7A3VITxQ, STM32H7A3ZGTx, STM32H7A3ZGTxQ, STM32H7A3ZITx, STM32H7A3ZITxQ, STM32H7B3AIIxQ, STM32H7B3IIKx, STM32H7B3IIKxQ, STM32H7B3IITx, STM32H7B3IITxQ, STM32H7B3LIHxQ, STM32H7B3NIHx, STM32H7B3QIYxQ, STM32H7B3RITx, STM32H7B3VIHx, STM32H7B3VIHxQ, STM32H7B3VITx, STM32H7B3VITxQ, STM32H7B3ZITx, STM32H7B3ZITxQ, STM32H7B0ABIxQ, STM32H7B0IBKxQ, STM32H7B0IBTx, STM32H7B0RBTx, STM32H7B0VBTx, STM32H7B0ZBTx, STM32H723VEHx, STM32H723VETx, STM32H723VGHx, STM32H723VGTx, STM32H723ZEIx, STM32H723ZETx, STM32H723ZGIx, STM32H723ZGTx, STM32H725AEIx, STM32H725AGIx, STM32H725IEKx, STM32H725IETx, STM32H725IGKx, STM32H725IGTx, STM32H725REVx, STM32H725RGVx, STM32H725VETx, STM32H725VGTx, STM32H725VGYx, STM32H725ZETx, STM32H725ZGTx, STM32H730ABIxQ, STM32H730IBKxQ, STM32H730IBTxQ, STM32H730VBHx, STM32H730VBTx, STM32H730ZBIx, STM32H730ZBTx, STM32H733VGHx, STM32H733VGTx, STM32H733ZGIx, STM32H733ZGTx, STM32H735AGIx, STM32H735IGKx, STM32H735IGTx, STM32H735RGVx, STM32H735VGTx, STM32H735VGYx, STM32H735ZGTx, STM32H742AGIx, STM32H742AIIx, STM32H742BGTx, STM32H742BITx, STM32H742IGKx, STM32H742IGTx, STM32H742IIKx, STM32H742IITx, STM32H742VGHx, STM32H742VGTx, STM32H742VIHx, STM32H742VITx, STM32H742XGHx, STM32H742XIHx, STM32H742ZGTx, STM32H742ZITx, STM32H743AGIx, STM32H743AIIx, STM32H743BGTx, STM32H743BITx, STM32H743IGKx, STM32H743IGTx, STM32H743IIKx, STM32H743IITx, STM32H743VGHx, STM32H743VGTx, STM32H743VIHx, STM32H743VITx, STM32H743XGHx, STM32H743XIHx, STM32H743ZGTx, STM32H743ZITx, STM32H745BGTx, STM32H745BITx, STM32H745IGKx, STM32H745IGTx, STM32H745IIKx, STM32H745IITx, STM32H745XGHx, STM32H745XIHx, STM32H745ZGTx, STM32H745ZITx, STM32H747AGIx, STM32H747AIIx, STM32H747BGTx, STM32H747BITx, STM32H747IGTx, STM32H747IITx, STM32H747XGHx, STM32H747XIHx, STM32H747ZIYx, STM32H750IBKx, STM32H750IBTx, STM32H750VBTx, STM32H750XBHx, STM32H750ZBTx, STM32H753AIIx, STM32H753BITx, STM32H753IIKx, STM32H753IITx, STM32H753VIHx, STM32H753VITx, STM32H753XIHx, STM32H753ZITx, STM32H755BITx, STM32H755IIKx, STM32H755IITx, STM32H755XIHx, STM32H755ZITx, STM32H757AIIx, STM32H757BITx, STM32H757IITx, STM32H757XIHx, STM32H757ZIYx, STM32L4A6AGIx, STM32L4A6AGIxP, STM32L4A6QGIx, STM32L4A6QGIxP, STM32L4A6RGTx, STM32L4A6RGTxP, STM32L4A6VGTx, STM32L4A6VGTxP, STM32L4A6VGYx, STM32L4A6VGYxP, STM32L4A6ZGTx, STM32L4A6ZGTxP, STM32L4P5AEIx, STM32L4P5AGIx, STM32L4P5AGIxP, STM32L4P5CETx, STM32L4P5CEUx, STM32L4P5CGTx, STM32L4P5CGTxP, STM32L4P5CGUx, STM32L4P5CGUxP, STM32L4P5QEIx, STM32L4P5QGIx, STM32L4P5QGIxP, STM32L4P5RETx, STM32L4P5RGTx, STM32L4P5RGTxP, STM32L4P5VETx, STM32L4P5VEYx, STM32L4P5VGTx, STM32L4P5VGTxP, STM32L4P5VGYx, STM32L4P5VGYxP, STM32L4P5ZETx, STM32L4P5ZGTx, STM32L4P5ZGTxP, STM32L4Q5AGIx, STM32L4Q5CGTx, STM32L4Q5CGUx, STM32L4Q5QGIx, STM32L4Q5RGTx, STM32L4Q5VGTx, STM32L4Q5VGYx, STM32L4Q5ZGTx, STM32L4R5AGIx, STM32L4R5AIIx, STM32L4R5QGIx, STM32L4R5QIIx, STM32L4R5VGTx, STM32L4R5VITx, STM32L4R5ZGTx, STM32L4R5ZGYx, STM32L4R5ZITx, STM32L4R5ZITxP, STM32L4R5ZIYx, STM32L4R7AIIx, STM32L4R7VITx, STM32L4R7ZITx, STM32L4R9AGIx, STM32L4R9AIIx, STM32L4R9VGTx, STM32L4R9VITx, STM32L4R9ZGJx, STM32L4R9ZGTx, STM32L4R9ZGYx, STM32L4R9ZIJx, STM32L4R9ZITx, STM32L4R9ZIYx, STM32L4R9ZIYxP, STM32L4S5AIIx, STM32L4S5QIIx, STM32L4S5VITx, STM32L4S5ZITx, STM32L4S5ZIYx, STM32L4S7AIIx, STM32L4S7VITx, STM32L4S7ZITx, STM32L4S9AIIx, STM32L4S9VITx, STM32L4S9ZIJx, STM32L4S9ZITx, STM32L4S9ZIYx, STM32L010C6Tx, STM32L010F4Px, STM32L010K4Tx, STM32L010K8Tx, STM32L010R8Tx, STM32L010RBTx, STM32L011D3Px, STM32L011D4Px, STM32L011E3Yx, STM32L011E4Yx, STM32L011F3Px, STM32L011F3Ux, STM32L011F4Px, STM32L011F4Ux, STM32L011G3Ux, STM32L011G4Ux, STM32L011K3Tx, STM32L011K3Ux, STM32L011K4Tx, STM32L011K4Ux, STM32L021D4Px, STM32L021F4Px, STM32L021F4Ux, STM32L021G4Ux, STM32L021K4Tx, STM32L021K4Ux, STM32L031C4Tx, STM32L031C4Ux, STM32L031C6Tx, STM32L031C6Ux, STM32L031E4Yx, STM32L031E6Yx, STM32L031F4Px, STM32L031F6Px, STM32L031G4Ux, STM32L031G6Ux, STM32L031G6UxS, STM32L031K4Tx, STM32L031K4Ux, STM32L031K6Tx, STM32L031K6Ux, STM32L041C4Tx, STM32L041C6Tx, STM32L041C6Ux, STM32L041E6Yx, STM32L041F6Px, STM32L041G6Ux, STM32L041G6UxS, STM32L041K6Tx, STM32L041K6Ux, STM32L051C6Tx, STM32L051C6Ux, STM32L051C8Tx, STM32L051C8Ux, STM32L051K6Tx, STM32L051K6Ux, STM32L051K8Tx, STM32L051K8Ux, STM32L051R6Hx, STM32L051R6Tx, STM32L051R8Hx, STM32L051R8Tx, STM32L051T6Yx, STM32L051T8Yx, STM32L052C6Tx, STM32L052C6Ux, STM32L052C8Tx, STM32L052C8Ux, STM32L052K6Tx, STM32L052K6Ux, STM32L052K8Tx, STM32L052K8Ux, STM32L052R6Hx, STM32L052R6Tx, STM32L052R8Hx, STM32L052R8Tx, STM32L052T6Yx, STM32L052T8Fx, STM32L052T8Yx, STM32L053C6Tx, STM32L053C6Ux, STM32L053C8Tx, STM32L053C8Ux, STM32L053R6Hx, STM32L053R6Tx, STM32L053R8Hx, STM32L053R8Tx, STM32L062C8Ux, STM32L062K8Tx, STM32L062K8Ux, STM32L063C8Tx, STM32L063C8Ux, STM32L063R8Tx, STM32L071C8Tx, STM32L071C8Ux, STM32L071CBTx, STM32L071CBUx, STM32L071CBYx, STM32L071CZTx, STM32L071CZUx, STM32L071CZYx, STM32L071K8Ux, STM32L071KBTx, STM32L071KBUx, STM32L071KZTx, STM32L071KZUx, STM32L071RBHx, STM32L071RBTx, STM32L071RZHx, STM32L071RZTx, STM32L071V8Ix, STM32L071V8Tx, STM32L071VBIx, STM32L071VBTx, STM32L071VZIx, STM32L071VZTx, STM32L072CBTx, STM32L072CBUx, STM32L072CBYx, STM32L072CZEx, STM32L072CZTx, STM32L072CZUx, STM32L072CZYx, STM32L072KBTx, STM32L072KBUx, STM32L072KZTx, STM32L072KZUx, STM32L072RBHx, STM32L072RBIx, STM32L072RBTx, STM32L072RZHx, STM32L072RZIx, STM32L072RZTx, STM32L072V8Ix, STM32L072V8Tx, STM32L072VBIx, STM32L072VBTx, STM32L072VZIx, STM32L072VZTx, STM32L073CBTx, STM32L073CBUx, STM32L073CZTx, STM32L073CZUx, STM32L073RBHx, STM32L073RBTx, STM32L073RZHx, STM32L073RZIx, STM32L073RZTx, STM32L073V8Ix, STM32L073V8Tx, STM32L073VBIx, STM32L073VBTx, STM32L073VZIx, STM32L073VZTx, STM32L081CBTx, STM32L081CZTx, STM32L081CZUx, STM32L081KZTx, STM32L081KZUx, STM32L082CZUx, STM32L082CZYx, STM32L082KBTx, STM32L082KBUx, STM32L082KZTx, STM32L082KZUx, STM32L083CBTx, STM32L083CZTx, STM32L083CZUx, STM32L083RBHx, STM32L083RBTx, STM32L083RZHx, STM32L083RZTx, STM32L083V8Ix, STM32L083V8Tx, STM32L083VBIx, STM32L083VBTx, STM32L083VZIx, STM32L083VZTx, STM32L100C6Ux, STM32L100C6UxA, STM32L100R8Tx, STM32L100R8TxA, STM32L100RBTx, STM32L100RBTxA, STM32L100RCTx, STM32L151C6Tx, STM32L151C6TxA, STM32L151C6Ux, STM32L151C6UxA, STM32L151C8Tx, STM32L151C8TxA, STM32L151C8Ux, STM32L151C8UxA, STM32L151CBTx, STM32L151CBTxA, STM32L151CBUx, STM32L151CBUxA, STM32L151CCTx, STM32L151CCUx, STM32L151QCHx, STM32L151QDHx, STM32L151QEHx, STM32L151R6Hx, STM32L151R6HxA, STM32L151R6Tx, STM32L151R6TxA, STM32L151R8Hx, STM32L151R8HxA, STM32L151R8Tx, STM32L151R8TxA, STM32L151RBHx, STM32L151RBHxA, STM32L151RBTx, STM32L151RBTxA, STM32L151RCTx, STM32L151RCTxA, STM32L151RCYx, STM32L151RDTx, STM32L151RDYx, STM32L151RETx, STM32L151UCYx, STM32L151V8Hx, STM32L151V8HxA, STM32L151V8Tx, STM32L151V8TxA, STM32L151VBHx, STM32L151VBHxA, STM32L151VBTx, STM32L151VBTxA, STM32L151VCHx, STM32L151VCTx, STM32L151VCTxA, STM32L151VDTx, STM32L151VDTxX, STM32L151VDYxX, STM32L151VETx, STM32L151VEYx, STM32L151ZCTx, STM32L151ZDTx, STM32L151ZETx, STM32L152C6Tx, STM32L152C6TxA, STM32L152C6Ux, STM32L152C6UxA, STM32L152C8Tx, STM32L152C8TxA, STM32L152C8Ux, STM32L152C8UxA, STM32L152CBTx, STM32L152CBTxA, STM32L152CBUx, STM32L152CBUxA, STM32L152CCTx, STM32L152CCUx, STM32L152QCHx, STM32L152QDHx, STM32L152QEHx, STM32L152R6Hx, STM32L152R6HxA, STM32L152R6Tx, STM32L152R6TxA, STM32L152R8Hx, STM32L152R8HxA, STM32L152R8Tx, STM32L152R8TxA, STM32L152RBHx, STM32L152RBHxA, STM32L152RBTx, STM32L152RBTxA, STM32L152RCTx, STM32L152RCTxA, STM32L152RDTx, STM32L152RDYx, STM32L152RETx, STM32L152UCYx, STM32L152V8Hx, STM32L152V8HxA, STM32L152V8Tx, STM32L152V8TxA, STM32L152VBHx, STM32L152VBHxA, STM32L152VBTx, STM32L152VBTxA, STM32L152VCHx, STM32L152VCTx, STM32L152VCTxA, STM32L152VDTx, STM32L152VDTxX, STM32L152VETx, STM32L152VEYx, STM32L152ZCTx, STM32L152ZDTx, STM32L152ZETx, STM32L162QCHx, STM32L162QDHx, STM32L162RCTx, STM32L162RCTxA, STM32L162RDTx, STM32L162RDYx, STM32L162RETx, STM32L162VCHx, STM32L162VCTx, STM32L162VCTxA, STM32L162VDTx, STM32L162VDYxX, STM32L162VETx, STM32L162VEYx, STM32L162ZCTx, STM32L162ZDTx, STM32L162ZETx, STM32L412C8Tx, STM32L412C8Ux, STM32L412CBTx, STM32L412CBTxP, STM32L412CBUx, STM32L412CBUxP, STM32L412K8Tx, STM32L412K8Ux, STM32L412KBTx, STM32L412KBUx, STM32L412R8Ix, STM32L412R8Tx, STM32L412RBIx, STM32L412RBIxP, STM32L412RBTx, STM32L412RBTxP, STM32L412T8Yx, STM32L412TBYx, STM32L412TBYxP, STM32L422CBTx, STM32L422CBUx, STM32L422KBTx, STM32L422KBUx, STM32L422RBIx, STM32L422RBTx, STM32L422TBYx, STM32L431CBTx, STM32L431CBUx, STM32L431CBYx, STM32L431CCTx, STM32L431CCUx, STM32L431CCYx, STM32L431KBUx, STM32L431KCUx, STM32L431RBIx, STM32L431RBTx, STM32L431RBYx, STM32L431RCIx, STM32L431RCTx, STM32L431RCYx, STM32L431VCIx, STM32L431VCTx, STM32L432KBUx, STM32L432KCUx, STM32L433CBTx, STM32L433CBUx, STM32L433CBYx, STM32L433CCTx, STM32L433CCUx, STM32L433CCYx, STM32L433RBIx, STM32L433RBTx, STM32L433RBYx, STM32L433RCIx, STM32L433RCTx, STM32L433RCTxP, STM32L433RCYx, STM32L433VCIx, STM32L433VCTx, STM32L442KCUx, STM32L443CCTx, STM32L443CCUx, STM32L443CCYx, STM32L443RCIx, STM32L443RCTx, STM32L443RCYx, STM32L443VCIx, STM32L443VCTx, STM32L451CCUx, STM32L451CEUx, STM32L451RCIx, STM32L451RCTx, STM32L451RCYx, STM32L451REIx, STM32L451RETx, STM32L451REYx, STM32L451VCIx, STM32L451VCTx, STM32L451VEIx, STM32L451VETx, STM32L452CCUx, STM32L452CEUx, STM32L452RCIx, STM32L452RCTx, STM32L452RCYx, STM32L452REIx, STM32L452RETx, STM32L452RETxP, STM32L452REYx, STM32L452VCIx, STM32L452VCTx, STM32L452VEIx, STM32L452VETx, STM32L462CEUx, STM32L462REIx, STM32L462RETx, STM32L462REYx, STM32L462VEIx, STM32L462VETx, STM32L471QEIx, STM32L471QGIx, STM32L471RETx, STM32L471RGTx, STM32L471VETx, STM32L471VGTx, STM32L471ZEJx, STM32L471ZETx, STM32L471ZGJx, STM32L471ZGTx, STM32L475RCTx, STM32L475RETx, STM32L475RGTx, STM32L475VCTx, STM32L475VETx, STM32L475VGTx, STM32L476JEYx, STM32L476JGYx, STM32L476JGYxP, STM32L476MEYx, STM32L476MGYx, STM32L476QEIx, STM32L476QGIx, STM32L476RCTx, STM32L476RETx, STM32L476RGTx, STM32L476VCTx, STM32L476VETx, STM32L476VGTx, STM32L476ZETx, STM32L476ZGJx, STM32L476ZGTx, STM32L476ZGTxP, STM32L485JCYx, STM32L485JEYx, STM32L486JGYx, STM32L486QGIx, STM32L486RGTx, STM32L486VGTx, STM32L486ZGTx, STM32L496AEIx, STM32L496AGIx, STM32L496AGIxP, STM32L496QEIx, STM32L496QGIx, STM32L496QGIxP, STM32L496RETx, STM32L496RGTx, STM32L496RGTxP, STM32L496VETx, STM32L496VGTx, STM32L496VGTxP, STM32L496VGYx, STM32L496VGYxP, STM32L496WGYxP, STM32L496ZETx, STM32L496ZGTx, STM32L496ZGTxP, STM32L552CCTx, STM32L552CCUx, STM32L552CETx, STM32L552CETxP, STM32L552CEUx, STM32L552CEUxP, STM32L552MEYxP, STM32L552MEYxQ, STM32L552QCIxQ, STM32L552QEIx, STM32L552QEIxP, STM32L552QEIxQ, STM32L552RCTx, STM32L552RETx, STM32L552RETxP, STM32L552RETxQ, STM32L552VCTxQ, STM32L552VETx, STM32L552VETxQ, STM32L552ZCTxQ, STM32L552ZETx, STM32L552ZETxQ, STM32L562CETx, STM32L562CETxP, STM32L562CEUx, STM32L562CEUxP, STM32L562MEYxP, STM32L562MEYxQ, STM32L562QEIx, STM32L562QEIxP, STM32L562QEIxQ, STM32L562RETx, STM32L562RETxP, STM32L562RETxQ, STM32L562VETx, STM32L562VETxQ, STM32L562ZETx, STM32L562ZETxQ, STM32MP151AAAx, STM32MP151AABx, STM32MP151AACx, STM32MP151AADx, STM32MP151CAAx, STM32MP151CABx, STM32MP151CACx, STM32MP151CADx, STM32MP151DAAx, STM32MP151DABx, STM32MP151DACx, STM32MP151DADx, STM32MP151FAAx, STM32MP151FABx, STM32MP151FACx, STM32MP151FADx, STM32MP153AAAx, STM32MP153AABx, STM32MP153AACx, STM32MP153AADx, STM32MP153CAAx, STM32MP153CABx, STM32MP153CACx, STM32MP153CADx, STM32MP153DAAx, STM32MP153DABx, STM32MP153DACx, STM32MP153DADx, STM32MP153FAAx, STM32MP153FABx, STM32MP153FACx, STM32MP153FADx, STM32MP157AAAx, STM32MP157AABx, STM32MP157AACx, STM32MP157AADx, STM32MP157CAAx, STM32MP157CABx, STM32MP157CACx, STM32MP157CADx, STM32MP157DAAx, STM32MP157DABx, STM32MP157DACx, STM32MP157DADx, STM32MP157FAAx, STM32MP157FABx, STM32MP157FACx, STM32MP157FADx, STM32WB5MMGHx, STM32WB30CEUx, STM32WB35CCUx, STM32WB35CEUx, STM32WB50CGUx, STM32WB55CCUx, STM32WB55CEUx, STM32WB55CGUx, STM32WB55RCVx, STM32WB55REVx, STM32WB55RGVx, STM32WB55VCQx, STM32WB55VCYx, STM32WB55VEQx, STM32WB55VEYx, STM32WB55VGQx, STM32WB55VGYx, STM32WB55VYYx] +No map found for id: +No map found for id: +No map found for id: +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported +Warning: MCU matched multiple possible MCUs: [STM32F030C6Tx, STM32F030C8Tx, STM32F030CCTx, STM32F030F4Px, STM32F030K6Tx, STM32F030R8Tx, STM32F030RCTx, STM32F031C4Tx, STM32F031C6Tx, STM32F031E6Yx, STM32F031F4Px, STM32F031F6Px, STM32F031G4Ux, STM32F031G6Ux, STM32F031K4Ux, STM32F031K6Tx, STM32F031K6Ux, STM32F038C6Tx, STM32F038E6Yx, STM32F038F6Px, STM32F038G6Ux, STM32F038K6Ux, STM32F042C4Tx, STM32F042C4Ux, STM32F042C6Tx, STM32F042C6Ux, STM32F042F4Px, STM32F042F6Px, STM32F042G4Ux, STM32F042G6Ux, STM32F042K4Tx, STM32F042K4Ux, STM32F042K6Tx, STM32F042K6Ux, STM32F042T6Yx, STM32F048C6Ux, STM32F048G6Ux, STM32F048T6Yx, STM32F051C4Tx, STM32F051C4Ux, STM32F051C6Tx, STM32F051C6Ux, STM32F051C8Tx, STM32F051C8Ux, STM32F051K4Tx, STM32F051K4Ux, STM32F051K6Tx, STM32F051K6Ux, STM32F051K8Tx, STM32F051K8Ux, STM32F051R4Tx, STM32F051R6Tx, STM32F051R8Hx, STM32F051R8Tx, STM32F051T8Yx, STM32F058C8Ux, STM32F058R8Hx, STM32F058R8Tx, STM32F058T8Yx, STM32F070C6Tx, STM32F070CBTx, STM32F070F6Px, STM32F070RBTx, STM32F071C8Tx, STM32F071C8Ux, STM32F071CBTx, STM32F071CBUx, STM32F071CBYx, STM32F071RBTx, STM32F071V8Hx, STM32F071V8Tx, STM32F071VBHx, STM32F071VBTx, STM32F072C8Tx, STM32F072C8Ux, STM32F072CBTx, STM32F072CBUx, STM32F072CBYx, STM32F072R8Tx, STM32F072RBHx, STM32F072RBIx, STM32F072RBTx, STM32F072V8Hx, STM32F072V8Tx, STM32F072VBHx, STM32F072VBTx, STM32F078CBTx, STM32F078CBUx, STM32F078CBYx, STM32F078RBHx, STM32F078RBTx, STM32F078VBHx, STM32F078VBTx, STM32F091CBTx, STM32F091CBUx, STM32F091CCTx, STM32F091CCUx, STM32F091RBTx, STM32F091RCHx, STM32F091RCTx, STM32F091RCYx, STM32F091VBTx, STM32F091VCHx, STM32F091VCTx, STM32F098CCTx, STM32F098CCUx, STM32F098RCHx, STM32F098RCTx, STM32F098RCYx, STM32F098VCHx, STM32F098VCTx, STM32F100C4Tx, STM32F100C6Tx, STM32F100C8Tx, STM32F100CBTx, STM32F100R4Hx, STM32F100R4Tx, STM32F100R6Hx, STM32F100R6Tx, STM32F100R8Hx, STM32F100R8Tx, STM32F100RBHx, STM32F100RBTx, STM32F100RCTx, STM32F100RDTx, STM32F100RETx, STM32F100V8Tx, STM32F100VBTx, STM32F100VCTx, STM32F100VDTx, STM32F100VETx, STM32F100ZCTx, STM32F100ZDTx, STM32F100ZETx, STM32F101C4Tx, STM32F101C6Tx, STM32F101C8Tx, STM32F101C8Ux, STM32F101CBTx, STM32F101CBUx, STM32F101R4Tx, STM32F101R6Tx, STM32F101R8Tx, STM32F101RBHx, STM32F101RBTx, STM32F101RCTx, STM32F101RDTx, STM32F101RETx, STM32F101RFTx, STM32F101RGTx, STM32F101T4Ux, STM32F101T6Ux, STM32F101T8Ux, STM32F101TBUx, STM32F101V8Tx, STM32F101VBTx, STM32F101VCTx, STM32F101VDTx, STM32F101VETx, STM32F101VFTx, STM32F101VGTx, STM32F101ZCTx, STM32F101ZDTx, STM32F101ZETx, STM32F101ZFTx, STM32F101ZGTx, STM32F102C4Tx, STM32F102C6Tx, STM32F102C8Tx, STM32F102CBTx, STM32F102R4Tx, STM32F102R6Tx, STM32F102R8Tx, STM32F102RBTx, STM32F103C4Tx, STM32F103C6Tx, STM32F103C6Ux, STM32F103C8Tx, STM32F103CBTx, STM32F103CBUx, STM32F103R4Hx, STM32F103R4Tx, STM32F103R6Hx, STM32F103R6Tx, STM32F103R8Hx, STM32F103R8Tx, STM32F103RBHx, STM32F103RBTx, STM32F103RCTx, STM32F103RCYx, STM32F103RDTx, STM32F103RDYx, STM32F103RETx, STM32F103REYx, STM32F103RFTx, STM32F103RGTx, STM32F103T4Ux, STM32F103T6Ux, STM32F103T8Ux, STM32F103TBUx, STM32F103V8Hx, STM32F103V8Tx, STM32F103VBHx, STM32F103VBIx, STM32F103VBTx, STM32F103VCHx, STM32F103VCTx, STM32F103VDHx, STM32F103VDTx, STM32F103VEHx, STM32F103VETx, STM32F103VFTx, STM32F103VGTx, STM32F103ZCHx, STM32F103ZCTx, STM32F103ZDHx, STM32F103ZDTx, STM32F103ZEHx, STM32F103ZETx, STM32F103ZFHx, STM32F103ZFTx, STM32F103ZGHx, STM32F103ZGTx, STM32F105R8Tx, STM32F105RBTx, STM32F105RCTx, STM32F105V8Hx, STM32F105V8Tx, STM32F105VBHx, STM32F105VBTx, STM32F105VCTx, STM32F107RBTx, STM32F107RCTx, STM32F107VBTx, STM32F107VCHx, STM32F107VCTx, STM32F205RBTx, STM32F205RCTx, STM32F205RETx, STM32F205REYx, STM32F205RFTx, STM32F205RGEx, STM32F205RGTx, STM32F205RGYx, STM32F205VBTx, STM32F205VCTx, STM32F205VETx, STM32F205VFTx, STM32F205VGTx, STM32F205ZCTx, STM32F205ZETx, STM32F205ZFTx, STM32F205ZGTx, STM32F207ICHx, STM32F207ICTx, STM32F207IEHx, STM32F207IETx, STM32F207IFHx, STM32F207IFTx, STM32F207IGHx, STM32F207IGTx, STM32F207VCTx, STM32F207VETx, STM32F207VFTx, STM32F207VGTx, STM32F207ZCTx, STM32F207ZETx, STM32F207ZFTx, STM32F207ZGTx, STM32F215RETx, STM32F215RGTx, STM32F215VETx, STM32F215VGTx, STM32F215ZETx, STM32F215ZGTx, STM32F217IEHx, STM32F217IETx, STM32F217IGHx, STM32F217IGTx, STM32F217VETx, STM32F217VGTx, STM32F217ZETx, STM32F217ZGTx, STM32F301C6Tx, STM32F301C8Tx, STM32F301C8Yx, STM32F301K6Tx, STM32F301K6Ux, STM32F301K8Tx, STM32F301K8Ux, STM32F301R6Tx, STM32F301R8Tx, STM32F302C6Tx, STM32F302C8Tx, STM32F302C8Yx, STM32F302CBTx, STM32F302CCTx, STM32F302K6Ux, STM32F302K8Ux, STM32F302R6Tx, STM32F302R8Tx, STM32F302RBTx, STM32F302RCTx, STM32F302RDTx, STM32F302RETx, STM32F302VBTx, STM32F302VCTx, STM32F302VCYx, STM32F302VDHx, STM32F302VDTx, STM32F302VEHx, STM32F302VETx, STM32F302ZDTx, STM32F302ZETx, STM32F303C6Tx, STM32F303C8Tx, STM32F303C8Yx, STM32F303CBTx, STM32F303CCTx, STM32F303K6Tx, STM32F303K6Ux, STM32F303K8Tx, STM32F303K8Ux, STM32F303R6Tx, STM32F303R8Tx, STM32F303RBTx, STM32F303RCTx, STM32F303RDTx, STM32F303RETx, STM32F303VBTx, STM32F303VCTx, STM32F303VCYx, STM32F303VDHx, STM32F303VDTx, STM32F303VEHx, STM32F303VETx, STM32F303VEYx, STM32F303ZDTx, STM32F303ZETx, STM32F318C8Tx, STM32F318C8Yx, STM32F318K8Ux, STM32F328C8Tx, STM32F334C4Tx, STM32F334C6Tx, STM32F334C8Tx, STM32F334C8Yx, STM32F334K4Tx, STM32F334K4Ux, STM32F334K6Tx, STM32F334K6Ux, STM32F334K8Tx, STM32F334K8Ux, STM32F334R6Tx, STM32F334R8Tx, STM32F358CCTx, STM32F358RCTx, STM32F358VCTx, STM32F373C8Tx, STM32F373CBTx, STM32F373CCTx, STM32F373R8Tx, STM32F373RBTx, STM32F373RCTx, STM32F373V8Hx, STM32F373V8Tx, STM32F373VBHx, STM32F373VBTx, STM32F373VCHx, STM32F373VCTx, STM32F378CCTx, STM32F378RCTx, STM32F378RCYx, STM32F378VCHx, STM32F378VCTx, STM32F398VETx, STM32F401CBUx, STM32F401CBYx, STM32F401CCFx, STM32F401CCUx, STM32F401CCYx, STM32F401CDUx, STM32F401CDYx, STM32F401CEUx, STM32F401CEYx, STM32F401RBTx, STM32F401RCTx, STM32F401RDTx, STM32F401RETx, STM32F401VBHx, STM32F401VBTx, STM32F401VCHx, STM32F401VCTx, STM32F401VDHx, STM32F401VDTx, STM32F401VEHx, STM32F401VETx, STM32F405OEYx, STM32F405OGYx, STM32F405RGTx, STM32F405VGTx, STM32F405ZGTx, STM32F407IEHx, STM32F407IETx, STM32F407IGHx, STM32F407IGTx, STM32F407VETx, STM32F407VGTx, STM32F407ZETx, STM32F407ZGTx, STM32F410C8Tx, STM32F410C8Ux, STM32F410CBTx, STM32F410CBUx, STM32F410R8Ix, STM32F410R8Tx, STM32F410RBIx, STM32F410RBTx, STM32F410T8Yx, STM32F410TBYx, STM32F411CCUx, STM32F411CCYx, STM32F411CEUx, STM32F411CEYx, STM32F411RCTx, STM32F411RETx, STM32F411VCHx, STM32F411VCTx, STM32F411VEHx, STM32F411VETx, STM32F412CEUx, STM32F412CGUx, STM32F412RETx, STM32F412REYx, STM32F412REYxP, STM32F412RGTx, STM32F412RGYx, STM32F412RGYxP, STM32F412VEHx, STM32F412VETx, STM32F412VGHx, STM32F412VGTx, STM32F412ZEJx, STM32F412ZETx, STM32F412ZGJx, STM32F412ZGTx, STM32F413CGUx, STM32F413CHUx, STM32F413MGYx, STM32F413MHYx, STM32F413RGTx, STM32F413RHTx, STM32F413VGHx, STM32F413VGTx, STM32F413VHHx, STM32F413VHTx, STM32F413ZGJx, STM32F413ZGTx, STM32F413ZHJx, STM32F413ZHTx, STM32F415OGYx, STM32F415RGTx, STM32F415VGTx, STM32F415ZGTx, STM32F417IEHx, STM32F417IETx, STM32F417IGHx, STM32F417IGTx, STM32F417VETx, STM32F417VGTx, STM32F417ZETx, STM32F417ZGTx, STM32F423CHUx, STM32F423MHYx, STM32F423RHTx, STM32F423VHHx, STM32F423VHTx, STM32F423ZHJx, STM32F423ZHTx, STM32F427AGHx, STM32F427AIHx, STM32F427IGHx, STM32F427IGTx, STM32F427IIHx, STM32F427IITx, STM32F427VGTx, STM32F427VITx, STM32F427ZGTx, STM32F427ZITx, STM32F429AGHx, STM32F429AIHx, STM32F429BETx, STM32F429BGTx, STM32F429BITx, STM32F429IEHx, STM32F429IETx, STM32F429IGHx, STM32F429IGTx, STM32F429IIHx, STM32F429IITx, STM32F429NEHx, STM32F429NGHx, STM32F429NIHx, STM32F429VETx, STM32F429VGTx, STM32F429VITx, STM32F429ZETx, STM32F429ZGTx, STM32F429ZGYx, STM32F429ZITx, STM32F429ZIYx, STM32F437AIHx, STM32F437IGHx, STM32F437IGTx, STM32F437IIHx, STM32F437IITx, STM32F437VGTx, STM32F437VITx, STM32F437ZGTx, STM32F437ZITx, STM32F439AIHx, STM32F439BGTx, STM32F439BITx, STM32F439IGHx, STM32F439IGTx, STM32F439IIHx, STM32F439IITx, STM32F439NGHx, STM32F439NIHx, STM32F439VGTx, STM32F439VITx, STM32F439ZGTx, STM32F439ZGYx, STM32F439ZITx, STM32F439ZIYx, STM32F446MCYx, STM32F446MEYx, STM32F446RCTx, STM32F446RETx, STM32F446VCTx, STM32F446VETx, STM32F446ZCHx, STM32F446ZCJx, STM32F446ZCTx, STM32F446ZEHx, STM32F446ZEJx, STM32F446ZETx, STM32F469AEHx, STM32F469AEYx, STM32F469AGHx, STM32F469AGYx, STM32F469AIHx, STM32F469AIYx, STM32F469BETx, STM32F469BGTx, STM32F469BITx, STM32F469IEHx, STM32F469IETx, STM32F469IGHx, STM32F469IGTx, STM32F469IIHx, STM32F469IITx, STM32F469NEHx, STM32F469NGHx, STM32F469NIHx, STM32F469VETx, STM32F469VGTx, STM32F469VITx, STM32F469ZETx, STM32F469ZGTx, STM32F469ZITx, STM32F479AGHx, STM32F479AGYx, STM32F479AIHx, STM32F479AIYx, STM32F479BGTx, STM32F479BITx, STM32F479IGHx, STM32F479IGTx, STM32F479IIHx, STM32F479IITx, STM32F479NGHx, STM32F479NIHx, STM32F479VGTx, STM32F479VITx, STM32F479ZGTx, STM32F479ZITx, STM32F722ICKx, STM32F722ICTx, STM32F722IEKx, STM32F722IETx, STM32F722RCTx, STM32F722RETx, STM32F722VCTx, STM32F722VETx, STM32F722ZCTx, STM32F722ZETx, STM32F723ICKx, STM32F723ICTx, STM32F723IEKx, STM32F723IETx, STM32F723VCTx, STM32F723VCYx, STM32F723VETx, STM32F723VEYx, STM32F723ZCIx, STM32F723ZCTx, STM32F723ZEIx, STM32F723ZETx, STM32F730I8Kx, STM32F730R8Tx, STM32F730V8Tx, STM32F730Z8Tx, STM32F732IEKx, STM32F732IETx, STM32F732RETx, STM32F732VETx, STM32F732ZETx, STM32F733IEKx, STM32F733IETx, STM32F733VETx, STM32F733VEYx, STM32F733ZEIx, STM32F733ZETx, STM32F745IEKx, STM32F745IETx, STM32F745IGKx, STM32F745IGTx, STM32F745VEHx, STM32F745VETx, STM32F745VGHx, STM32F745VGTx, STM32F745ZETx, STM32F745ZGTx, STM32F746BETx, STM32F746BGTx, STM32F746IEKx, STM32F746IETx, STM32F746IGKx, STM32F746IGTx, STM32F746NEHx, STM32F746NGHx, STM32F746VEHx, STM32F746VETx, STM32F746VGHx, STM32F746VGTx, STM32F746ZETx, STM32F746ZEYx, STM32F746ZGTx, STM32F746ZGYx, STM32F750N8Hx, STM32F750V8Tx, STM32F750Z8Tx, STM32F756BGTx, STM32F756IGKx, STM32F756IGTx, STM32F756NGHx, STM32F756VGHx, STM32F756VGTx, STM32F756ZGTx, STM32F756ZGYx, STM32F765BGTx, STM32F765BITx, STM32F765IGKx, STM32F765IGTx, STM32F765IIKx, STM32F765IITx, STM32F765NGHx, STM32F765NIHx, STM32F765VGHx, STM32F765VGTx, STM32F765VIHx, STM32F765VITx, STM32F765ZGTx, STM32F765ZITx, STM32F767BGTx, STM32F767BITx, STM32F767IGKx, STM32F767IGTx, STM32F767IIKx, STM32F767IITx, STM32F767NGHx, STM32F767NIHx, STM32F767VGHx, STM32F767VGTx, STM32F767VIHx, STM32F767VITx, STM32F767ZGTx, STM32F767ZITx, STM32F768AIYx, STM32F769AGYx, STM32F769AIYx, STM32F769BGTx, STM32F769BITx, STM32F769IGTx, STM32F769IITx, STM32F769NGHx, STM32F769NIHx, STM32F777BITx, STM32F777IIKx, STM32F777IITx, STM32F777NIHx, STM32F777VIHx, STM32F777VITx, STM32F777ZITx, STM32F778AIYx, STM32F779AIYx, STM32F779BITx, STM32F779IITx, STM32F779NIHx, STM32G4A1CETx, STM32G4A1CEUx, STM32G4A1KEUx, STM32G4A1MESx, STM32G4A1METx, STM32G4A1REIx, STM32G4A1RETx, STM32G4A1REYx, STM32G4A1VETx, STM32G030C6Tx, STM32G030C8Tx, STM32G030F6Px, STM32G030J6Mx, STM32G030K6Tx, STM32G030K8Tx, STM32G031C4Tx, STM32G031C4Ux, STM32G031C6Tx, STM32G031C6Ux, STM32G031C8Tx, STM32G031C8Ux, STM32G031F4Px, STM32G031F6Px, STM32G031F8Px, STM32G031G4Ux, STM32G031G6Ux, STM32G031G8Ux, STM32G031J4Mx, STM32G031J6Mx, STM32G031K4Tx, STM32G031K4Ux, STM32G031K6Tx, STM32G031K6Ux, STM32G031K8Tx, STM32G031K8Ux, STM32G031Y8Yx, STM32G041C6Tx, STM32G041C6Ux, STM32G041C8Tx, STM32G041C8Ux, STM32G041F6Px, STM32G041F8Px, STM32G041G6Ux, STM32G041G8Ux, STM32G041J6Mx, STM32G041K6Tx, STM32G041K6Ux, STM32G041K8Tx, STM32G041K8Ux, STM32G041Y8Yx, STM32G070CBTx, STM32G070KBTx, STM32G070RBTx, STM32G071C6Tx, STM32G071C6Ux, STM32G071C8Tx, STM32G071C8Ux, STM32G071CBTx, STM32G071CBUx, STM32G071EBYx, STM32G071G6Ux, STM32G071G8Ux, STM32G071G8UxN, STM32G071GBUx, STM32G071GBUxN, STM32G071K6Tx, STM32G071K6Ux, STM32G071K8Tx, STM32G071K8TxN, STM32G071K8Ux, STM32G071K8UxN, STM32G071KBTx, STM32G071KBTxN, STM32G071KBUx, STM32G071KBUxN, STM32G071R6Tx, STM32G071R8Tx, STM32G071RBIx, STM32G071RBTx, STM32G081CBTx, STM32G081CBUx, STM32G081EBYx, STM32G081GBUx, STM32G081GBUxN, STM32G081KBTx, STM32G081KBTxN, STM32G081KBUx, STM32G081KBUxN, STM32G081RBIx, STM32G081RBTx, STM32G431C6Tx, STM32G431C6Ux, STM32G431C8Tx, STM32G431C8Ux, STM32G431CBTx, STM32G431CBUx, STM32G431CBYx, STM32G431K6Tx, STM32G431K6Ux, STM32G431K8Tx, STM32G431K8Ux, STM32G431KBTx, STM32G431KBUx, STM32G431M6Tx, STM32G431M8Tx, STM32G431MBTx, STM32G431R6Ix, STM32G431R6Tx, STM32G431R8Ix, STM32G431R8Tx, STM32G431RBIx, STM32G431RBTx, STM32G431V6Tx, STM32G431V8Tx, STM32G431VBTx, STM32G441CBTx, STM32G441CBUx, STM32G441CBYx, STM32G441KBTx, STM32G441KBUx, STM32G441MBTx, STM32G441RBIx, STM32G441RBTx, STM32G441VBTx, STM32G471CCTx, STM32G471CCUx, STM32G471CETx, STM32G471CEUx, STM32G471MCTx, STM32G471METx, STM32G471MEYx, STM32G471QCTx, STM32G471QETx, STM32G471RCTx, STM32G471RETx, STM32G471VCHx, STM32G471VCIx, STM32G471VCTx, STM32G471VEHx, STM32G471VEIx, STM32G471VETx, STM32G473CBTx, STM32G473CBUx, STM32G473CCTx, STM32G473CCUx, STM32G473CETx, STM32G473CEUx, STM32G473MBTx, STM32G473MCTx, STM32G473METx, STM32G473MEYx, STM32G473PBIx, STM32G473PCIx, STM32G473PEIx, STM32G473QBTx, STM32G473QCTx, STM32G473QETx, STM32G473RBTx, STM32G473RCTx, STM32G473RETx, STM32G473VBHx, STM32G473VBIx, STM32G473VBTx, STM32G473VCHx, STM32G473VCIx, STM32G473VCTx, STM32G473VEHx, STM32G473VEIx, STM32G473VETx, STM32G474CBTx, STM32G474CBUx, STM32G474CCTx, STM32G474CCUx, STM32G474CETx, STM32G474CEUx, STM32G474MBTx, STM32G474MCTx, STM32G474METx, STM32G474MEYx, STM32G474PBIx, STM32G474PCIx, STM32G474PEIx, STM32G474QBTx, STM32G474QCTx, STM32G474QETx, STM32G474RBTx, STM32G474RCTx, STM32G474RETx, STM32G474VBHx, STM32G474VBIx, STM32G474VBTx, STM32G474VCHx, STM32G474VCIx, STM32G474VCTx, STM32G474VEHx, STM32G474VEIx, STM32G474VETx, STM32G483CETx, STM32G483CEUx, STM32G483METx, STM32G483MEYx, STM32G483PEIx, STM32G483QETx, STM32G483RETx, STM32G483VEHx, STM32G483VEIx, STM32G483VETx, STM32G484CETx, STM32G484CEUx, STM32G484METx, STM32G484MEYx, STM32G484PEIx, STM32G484QETx, STM32G484RETx, STM32G484VEHx, STM32G484VEIx, STM32G484VETx, STM32G491CCTx, STM32G491CCUx, STM32G491CETx, STM32G491CEUx, STM32G491KCUx, STM32G491KEUx, STM32G491MCSx, STM32G491MCTx, STM32G491MESx, STM32G491METx, STM32G491RCIx, STM32G491RCTx, STM32G491REIx, STM32G491RETx, STM32G491REYx, STM32G491VCTx, STM32G491VETx, STM32GBK1CBTx, STM32H7A3AGIxQ, STM32H7A3AIIxQ, STM32H7A3IGKx, STM32H7A3IGKxQ, STM32H7A3IGTx, STM32H7A3IGTxQ, STM32H7A3IIKx, STM32H7A3IIKxQ, STM32H7A3IITx, STM32H7A3IITxQ, STM32H7A3LGHxQ, STM32H7A3LIHxQ, STM32H7A3NGHx, STM32H7A3NIHx, STM32H7A3QIYxQ, STM32H7A3RGTx, STM32H7A3RITx, STM32H7A3VGHx, STM32H7A3VGHxQ, STM32H7A3VGTx, STM32H7A3VGTxQ, STM32H7A3VIHx, STM32H7A3VIHxQ, STM32H7A3VITx, STM32H7A3VITxQ, STM32H7A3ZGTx, STM32H7A3ZGTxQ, STM32H7A3ZITx, STM32H7A3ZITxQ, STM32H7B3AIIxQ, STM32H7B3IIKx, STM32H7B3IIKxQ, STM32H7B3IITx, STM32H7B3IITxQ, STM32H7B3LIHxQ, STM32H7B3NIHx, STM32H7B3QIYxQ, STM32H7B3RITx, STM32H7B3VIHx, STM32H7B3VIHxQ, STM32H7B3VITx, STM32H7B3VITxQ, STM32H7B3ZITx, STM32H7B3ZITxQ, STM32H7B0ABIxQ, STM32H7B0IBKxQ, STM32H7B0IBTx, STM32H7B0RBTx, STM32H7B0VBTx, STM32H7B0ZBTx, STM32H723VEHx, STM32H723VETx, STM32H723VGHx, STM32H723VGTx, STM32H723ZEIx, STM32H723ZETx, STM32H723ZGIx, STM32H723ZGTx, STM32H725AEIx, STM32H725AGIx, STM32H725IEKx, STM32H725IETx, STM32H725IGKx, STM32H725IGTx, STM32H725REVx, STM32H725RGVx, STM32H725VETx, STM32H725VGTx, STM32H725VGYx, STM32H725ZETx, STM32H725ZGTx, STM32H730ABIxQ, STM32H730IBKxQ, STM32H730IBTxQ, STM32H730VBHx, STM32H730VBTx, STM32H730ZBIx, STM32H730ZBTx, STM32H733VGHx, STM32H733VGTx, STM32H733ZGIx, STM32H733ZGTx, STM32H735AGIx, STM32H735IGKx, STM32H735IGTx, STM32H735RGVx, STM32H735VGTx, STM32H735VGYx, STM32H735ZGTx, STM32H742AGIx, STM32H742AIIx, STM32H742BGTx, STM32H742BITx, STM32H742IGKx, STM32H742IGTx, STM32H742IIKx, STM32H742IITx, STM32H742VGHx, STM32H742VGTx, STM32H742VIHx, STM32H742VITx, STM32H742XGHx, STM32H742XIHx, STM32H742ZGTx, STM32H742ZITx, STM32H743AGIx, STM32H743AIIx, STM32H743BGTx, STM32H743BITx, STM32H743IGKx, STM32H743IGTx, STM32H743IIKx, STM32H743IITx, STM32H743VGHx, STM32H743VGTx, STM32H743VIHx, STM32H743VITx, STM32H743XGHx, STM32H743XIHx, STM32H743ZGTx, STM32H743ZITx, STM32H745BGTx, STM32H745BITx, STM32H745IGKx, STM32H745IGTx, STM32H745IIKx, STM32H745IITx, STM32H745XGHx, STM32H745XIHx, STM32H745ZGTx, STM32H745ZITx, STM32H747AGIx, STM32H747AIIx, STM32H747BGTx, STM32H747BITx, STM32H747IGTx, STM32H747IITx, STM32H747XGHx, STM32H747XIHx, STM32H747ZIYx, STM32H750IBKx, STM32H750IBTx, STM32H750VBTx, STM32H750XBHx, STM32H750ZBTx, STM32H753AIIx, STM32H753BITx, STM32H753IIKx, STM32H753IITx, STM32H753VIHx, STM32H753VITx, STM32H753XIHx, STM32H753ZITx, STM32H755BITx, STM32H755IIKx, STM32H755IITx, STM32H755XIHx, STM32H755ZITx, STM32H757AIIx, STM32H757BITx, STM32H757IITx, STM32H757XIHx, STM32H757ZIYx, STM32L4A6AGIx, STM32L4A6AGIxP, STM32L4A6QGIx, STM32L4A6QGIxP, STM32L4A6RGTx, STM32L4A6RGTxP, STM32L4A6VGTx, STM32L4A6VGTxP, STM32L4A6VGYx, STM32L4A6VGYxP, STM32L4A6ZGTx, STM32L4A6ZGTxP, STM32L4P5AEIx, STM32L4P5AGIx, STM32L4P5AGIxP, STM32L4P5CETx, STM32L4P5CEUx, STM32L4P5CGTx, STM32L4P5CGTxP, STM32L4P5CGUx, STM32L4P5CGUxP, STM32L4P5QEIx, STM32L4P5QGIx, STM32L4P5QGIxP, STM32L4P5RETx, STM32L4P5RGTx, STM32L4P5RGTxP, STM32L4P5VETx, STM32L4P5VEYx, STM32L4P5VGTx, STM32L4P5VGTxP, STM32L4P5VGYx, STM32L4P5VGYxP, STM32L4P5ZETx, STM32L4P5ZGTx, STM32L4P5ZGTxP, STM32L4Q5AGIx, STM32L4Q5CGTx, STM32L4Q5CGUx, STM32L4Q5QGIx, STM32L4Q5RGTx, STM32L4Q5VGTx, STM32L4Q5VGYx, STM32L4Q5ZGTx, STM32L4R5AGIx, STM32L4R5AIIx, STM32L4R5QGIx, STM32L4R5QIIx, STM32L4R5VGTx, STM32L4R5VITx, STM32L4R5ZGTx, STM32L4R5ZGYx, STM32L4R5ZITx, STM32L4R5ZITxP, STM32L4R5ZIYx, STM32L4R7AIIx, STM32L4R7VITx, STM32L4R7ZITx, STM32L4R9AGIx, STM32L4R9AIIx, STM32L4R9VGTx, STM32L4R9VITx, STM32L4R9ZGJx, STM32L4R9ZGTx, STM32L4R9ZGYx, STM32L4R9ZIJx, STM32L4R9ZITx, STM32L4R9ZIYx, STM32L4R9ZIYxP, STM32L4S5AIIx, STM32L4S5QIIx, STM32L4S5VITx, STM32L4S5ZITx, STM32L4S5ZIYx, STM32L4S7AIIx, STM32L4S7VITx, STM32L4S7ZITx, STM32L4S9AIIx, STM32L4S9VITx, STM32L4S9ZIJx, STM32L4S9ZITx, STM32L4S9ZIYx, STM32L010C6Tx, STM32L010F4Px, STM32L010K4Tx, STM32L010K8Tx, STM32L010R8Tx, STM32L010RBTx, STM32L011D3Px, STM32L011D4Px, STM32L011E3Yx, STM32L011E4Yx, STM32L011F3Px, STM32L011F3Ux, STM32L011F4Px, STM32L011F4Ux, STM32L011G3Ux, STM32L011G4Ux, STM32L011K3Tx, STM32L011K3Ux, STM32L011K4Tx, STM32L011K4Ux, STM32L021D4Px, STM32L021F4Px, STM32L021F4Ux, STM32L021G4Ux, STM32L021K4Tx, STM32L021K4Ux, STM32L031C4Tx, STM32L031C4Ux, STM32L031C6Tx, STM32L031C6Ux, STM32L031E4Yx, STM32L031E6Yx, STM32L031F4Px, STM32L031F6Px, STM32L031G4Ux, STM32L031G6Ux, STM32L031G6UxS, STM32L031K4Tx, STM32L031K4Ux, STM32L031K6Tx, STM32L031K6Ux, STM32L041C4Tx, STM32L041C6Tx, STM32L041C6Ux, STM32L041E6Yx, STM32L041F6Px, STM32L041G6Ux, STM32L041G6UxS, STM32L041K6Tx, STM32L041K6Ux, STM32L051C6Tx, STM32L051C6Ux, STM32L051C8Tx, STM32L051C8Ux, STM32L051K6Tx, STM32L051K6Ux, STM32L051K8Tx, STM32L051K8Ux, STM32L051R6Hx, STM32L051R6Tx, STM32L051R8Hx, STM32L051R8Tx, STM32L051T6Yx, STM32L051T8Yx, STM32L052C6Tx, STM32L052C6Ux, STM32L052C8Tx, STM32L052C8Ux, STM32L052K6Tx, STM32L052K6Ux, STM32L052K8Tx, STM32L052K8Ux, STM32L052R6Hx, STM32L052R6Tx, STM32L052R8Hx, STM32L052R8Tx, STM32L052T6Yx, STM32L052T8Fx, STM32L052T8Yx, STM32L053C6Tx, STM32L053C6Ux, STM32L053C8Tx, STM32L053C8Ux, STM32L053R6Hx, STM32L053R6Tx, STM32L053R8Hx, STM32L053R8Tx, STM32L062C8Ux, STM32L062K8Tx, STM32L062K8Ux, STM32L063C8Tx, STM32L063C8Ux, STM32L063R8Tx, STM32L071C8Tx, STM32L071C8Ux, STM32L071CBTx, STM32L071CBUx, STM32L071CBYx, STM32L071CZTx, STM32L071CZUx, STM32L071CZYx, STM32L071K8Ux, STM32L071KBTx, STM32L071KBUx, STM32L071KZTx, STM32L071KZUx, STM32L071RBHx, STM32L071RBTx, STM32L071RZHx, STM32L071RZTx, STM32L071V8Ix, STM32L071V8Tx, STM32L071VBIx, STM32L071VBTx, STM32L071VZIx, STM32L071VZTx, STM32L072CBTx, STM32L072CBUx, STM32L072CBYx, STM32L072CZEx, STM32L072CZTx, STM32L072CZUx, STM32L072CZYx, STM32L072KBTx, STM32L072KBUx, STM32L072KZTx, STM32L072KZUx, STM32L072RBHx, STM32L072RBIx, STM32L072RBTx, STM32L072RZHx, STM32L072RZIx, STM32L072RZTx, STM32L072V8Ix, STM32L072V8Tx, STM32L072VBIx, STM32L072VBTx, STM32L072VZIx, STM32L072VZTx, STM32L073CBTx, STM32L073CBUx, STM32L073CZTx, STM32L073CZUx, STM32L073RBHx, STM32L073RBTx, STM32L073RZHx, STM32L073RZIx, STM32L073RZTx, STM32L073V8Ix, STM32L073V8Tx, STM32L073VBIx, STM32L073VBTx, STM32L073VZIx, STM32L073VZTx, STM32L081CBTx, STM32L081CZTx, STM32L081CZUx, STM32L081KZTx, STM32L081KZUx, STM32L082CZUx, STM32L082CZYx, STM32L082KBTx, STM32L082KBUx, STM32L082KZTx, STM32L082KZUx, STM32L083CBTx, STM32L083CZTx, STM32L083CZUx, STM32L083RBHx, STM32L083RBTx, STM32L083RZHx, STM32L083RZTx, STM32L083V8Ix, STM32L083V8Tx, STM32L083VBIx, STM32L083VBTx, STM32L083VZIx, STM32L083VZTx, STM32L100C6Ux, STM32L100C6UxA, STM32L100R8Tx, STM32L100R8TxA, STM32L100RBTx, STM32L100RBTxA, STM32L100RCTx, STM32L151C6Tx, STM32L151C6TxA, STM32L151C6Ux, STM32L151C6UxA, STM32L151C8Tx, STM32L151C8TxA, STM32L151C8Ux, STM32L151C8UxA, STM32L151CBTx, STM32L151CBTxA, STM32L151CBUx, STM32L151CBUxA, STM32L151CCTx, STM32L151CCUx, STM32L151QCHx, STM32L151QDHx, STM32L151QEHx, STM32L151R6Hx, STM32L151R6HxA, STM32L151R6Tx, STM32L151R6TxA, STM32L151R8Hx, STM32L151R8HxA, STM32L151R8Tx, STM32L151R8TxA, STM32L151RBHx, STM32L151RBHxA, STM32L151RBTx, STM32L151RBTxA, STM32L151RCTx, STM32L151RCTxA, STM32L151RCYx, STM32L151RDTx, STM32L151RDYx, STM32L151RETx, STM32L151UCYx, STM32L151V8Hx, STM32L151V8HxA, STM32L151V8Tx, STM32L151V8TxA, STM32L151VBHx, STM32L151VBHxA, STM32L151VBTx, STM32L151VBTxA, STM32L151VCHx, STM32L151VCTx, STM32L151VCTxA, STM32L151VDTx, STM32L151VDTxX, STM32L151VDYxX, STM32L151VETx, STM32L151VEYx, STM32L151ZCTx, STM32L151ZDTx, STM32L151ZETx, STM32L152C6Tx, STM32L152C6TxA, STM32L152C6Ux, STM32L152C6UxA, STM32L152C8Tx, STM32L152C8TxA, STM32L152C8Ux, STM32L152C8UxA, STM32L152CBTx, STM32L152CBTxA, STM32L152CBUx, STM32L152CBUxA, STM32L152CCTx, STM32L152CCUx, STM32L152QCHx, STM32L152QDHx, STM32L152QEHx, STM32L152R6Hx, STM32L152R6HxA, STM32L152R6Tx, STM32L152R6TxA, STM32L152R8Hx, STM32L152R8HxA, STM32L152R8Tx, STM32L152R8TxA, STM32L152RBHx, STM32L152RBHxA, STM32L152RBTx, STM32L152RBTxA, STM32L152RCTx, STM32L152RCTxA, STM32L152RDTx, STM32L152RDYx, STM32L152RETx, STM32L152UCYx, STM32L152V8Hx, STM32L152V8HxA, STM32L152V8Tx, STM32L152V8TxA, STM32L152VBHx, STM32L152VBHxA, STM32L152VBTx, STM32L152VBTxA, STM32L152VCHx, STM32L152VCTx, STM32L152VCTxA, STM32L152VDTx, STM32L152VDTxX, STM32L152VETx, STM32L152VEYx, STM32L152ZCTx, STM32L152ZDTx, STM32L152ZETx, STM32L162QCHx, STM32L162QDHx, STM32L162RCTx, STM32L162RCTxA, STM32L162RDTx, STM32L162RDYx, STM32L162RETx, STM32L162VCHx, STM32L162VCTx, STM32L162VCTxA, STM32L162VDTx, STM32L162VDYxX, STM32L162VETx, STM32L162VEYx, STM32L162ZCTx, STM32L162ZDTx, STM32L162ZETx, STM32L412C8Tx, STM32L412C8Ux, STM32L412CBTx, STM32L412CBTxP, STM32L412CBUx, STM32L412CBUxP, STM32L412K8Tx, STM32L412K8Ux, STM32L412KBTx, STM32L412KBUx, STM32L412R8Ix, STM32L412R8Tx, STM32L412RBIx, STM32L412RBIxP, STM32L412RBTx, STM32L412RBTxP, STM32L412T8Yx, STM32L412TBYx, STM32L412TBYxP, STM32L422CBTx, STM32L422CBUx, STM32L422KBTx, STM32L422KBUx, STM32L422RBIx, STM32L422RBTx, STM32L422TBYx, STM32L431CBTx, STM32L431CBUx, STM32L431CBYx, STM32L431CCTx, STM32L431CCUx, STM32L431CCYx, STM32L431KBUx, STM32L431KCUx, STM32L431RBIx, STM32L431RBTx, STM32L431RBYx, STM32L431RCIx, STM32L431RCTx, STM32L431RCYx, STM32L431VCIx, STM32L431VCTx, STM32L432KBUx, STM32L432KCUx, STM32L433CBTx, STM32L433CBUx, STM32L433CBYx, STM32L433CCTx, STM32L433CCUx, STM32L433CCYx, STM32L433RBIx, STM32L433RBTx, STM32L433RBYx, STM32L433RCIx, STM32L433RCTx, STM32L433RCTxP, STM32L433RCYx, STM32L433VCIx, STM32L433VCTx, STM32L442KCUx, STM32L443CCTx, STM32L443CCUx, STM32L443CCYx, STM32L443RCIx, STM32L443RCTx, STM32L443RCYx, STM32L443VCIx, STM32L443VCTx, STM32L451CCUx, STM32L451CEUx, STM32L451RCIx, STM32L451RCTx, STM32L451RCYx, STM32L451REIx, STM32L451RETx, STM32L451REYx, STM32L451VCIx, STM32L451VCTx, STM32L451VEIx, STM32L451VETx, STM32L452CCUx, STM32L452CEUx, STM32L452RCIx, STM32L452RCTx, STM32L452RCYx, STM32L452REIx, STM32L452RETx, STM32L452RETxP, STM32L452REYx, STM32L452VCIx, STM32L452VCTx, STM32L452VEIx, STM32L452VETx, STM32L462CEUx, STM32L462REIx, STM32L462RETx, STM32L462REYx, STM32L462VEIx, STM32L462VETx, STM32L471QEIx, STM32L471QGIx, STM32L471RETx, STM32L471RGTx, STM32L471VETx, STM32L471VGTx, STM32L471ZEJx, STM32L471ZETx, STM32L471ZGJx, STM32L471ZGTx, STM32L475RCTx, STM32L475RETx, STM32L475RGTx, STM32L475VCTx, STM32L475VETx, STM32L475VGTx, STM32L476JEYx, STM32L476JGYx, STM32L476JGYxP, STM32L476MEYx, STM32L476MGYx, STM32L476QEIx, STM32L476QGIx, STM32L476RCTx, STM32L476RETx, STM32L476RGTx, STM32L476VCTx, STM32L476VETx, STM32L476VGTx, STM32L476ZETx, STM32L476ZGJx, STM32L476ZGTx, STM32L476ZGTxP, STM32L485JCYx, STM32L485JEYx, STM32L486JGYx, STM32L486QGIx, STM32L486RGTx, STM32L486VGTx, STM32L486ZGTx, STM32L496AEIx, STM32L496AGIx, STM32L496AGIxP, STM32L496QEIx, STM32L496QGIx, STM32L496QGIxP, STM32L496RETx, STM32L496RGTx, STM32L496RGTxP, STM32L496VETx, STM32L496VGTx, STM32L496VGTxP, STM32L496VGYx, STM32L496VGYxP, STM32L496WGYxP, STM32L496ZETx, STM32L496ZGTx, STM32L496ZGTxP, STM32L552CCTx, STM32L552CCUx, STM32L552CETx, STM32L552CETxP, STM32L552CEUx, STM32L552CEUxP, STM32L552MEYxP, STM32L552MEYxQ, STM32L552QCIxQ, STM32L552QEIx, STM32L552QEIxP, STM32L552QEIxQ, STM32L552RCTx, STM32L552RETx, STM32L552RETxP, STM32L552RETxQ, STM32L552VCTxQ, STM32L552VETx, STM32L552VETxQ, STM32L552ZCTxQ, STM32L552ZETx, STM32L552ZETxQ, STM32L562CETx, STM32L562CETxP, STM32L562CEUx, STM32L562CEUxP, STM32L562MEYxP, STM32L562MEYxQ, STM32L562QEIx, STM32L562QEIxP, STM32L562QEIxQ, STM32L562RETx, STM32L562RETxP, STM32L562RETxQ, STM32L562VETx, STM32L562VETxQ, STM32L562ZETx, STM32L562ZETxQ, STM32MP151AAAx, STM32MP151AABx, STM32MP151AACx, STM32MP151AADx, STM32MP151CAAx, STM32MP151CABx, STM32MP151CACx, STM32MP151CADx, STM32MP151DAAx, STM32MP151DABx, STM32MP151DACx, STM32MP151DADx, STM32MP151FAAx, STM32MP151FABx, STM32MP151FACx, STM32MP151FADx, STM32MP153AAAx, STM32MP153AABx, STM32MP153AACx, STM32MP153AADx, STM32MP153CAAx, STM32MP153CABx, STM32MP153CACx, STM32MP153CADx, STM32MP153DAAx, STM32MP153DABx, STM32MP153DACx, STM32MP153DADx, STM32MP153FAAx, STM32MP153FABx, STM32MP153FACx, STM32MP153FADx, STM32MP157AAAx, STM32MP157AABx, STM32MP157AACx, STM32MP157AADx, STM32MP157CAAx, STM32MP157CABx, STM32MP157CACx, STM32MP157CADx, STM32MP157DAAx, STM32MP157DABx, STM32MP157DACx, STM32MP157DADx, STM32MP157FAAx, STM32MP157FABx, STM32MP157FACx, STM32MP157FADx, STM32WB5MMGHx, STM32WB30CEUx, STM32WB35CCUx, STM32WB35CEUx, STM32WB50CGUx, STM32WB55CCUx, STM32WB55CEUx, STM32WB55CGUx, STM32WB55RCVx, STM32WB55REVx, STM32WB55RGVx, STM32WB55VCQx, STM32WB55VCYx, STM32WB55VEQx, STM32WB55VEYx, STM32WB55VGQx, STM32WB55VGYx, STM32WB55VYYx] +No map found for id: +No map found for id: +No map found for id: +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported +Warning: MCU matched multiple possible MCUs: [STM32F030C6Tx, STM32F030C8Tx, STM32F030CCTx, STM32F030F4Px, STM32F030K6Tx, STM32F030R8Tx, STM32F030RCTx, STM32F031C4Tx, STM32F031C6Tx, STM32F031E6Yx, STM32F031F4Px, STM32F031F6Px, STM32F031G4Ux, STM32F031G6Ux, STM32F031K4Ux, STM32F031K6Tx, STM32F031K6Ux, STM32F038C6Tx, STM32F038E6Yx, STM32F038F6Px, STM32F038G6Ux, STM32F038K6Ux, STM32F042C4Tx, STM32F042C4Ux, STM32F042C6Tx, STM32F042C6Ux, STM32F042F4Px, STM32F042F6Px, STM32F042G4Ux, STM32F042G6Ux, STM32F042K4Tx, STM32F042K4Ux, STM32F042K6Tx, STM32F042K6Ux, STM32F042T6Yx, STM32F048C6Ux, STM32F048G6Ux, STM32F048T6Yx, STM32F051C4Tx, STM32F051C4Ux, STM32F051C6Tx, STM32F051C6Ux, STM32F051C8Tx, STM32F051C8Ux, STM32F051K4Tx, STM32F051K4Ux, STM32F051K6Tx, STM32F051K6Ux, STM32F051K8Tx, STM32F051K8Ux, STM32F051R4Tx, STM32F051R6Tx, STM32F051R8Hx, STM32F051R8Tx, STM32F051T8Yx, STM32F058C8Ux, STM32F058R8Hx, STM32F058R8Tx, STM32F058T8Yx, STM32F070C6Tx, STM32F070CBTx, STM32F070F6Px, STM32F070RBTx, STM32F071C8Tx, STM32F071C8Ux, STM32F071CBTx, STM32F071CBUx, STM32F071CBYx, STM32F071RBTx, STM32F071V8Hx, STM32F071V8Tx, STM32F071VBHx, STM32F071VBTx, STM32F072C8Tx, STM32F072C8Ux, STM32F072CBTx, STM32F072CBUx, STM32F072CBYx, STM32F072R8Tx, STM32F072RBHx, STM32F072RBIx, STM32F072RBTx, STM32F072V8Hx, STM32F072V8Tx, STM32F072VBHx, STM32F072VBTx, STM32F078CBTx, STM32F078CBUx, STM32F078CBYx, STM32F078RBHx, STM32F078RBTx, STM32F078VBHx, STM32F078VBTx, STM32F091CBTx, STM32F091CBUx, STM32F091CCTx, STM32F091CCUx, STM32F091RBTx, STM32F091RCHx, STM32F091RCTx, STM32F091RCYx, STM32F091VBTx, STM32F091VCHx, STM32F091VCTx, STM32F098CCTx, STM32F098CCUx, STM32F098RCHx, STM32F098RCTx, STM32F098RCYx, STM32F098VCHx, STM32F098VCTx, STM32F100C4Tx, STM32F100C6Tx, STM32F100C8Tx, STM32F100CBTx, STM32F100R4Hx, STM32F100R4Tx, STM32F100R6Hx, STM32F100R6Tx, STM32F100R8Hx, STM32F100R8Tx, STM32F100RBHx, STM32F100RBTx, STM32F100RCTx, STM32F100RDTx, STM32F100RETx, STM32F100V8Tx, STM32F100VBTx, STM32F100VCTx, STM32F100VDTx, STM32F100VETx, STM32F100ZCTx, STM32F100ZDTx, STM32F100ZETx, STM32F101C4Tx, STM32F101C6Tx, STM32F101C8Tx, STM32F101C8Ux, STM32F101CBTx, STM32F101CBUx, STM32F101R4Tx, STM32F101R6Tx, STM32F101R8Tx, STM32F101RBHx, STM32F101RBTx, STM32F101RCTx, STM32F101RDTx, STM32F101RETx, STM32F101RFTx, STM32F101RGTx, STM32F101T4Ux, STM32F101T6Ux, STM32F101T8Ux, STM32F101TBUx, STM32F101V8Tx, STM32F101VBTx, STM32F101VCTx, STM32F101VDTx, STM32F101VETx, STM32F101VFTx, STM32F101VGTx, STM32F101ZCTx, STM32F101ZDTx, STM32F101ZETx, STM32F101ZFTx, STM32F101ZGTx, STM32F102C4Tx, STM32F102C6Tx, STM32F102C8Tx, STM32F102CBTx, STM32F102R4Tx, STM32F102R6Tx, STM32F102R8Tx, STM32F102RBTx, STM32F103C4Tx, STM32F103C6Tx, STM32F103C6Ux, STM32F103C8Tx, STM32F103CBTx, STM32F103CBUx, STM32F103R4Hx, STM32F103R4Tx, STM32F103R6Hx, STM32F103R6Tx, STM32F103R8Hx, STM32F103R8Tx, STM32F103RBHx, STM32F103RBTx, STM32F103RCTx, STM32F103RCYx, STM32F103RDTx, STM32F103RDYx, STM32F103RETx, STM32F103REYx, STM32F103RFTx, STM32F103RGTx, STM32F103T4Ux, STM32F103T6Ux, STM32F103T8Ux, STM32F103TBUx, STM32F103V8Hx, STM32F103V8Tx, STM32F103VBHx, STM32F103VBIx, STM32F103VBTx, STM32F103VCHx, STM32F103VCTx, STM32F103VDHx, STM32F103VDTx, STM32F103VEHx, STM32F103VETx, STM32F103VFTx, STM32F103VGTx, STM32F103ZCHx, STM32F103ZCTx, STM32F103ZDHx, STM32F103ZDTx, STM32F103ZEHx, STM32F103ZETx, STM32F103ZFHx, STM32F103ZFTx, STM32F103ZGHx, STM32F103ZGTx, STM32F105R8Tx, STM32F105RBTx, STM32F105RCTx, STM32F105V8Hx, STM32F105V8Tx, STM32F105VBHx, STM32F105VBTx, STM32F105VCTx, STM32F107RBTx, STM32F107RCTx, STM32F107VBTx, STM32F107VCHx, STM32F107VCTx, STM32F205RBTx, STM32F205RCTx, STM32F205RETx, STM32F205REYx, STM32F205RFTx, STM32F205RGEx, STM32F205RGTx, STM32F205RGYx, STM32F205VBTx, STM32F205VCTx, STM32F205VETx, STM32F205VFTx, STM32F205VGTx, STM32F205ZCTx, STM32F205ZETx, STM32F205ZFTx, STM32F205ZGTx, STM32F207ICHx, STM32F207ICTx, STM32F207IEHx, STM32F207IETx, STM32F207IFHx, STM32F207IFTx, STM32F207IGHx, STM32F207IGTx, STM32F207VCTx, STM32F207VETx, STM32F207VFTx, STM32F207VGTx, STM32F207ZCTx, STM32F207ZETx, STM32F207ZFTx, STM32F207ZGTx, STM32F215RETx, STM32F215RGTx, STM32F215VETx, STM32F215VGTx, STM32F215ZETx, STM32F215ZGTx, STM32F217IEHx, STM32F217IETx, STM32F217IGHx, STM32F217IGTx, STM32F217VETx, STM32F217VGTx, STM32F217ZETx, STM32F217ZGTx, STM32F301C6Tx, STM32F301C8Tx, STM32F301C8Yx, STM32F301K6Tx, STM32F301K6Ux, STM32F301K8Tx, STM32F301K8Ux, STM32F301R6Tx, STM32F301R8Tx, STM32F302C6Tx, STM32F302C8Tx, STM32F302C8Yx, STM32F302CBTx, STM32F302CCTx, STM32F302K6Ux, STM32F302K8Ux, STM32F302R6Tx, STM32F302R8Tx, STM32F302RBTx, STM32F302RCTx, STM32F302RDTx, STM32F302RETx, STM32F302VBTx, STM32F302VCTx, STM32F302VCYx, STM32F302VDHx, STM32F302VDTx, STM32F302VEHx, STM32F302VETx, STM32F302ZDTx, STM32F302ZETx, STM32F303C6Tx, STM32F303C8Tx, STM32F303C8Yx, STM32F303CBTx, STM32F303CCTx, STM32F303K6Tx, STM32F303K6Ux, STM32F303K8Tx, STM32F303K8Ux, STM32F303R6Tx, STM32F303R8Tx, STM32F303RBTx, STM32F303RCTx, STM32F303RDTx, STM32F303RETx, STM32F303VBTx, STM32F303VCTx, STM32F303VCYx, STM32F303VDHx, STM32F303VDTx, STM32F303VEHx, STM32F303VETx, STM32F303VEYx, STM32F303ZDTx, STM32F303ZETx, STM32F318C8Tx, STM32F318C8Yx, STM32F318K8Ux, STM32F328C8Tx, STM32F334C4Tx, STM32F334C6Tx, STM32F334C8Tx, STM32F334C8Yx, STM32F334K4Tx, STM32F334K4Ux, STM32F334K6Tx, STM32F334K6Ux, STM32F334K8Tx, STM32F334K8Ux, STM32F334R6Tx, STM32F334R8Tx, STM32F358CCTx, STM32F358RCTx, STM32F358VCTx, STM32F373C8Tx, STM32F373CBTx, STM32F373CCTx, STM32F373R8Tx, STM32F373RBTx, STM32F373RCTx, STM32F373V8Hx, STM32F373V8Tx, STM32F373VBHx, STM32F373VBTx, STM32F373VCHx, STM32F373VCTx, STM32F378CCTx, STM32F378RCTx, STM32F378RCYx, STM32F378VCHx, STM32F378VCTx, STM32F398VETx, STM32F401CBUx, STM32F401CBYx, STM32F401CCFx, STM32F401CCUx, STM32F401CCYx, STM32F401CDUx, STM32F401CDYx, STM32F401CEUx, STM32F401CEYx, STM32F401RBTx, STM32F401RCTx, STM32F401RDTx, STM32F401RETx, STM32F401VBHx, STM32F401VBTx, STM32F401VCHx, STM32F401VCTx, STM32F401VDHx, STM32F401VDTx, STM32F401VEHx, STM32F401VETx, STM32F405OEYx, STM32F405OGYx, STM32F405RGTx, STM32F405VGTx, STM32F405ZGTx, STM32F407IEHx, STM32F407IETx, STM32F407IGHx, STM32F407IGTx, STM32F407VETx, STM32F407VGTx, STM32F407ZETx, STM32F407ZGTx, STM32F410C8Tx, STM32F410C8Ux, STM32F410CBTx, STM32F410CBUx, STM32F410R8Ix, STM32F410R8Tx, STM32F410RBIx, STM32F410RBTx, STM32F410T8Yx, STM32F410TBYx, STM32F411CCUx, STM32F411CCYx, STM32F411CEUx, STM32F411CEYx, STM32F411RCTx, STM32F411RETx, STM32F411VCHx, STM32F411VCTx, STM32F411VEHx, STM32F411VETx, STM32F412CEUx, STM32F412CGUx, STM32F412RETx, STM32F412REYx, STM32F412REYxP, STM32F412RGTx, STM32F412RGYx, STM32F412RGYxP, STM32F412VEHx, STM32F412VETx, STM32F412VGHx, STM32F412VGTx, STM32F412ZEJx, STM32F412ZETx, STM32F412ZGJx, STM32F412ZGTx, STM32F413CGUx, STM32F413CHUx, STM32F413MGYx, STM32F413MHYx, STM32F413RGTx, STM32F413RHTx, STM32F413VGHx, STM32F413VGTx, STM32F413VHHx, STM32F413VHTx, STM32F413ZGJx, STM32F413ZGTx, STM32F413ZHJx, STM32F413ZHTx, STM32F415OGYx, STM32F415RGTx, STM32F415VGTx, STM32F415ZGTx, STM32F417IEHx, STM32F417IETx, STM32F417IGHx, STM32F417IGTx, STM32F417VETx, STM32F417VGTx, STM32F417ZETx, STM32F417ZGTx, STM32F423CHUx, STM32F423MHYx, STM32F423RHTx, STM32F423VHHx, STM32F423VHTx, STM32F423ZHJx, STM32F423ZHTx, STM32F427AGHx, STM32F427AIHx, STM32F427IGHx, STM32F427IGTx, STM32F427IIHx, STM32F427IITx, STM32F427VGTx, STM32F427VITx, STM32F427ZGTx, STM32F427ZITx, STM32F429AGHx, STM32F429AIHx, STM32F429BETx, STM32F429BGTx, STM32F429BITx, STM32F429IEHx, STM32F429IETx, STM32F429IGHx, STM32F429IGTx, STM32F429IIHx, STM32F429IITx, STM32F429NEHx, STM32F429NGHx, STM32F429NIHx, STM32F429VETx, STM32F429VGTx, STM32F429VITx, STM32F429ZETx, STM32F429ZGTx, STM32F429ZGYx, STM32F429ZITx, STM32F429ZIYx, STM32F437AIHx, STM32F437IGHx, STM32F437IGTx, STM32F437IIHx, STM32F437IITx, STM32F437VGTx, STM32F437VITx, STM32F437ZGTx, STM32F437ZITx, STM32F439AIHx, STM32F439BGTx, STM32F439BITx, STM32F439IGHx, STM32F439IGTx, STM32F439IIHx, STM32F439IITx, STM32F439NGHx, STM32F439NIHx, STM32F439VGTx, STM32F439VITx, STM32F439ZGTx, STM32F439ZGYx, STM32F439ZITx, STM32F439ZIYx, STM32F446MCYx, STM32F446MEYx, STM32F446RCTx, STM32F446RETx, STM32F446VCTx, STM32F446VETx, STM32F446ZCHx, STM32F446ZCJx, STM32F446ZCTx, STM32F446ZEHx, STM32F446ZEJx, STM32F446ZETx, STM32F469AEHx, STM32F469AEYx, STM32F469AGHx, STM32F469AGYx, STM32F469AIHx, STM32F469AIYx, STM32F469BETx, STM32F469BGTx, STM32F469BITx, STM32F469IEHx, STM32F469IETx, STM32F469IGHx, STM32F469IGTx, STM32F469IIHx, STM32F469IITx, STM32F469NEHx, STM32F469NGHx, STM32F469NIHx, STM32F469VETx, STM32F469VGTx, STM32F469VITx, STM32F469ZETx, STM32F469ZGTx, STM32F469ZITx, STM32F479AGHx, STM32F479AGYx, STM32F479AIHx, STM32F479AIYx, STM32F479BGTx, STM32F479BITx, STM32F479IGHx, STM32F479IGTx, STM32F479IIHx, STM32F479IITx, STM32F479NGHx, STM32F479NIHx, STM32F479VGTx, STM32F479VITx, STM32F479ZGTx, STM32F479ZITx, STM32F722ICKx, STM32F722ICTx, STM32F722IEKx, STM32F722IETx, STM32F722RCTx, STM32F722RETx, STM32F722VCTx, STM32F722VETx, STM32F722ZCTx, STM32F722ZETx, STM32F723ICKx, STM32F723ICTx, STM32F723IEKx, STM32F723IETx, STM32F723VCTx, STM32F723VCYx, STM32F723VETx, STM32F723VEYx, STM32F723ZCIx, STM32F723ZCTx, STM32F723ZEIx, STM32F723ZETx, STM32F730I8Kx, STM32F730R8Tx, STM32F730V8Tx, STM32F730Z8Tx, STM32F732IEKx, STM32F732IETx, STM32F732RETx, STM32F732VETx, STM32F732ZETx, STM32F733IEKx, STM32F733IETx, STM32F733VETx, STM32F733VEYx, STM32F733ZEIx, STM32F733ZETx, STM32F745IEKx, STM32F745IETx, STM32F745IGKx, STM32F745IGTx, STM32F745VEHx, STM32F745VETx, STM32F745VGHx, STM32F745VGTx, STM32F745ZETx, STM32F745ZGTx, STM32F746BETx, STM32F746BGTx, STM32F746IEKx, STM32F746IETx, STM32F746IGKx, STM32F746IGTx, STM32F746NEHx, STM32F746NGHx, STM32F746VEHx, STM32F746VETx, STM32F746VGHx, STM32F746VGTx, STM32F746ZETx, STM32F746ZEYx, STM32F746ZGTx, STM32F746ZGYx, STM32F750N8Hx, STM32F750V8Tx, STM32F750Z8Tx, STM32F756BGTx, STM32F756IGKx, STM32F756IGTx, STM32F756NGHx, STM32F756VGHx, STM32F756VGTx, STM32F756ZGTx, STM32F756ZGYx, STM32F765BGTx, STM32F765BITx, STM32F765IGKx, STM32F765IGTx, STM32F765IIKx, STM32F765IITx, STM32F765NGHx, STM32F765NIHx, STM32F765VGHx, STM32F765VGTx, STM32F765VIHx, STM32F765VITx, STM32F765ZGTx, STM32F765ZITx, STM32F767BGTx, STM32F767BITx, STM32F767IGKx, STM32F767IGTx, STM32F767IIKx, STM32F767IITx, STM32F767NGHx, STM32F767NIHx, STM32F767VGHx, STM32F767VGTx, STM32F767VIHx, STM32F767VITx, STM32F767ZGTx, STM32F767ZITx, STM32F768AIYx, STM32F769AGYx, STM32F769AIYx, STM32F769BGTx, STM32F769BITx, STM32F769IGTx, STM32F769IITx, STM32F769NGHx, STM32F769NIHx, STM32F777BITx, STM32F777IIKx, STM32F777IITx, STM32F777NIHx, STM32F777VIHx, STM32F777VITx, STM32F777ZITx, STM32F778AIYx, STM32F779AIYx, STM32F779BITx, STM32F779IITx, STM32F779NIHx, STM32G4A1CETx, STM32G4A1CEUx, STM32G4A1KEUx, STM32G4A1MESx, STM32G4A1METx, STM32G4A1REIx, STM32G4A1RETx, STM32G4A1REYx, STM32G4A1VETx, STM32G030C6Tx, STM32G030C8Tx, STM32G030F6Px, STM32G030J6Mx, STM32G030K6Tx, STM32G030K8Tx, STM32G031C4Tx, STM32G031C4Ux, STM32G031C6Tx, STM32G031C6Ux, STM32G031C8Tx, STM32G031C8Ux, STM32G031F4Px, STM32G031F6Px, STM32G031F8Px, STM32G031G4Ux, STM32G031G6Ux, STM32G031G8Ux, STM32G031J4Mx, STM32G031J6Mx, STM32G031K4Tx, STM32G031K4Ux, STM32G031K6Tx, STM32G031K6Ux, STM32G031K8Tx, STM32G031K8Ux, STM32G031Y8Yx, STM32G041C6Tx, STM32G041C6Ux, STM32G041C8Tx, STM32G041C8Ux, STM32G041F6Px, STM32G041F8Px, STM32G041G6Ux, STM32G041G8Ux, STM32G041J6Mx, STM32G041K6Tx, STM32G041K6Ux, STM32G041K8Tx, STM32G041K8Ux, STM32G041Y8Yx, STM32G070CBTx, STM32G070KBTx, STM32G070RBTx, STM32G071C6Tx, STM32G071C6Ux, STM32G071C8Tx, STM32G071C8Ux, STM32G071CBTx, STM32G071CBUx, STM32G071EBYx, STM32G071G6Ux, STM32G071G8Ux, STM32G071G8UxN, STM32G071GBUx, STM32G071GBUxN, STM32G071K6Tx, STM32G071K6Ux, STM32G071K8Tx, STM32G071K8TxN, STM32G071K8Ux, STM32G071K8UxN, STM32G071KBTx, STM32G071KBTxN, STM32G071KBUx, STM32G071KBUxN, STM32G071R6Tx, STM32G071R8Tx, STM32G071RBIx, STM32G071RBTx, STM32G081CBTx, STM32G081CBUx, STM32G081EBYx, STM32G081GBUx, STM32G081GBUxN, STM32G081KBTx, STM32G081KBTxN, STM32G081KBUx, STM32G081KBUxN, STM32G081RBIx, STM32G081RBTx, STM32G431C6Tx, STM32G431C6Ux, STM32G431C8Tx, STM32G431C8Ux, STM32G431CBTx, STM32G431CBUx, STM32G431CBYx, STM32G431K6Tx, STM32G431K6Ux, STM32G431K8Tx, STM32G431K8Ux, STM32G431KBTx, STM32G431KBUx, STM32G431M6Tx, STM32G431M8Tx, STM32G431MBTx, STM32G431R6Ix, STM32G431R6Tx, STM32G431R8Ix, STM32G431R8Tx, STM32G431RBIx, STM32G431RBTx, STM32G431V6Tx, STM32G431V8Tx, STM32G431VBTx, STM32G441CBTx, STM32G441CBUx, STM32G441CBYx, STM32G441KBTx, STM32G441KBUx, STM32G441MBTx, STM32G441RBIx, STM32G441RBTx, STM32G441VBTx, STM32G471CCTx, STM32G471CCUx, STM32G471CETx, STM32G471CEUx, STM32G471MCTx, STM32G471METx, STM32G471MEYx, STM32G471QCTx, STM32G471QETx, STM32G471RCTx, STM32G471RETx, STM32G471VCHx, STM32G471VCIx, STM32G471VCTx, STM32G471VEHx, STM32G471VEIx, STM32G471VETx, STM32G473CBTx, STM32G473CBUx, STM32G473CCTx, STM32G473CCUx, STM32G473CETx, STM32G473CEUx, STM32G473MBTx, STM32G473MCTx, STM32G473METx, STM32G473MEYx, STM32G473PBIx, STM32G473PCIx, STM32G473PEIx, STM32G473QBTx, STM32G473QCTx, STM32G473QETx, STM32G473RBTx, STM32G473RCTx, STM32G473RETx, STM32G473VBHx, STM32G473VBIx, STM32G473VBTx, STM32G473VCHx, STM32G473VCIx, STM32G473VCTx, STM32G473VEHx, STM32G473VEIx, STM32G473VETx, STM32G474CBTx, STM32G474CBUx, STM32G474CCTx, STM32G474CCUx, STM32G474CETx, STM32G474CEUx, STM32G474MBTx, STM32G474MCTx, STM32G474METx, STM32G474MEYx, STM32G474PBIx, STM32G474PCIx, STM32G474PEIx, STM32G474QBTx, STM32G474QCTx, STM32G474QETx, STM32G474RBTx, STM32G474RCTx, STM32G474RETx, STM32G474VBHx, STM32G474VBIx, STM32G474VBTx, STM32G474VCHx, STM32G474VCIx, STM32G474VCTx, STM32G474VEHx, STM32G474VEIx, STM32G474VETx, STM32G483CETx, STM32G483CEUx, STM32G483METx, STM32G483MEYx, STM32G483PEIx, STM32G483QETx, STM32G483RETx, STM32G483VEHx, STM32G483VEIx, STM32G483VETx, STM32G484CETx, STM32G484CEUx, STM32G484METx, STM32G484MEYx, STM32G484PEIx, STM32G484QETx, STM32G484RETx, STM32G484VEHx, STM32G484VEIx, STM32G484VETx, STM32G491CCTx, STM32G491CCUx, STM32G491CETx, STM32G491CEUx, STM32G491KCUx, STM32G491KEUx, STM32G491MCSx, STM32G491MCTx, STM32G491MESx, STM32G491METx, STM32G491RCIx, STM32G491RCTx, STM32G491REIx, STM32G491RETx, STM32G491REYx, STM32G491VCTx, STM32G491VETx, STM32GBK1CBTx, STM32H7A3AGIxQ, STM32H7A3AIIxQ, STM32H7A3IGKx, STM32H7A3IGKxQ, STM32H7A3IGTx, STM32H7A3IGTxQ, STM32H7A3IIKx, STM32H7A3IIKxQ, STM32H7A3IITx, STM32H7A3IITxQ, STM32H7A3LGHxQ, STM32H7A3LIHxQ, STM32H7A3NGHx, STM32H7A3NIHx, STM32H7A3QIYxQ, STM32H7A3RGTx, STM32H7A3RITx, STM32H7A3VGHx, STM32H7A3VGHxQ, STM32H7A3VGTx, STM32H7A3VGTxQ, STM32H7A3VIHx, STM32H7A3VIHxQ, STM32H7A3VITx, STM32H7A3VITxQ, STM32H7A3ZGTx, STM32H7A3ZGTxQ, STM32H7A3ZITx, STM32H7A3ZITxQ, STM32H7B3AIIxQ, STM32H7B3IIKx, STM32H7B3IIKxQ, STM32H7B3IITx, STM32H7B3IITxQ, STM32H7B3LIHxQ, STM32H7B3NIHx, STM32H7B3QIYxQ, STM32H7B3RITx, STM32H7B3VIHx, STM32H7B3VIHxQ, STM32H7B3VITx, STM32H7B3VITxQ, STM32H7B3ZITx, STM32H7B3ZITxQ, STM32H7B0ABIxQ, STM32H7B0IBKxQ, STM32H7B0IBTx, STM32H7B0RBTx, STM32H7B0VBTx, STM32H7B0ZBTx, STM32H723VEHx, STM32H723VETx, STM32H723VGHx, STM32H723VGTx, STM32H723ZEIx, STM32H723ZETx, STM32H723ZGIx, STM32H723ZGTx, STM32H725AEIx, STM32H725AGIx, STM32H725IEKx, STM32H725IETx, STM32H725IGKx, STM32H725IGTx, STM32H725REVx, STM32H725RGVx, STM32H725VETx, STM32H725VGTx, STM32H725VGYx, STM32H725ZETx, STM32H725ZGTx, STM32H730ABIxQ, STM32H730IBKxQ, STM32H730IBTxQ, STM32H730VBHx, STM32H730VBTx, STM32H730ZBIx, STM32H730ZBTx, STM32H733VGHx, STM32H733VGTx, STM32H733ZGIx, STM32H733ZGTx, STM32H735AGIx, STM32H735IGKx, STM32H735IGTx, STM32H735RGVx, STM32H735VGTx, STM32H735VGYx, STM32H735ZGTx, STM32H742AGIx, STM32H742AIIx, STM32H742BGTx, STM32H742BITx, STM32H742IGKx, STM32H742IGTx, STM32H742IIKx, STM32H742IITx, STM32H742VGHx, STM32H742VGTx, STM32H742VIHx, STM32H742VITx, STM32H742XGHx, STM32H742XIHx, STM32H742ZGTx, STM32H742ZITx, STM32H743AGIx, STM32H743AIIx, STM32H743BGTx, STM32H743BITx, STM32H743IGKx, STM32H743IGTx, STM32H743IIKx, STM32H743IITx, STM32H743VGHx, STM32H743VGTx, STM32H743VIHx, STM32H743VITx, STM32H743XGHx, STM32H743XIHx, STM32H743ZGTx, STM32H743ZITx, STM32H745BGTx, STM32H745BITx, STM32H745IGKx, STM32H745IGTx, STM32H745IIKx, STM32H745IITx, STM32H745XGHx, STM32H745XIHx, STM32H745ZGTx, STM32H745ZITx, STM32H747AGIx, STM32H747AIIx, STM32H747BGTx, STM32H747BITx, STM32H747IGTx, STM32H747IITx, STM32H747XGHx, STM32H747XIHx, STM32H747ZIYx, STM32H750IBKx, STM32H750IBTx, STM32H750VBTx, STM32H750XBHx, STM32H750ZBTx, STM32H753AIIx, STM32H753BITx, STM32H753IIKx, STM32H753IITx, STM32H753VIHx, STM32H753VITx, STM32H753XIHx, STM32H753ZITx, STM32H755BITx, STM32H755IIKx, STM32H755IITx, STM32H755XIHx, STM32H755ZITx, STM32H757AIIx, STM32H757BITx, STM32H757IITx, STM32H757XIHx, STM32H757ZIYx, STM32L4A6AGIx, STM32L4A6AGIxP, STM32L4A6QGIx, STM32L4A6QGIxP, STM32L4A6RGTx, STM32L4A6RGTxP, STM32L4A6VGTx, STM32L4A6VGTxP, STM32L4A6VGYx, STM32L4A6VGYxP, STM32L4A6ZGTx, STM32L4A6ZGTxP, STM32L4P5AEIx, STM32L4P5AGIx, STM32L4P5AGIxP, STM32L4P5CETx, STM32L4P5CEUx, STM32L4P5CGTx, STM32L4P5CGTxP, STM32L4P5CGUx, STM32L4P5CGUxP, STM32L4P5QEIx, STM32L4P5QGIx, STM32L4P5QGIxP, STM32L4P5RETx, STM32L4P5RGTx, STM32L4P5RGTxP, STM32L4P5VETx, STM32L4P5VEYx, STM32L4P5VGTx, STM32L4P5VGTxP, STM32L4P5VGYx, STM32L4P5VGYxP, STM32L4P5ZETx, STM32L4P5ZGTx, STM32L4P5ZGTxP, STM32L4Q5AGIx, STM32L4Q5CGTx, STM32L4Q5CGUx, STM32L4Q5QGIx, STM32L4Q5RGTx, STM32L4Q5VGTx, STM32L4Q5VGYx, STM32L4Q5ZGTx, STM32L4R5AGIx, STM32L4R5AIIx, STM32L4R5QGIx, STM32L4R5QIIx, STM32L4R5VGTx, STM32L4R5VITx, STM32L4R5ZGTx, STM32L4R5ZGYx, STM32L4R5ZITx, STM32L4R5ZITxP, STM32L4R5ZIYx, STM32L4R7AIIx, STM32L4R7VITx, STM32L4R7ZITx, STM32L4R9AGIx, STM32L4R9AIIx, STM32L4R9VGTx, STM32L4R9VITx, STM32L4R9ZGJx, STM32L4R9ZGTx, STM32L4R9ZGYx, STM32L4R9ZIJx, STM32L4R9ZITx, STM32L4R9ZIYx, STM32L4R9ZIYxP, STM32L4S5AIIx, STM32L4S5QIIx, STM32L4S5VITx, STM32L4S5ZITx, STM32L4S5ZIYx, STM32L4S7AIIx, STM32L4S7VITx, STM32L4S7ZITx, STM32L4S9AIIx, STM32L4S9VITx, STM32L4S9ZIJx, STM32L4S9ZITx, STM32L4S9ZIYx, STM32L010C6Tx, STM32L010F4Px, STM32L010K4Tx, STM32L010K8Tx, STM32L010R8Tx, STM32L010RBTx, STM32L011D3Px, STM32L011D4Px, STM32L011E3Yx, STM32L011E4Yx, STM32L011F3Px, STM32L011F3Ux, STM32L011F4Px, STM32L011F4Ux, STM32L011G3Ux, STM32L011G4Ux, STM32L011K3Tx, STM32L011K3Ux, STM32L011K4Tx, STM32L011K4Ux, STM32L021D4Px, STM32L021F4Px, STM32L021F4Ux, STM32L021G4Ux, STM32L021K4Tx, STM32L021K4Ux, STM32L031C4Tx, STM32L031C4Ux, STM32L031C6Tx, STM32L031C6Ux, STM32L031E4Yx, STM32L031E6Yx, STM32L031F4Px, STM32L031F6Px, STM32L031G4Ux, STM32L031G6Ux, STM32L031G6UxS, STM32L031K4Tx, STM32L031K4Ux, STM32L031K6Tx, STM32L031K6Ux, STM32L041C4Tx, STM32L041C6Tx, STM32L041C6Ux, STM32L041E6Yx, STM32L041F6Px, STM32L041G6Ux, STM32L041G6UxS, STM32L041K6Tx, STM32L041K6Ux, STM32L051C6Tx, STM32L051C6Ux, STM32L051C8Tx, STM32L051C8Ux, STM32L051K6Tx, STM32L051K6Ux, STM32L051K8Tx, STM32L051K8Ux, STM32L051R6Hx, STM32L051R6Tx, STM32L051R8Hx, STM32L051R8Tx, STM32L051T6Yx, STM32L051T8Yx, STM32L052C6Tx, STM32L052C6Ux, STM32L052C8Tx, STM32L052C8Ux, STM32L052K6Tx, STM32L052K6Ux, STM32L052K8Tx, STM32L052K8Ux, STM32L052R6Hx, STM32L052R6Tx, STM32L052R8Hx, STM32L052R8Tx, STM32L052T6Yx, STM32L052T8Fx, STM32L052T8Yx, STM32L053C6Tx, STM32L053C6Ux, STM32L053C8Tx, STM32L053C8Ux, STM32L053R6Hx, STM32L053R6Tx, STM32L053R8Hx, STM32L053R8Tx, STM32L062C8Ux, STM32L062K8Tx, STM32L062K8Ux, STM32L063C8Tx, STM32L063C8Ux, STM32L063R8Tx, STM32L071C8Tx, STM32L071C8Ux, STM32L071CBTx, STM32L071CBUx, STM32L071CBYx, STM32L071CZTx, STM32L071CZUx, STM32L071CZYx, STM32L071K8Ux, STM32L071KBTx, STM32L071KBUx, STM32L071KZTx, STM32L071KZUx, STM32L071RBHx, STM32L071RBTx, STM32L071RZHx, STM32L071RZTx, STM32L071V8Ix, STM32L071V8Tx, STM32L071VBIx, STM32L071VBTx, STM32L071VZIx, STM32L071VZTx, STM32L072CBTx, STM32L072CBUx, STM32L072CBYx, STM32L072CZEx, STM32L072CZTx, STM32L072CZUx, STM32L072CZYx, STM32L072KBTx, STM32L072KBUx, STM32L072KZTx, STM32L072KZUx, STM32L072RBHx, STM32L072RBIx, STM32L072RBTx, STM32L072RZHx, STM32L072RZIx, STM32L072RZTx, STM32L072V8Ix, STM32L072V8Tx, STM32L072VBIx, STM32L072VBTx, STM32L072VZIx, STM32L072VZTx, STM32L073CBTx, STM32L073CBUx, STM32L073CZTx, STM32L073CZUx, STM32L073RBHx, STM32L073RBTx, STM32L073RZHx, STM32L073RZIx, STM32L073RZTx, STM32L073V8Ix, STM32L073V8Tx, STM32L073VBIx, STM32L073VBTx, STM32L073VZIx, STM32L073VZTx, STM32L081CBTx, STM32L081CZTx, STM32L081CZUx, STM32L081KZTx, STM32L081KZUx, STM32L082CZUx, STM32L082CZYx, STM32L082KBTx, STM32L082KBUx, STM32L082KZTx, STM32L082KZUx, STM32L083CBTx, STM32L083CZTx, STM32L083CZUx, STM32L083RBHx, STM32L083RBTx, STM32L083RZHx, STM32L083RZTx, STM32L083V8Ix, STM32L083V8Tx, STM32L083VBIx, STM32L083VBTx, STM32L083VZIx, STM32L083VZTx, STM32L100C6Ux, STM32L100C6UxA, STM32L100R8Tx, STM32L100R8TxA, STM32L100RBTx, STM32L100RBTxA, STM32L100RCTx, STM32L151C6Tx, STM32L151C6TxA, STM32L151C6Ux, STM32L151C6UxA, STM32L151C8Tx, STM32L151C8TxA, STM32L151C8Ux, STM32L151C8UxA, STM32L151CBTx, STM32L151CBTxA, STM32L151CBUx, STM32L151CBUxA, STM32L151CCTx, STM32L151CCUx, STM32L151QCHx, STM32L151QDHx, STM32L151QEHx, STM32L151R6Hx, STM32L151R6HxA, STM32L151R6Tx, STM32L151R6TxA, STM32L151R8Hx, STM32L151R8HxA, STM32L151R8Tx, STM32L151R8TxA, STM32L151RBHx, STM32L151RBHxA, STM32L151RBTx, STM32L151RBTxA, STM32L151RCTx, STM32L151RCTxA, STM32L151RCYx, STM32L151RDTx, STM32L151RDYx, STM32L151RETx, STM32L151UCYx, STM32L151V8Hx, STM32L151V8HxA, STM32L151V8Tx, STM32L151V8TxA, STM32L151VBHx, STM32L151VBHxA, STM32L151VBTx, STM32L151VBTxA, STM32L151VCHx, STM32L151VCTx, STM32L151VCTxA, STM32L151VDTx, STM32L151VDTxX, STM32L151VDYxX, STM32L151VETx, STM32L151VEYx, STM32L151ZCTx, STM32L151ZDTx, STM32L151ZETx, STM32L152C6Tx, STM32L152C6TxA, STM32L152C6Ux, STM32L152C6UxA, STM32L152C8Tx, STM32L152C8TxA, STM32L152C8Ux, STM32L152C8UxA, STM32L152CBTx, STM32L152CBTxA, STM32L152CBUx, STM32L152CBUxA, STM32L152CCTx, STM32L152CCUx, STM32L152QCHx, STM32L152QDHx, STM32L152QEHx, STM32L152R6Hx, STM32L152R6HxA, STM32L152R6Tx, STM32L152R6TxA, STM32L152R8Hx, STM32L152R8HxA, STM32L152R8Tx, STM32L152R8TxA, STM32L152RBHx, STM32L152RBHxA, STM32L152RBTx, STM32L152RBTxA, STM32L152RCTx, STM32L152RCTxA, STM32L152RDTx, STM32L152RDYx, STM32L152RETx, STM32L152UCYx, STM32L152V8Hx, STM32L152V8HxA, STM32L152V8Tx, STM32L152V8TxA, STM32L152VBHx, STM32L152VBHxA, STM32L152VBTx, STM32L152VBTxA, STM32L152VCHx, STM32L152VCTx, STM32L152VCTxA, STM32L152VDTx, STM32L152VDTxX, STM32L152VETx, STM32L152VEYx, STM32L152ZCTx, STM32L152ZDTx, STM32L152ZETx, STM32L162QCHx, STM32L162QDHx, STM32L162RCTx, STM32L162RCTxA, STM32L162RDTx, STM32L162RDYx, STM32L162RETx, STM32L162VCHx, STM32L162VCTx, STM32L162VCTxA, STM32L162VDTx, STM32L162VDYxX, STM32L162VETx, STM32L162VEYx, STM32L162ZCTx, STM32L162ZDTx, STM32L162ZETx, STM32L412C8Tx, STM32L412C8Ux, STM32L412CBTx, STM32L412CBTxP, STM32L412CBUx, STM32L412CBUxP, STM32L412K8Tx, STM32L412K8Ux, STM32L412KBTx, STM32L412KBUx, STM32L412R8Ix, STM32L412R8Tx, STM32L412RBIx, STM32L412RBIxP, STM32L412RBTx, STM32L412RBTxP, STM32L412T8Yx, STM32L412TBYx, STM32L412TBYxP, STM32L422CBTx, STM32L422CBUx, STM32L422KBTx, STM32L422KBUx, STM32L422RBIx, STM32L422RBTx, STM32L422TBYx, STM32L431CBTx, STM32L431CBUx, STM32L431CBYx, STM32L431CCTx, STM32L431CCUx, STM32L431CCYx, STM32L431KBUx, STM32L431KCUx, STM32L431RBIx, STM32L431RBTx, STM32L431RBYx, STM32L431RCIx, STM32L431RCTx, STM32L431RCYx, STM32L431VCIx, STM32L431VCTx, STM32L432KBUx, STM32L432KCUx, STM32L433CBTx, STM32L433CBUx, STM32L433CBYx, STM32L433CCTx, STM32L433CCUx, STM32L433CCYx, STM32L433RBIx, STM32L433RBTx, STM32L433RBYx, STM32L433RCIx, STM32L433RCTx, STM32L433RCTxP, STM32L433RCYx, STM32L433VCIx, STM32L433VCTx, STM32L442KCUx, STM32L443CCTx, STM32L443CCUx, STM32L443CCYx, STM32L443RCIx, STM32L443RCTx, STM32L443RCYx, STM32L443VCIx, STM32L443VCTx, STM32L451CCUx, STM32L451CEUx, STM32L451RCIx, STM32L451RCTx, STM32L451RCYx, STM32L451REIx, STM32L451RETx, STM32L451REYx, STM32L451VCIx, STM32L451VCTx, STM32L451VEIx, STM32L451VETx, STM32L452CCUx, STM32L452CEUx, STM32L452RCIx, STM32L452RCTx, STM32L452RCYx, STM32L452REIx, STM32L452RETx, STM32L452RETxP, STM32L452REYx, STM32L452VCIx, STM32L452VCTx, STM32L452VEIx, STM32L452VETx, STM32L462CEUx, STM32L462REIx, STM32L462RETx, STM32L462REYx, STM32L462VEIx, STM32L462VETx, STM32L471QEIx, STM32L471QGIx, STM32L471RETx, STM32L471RGTx, STM32L471VETx, STM32L471VGTx, STM32L471ZEJx, STM32L471ZETx, STM32L471ZGJx, STM32L471ZGTx, STM32L475RCTx, STM32L475RETx, STM32L475RGTx, STM32L475VCTx, STM32L475VETx, STM32L475VGTx, STM32L476JEYx, STM32L476JGYx, STM32L476JGYxP, STM32L476MEYx, STM32L476MGYx, STM32L476QEIx, STM32L476QGIx, STM32L476RCTx, STM32L476RETx, STM32L476RGTx, STM32L476VCTx, STM32L476VETx, STM32L476VGTx, STM32L476ZETx, STM32L476ZGJx, STM32L476ZGTx, STM32L476ZGTxP, STM32L485JCYx, STM32L485JEYx, STM32L486JGYx, STM32L486QGIx, STM32L486RGTx, STM32L486VGTx, STM32L486ZGTx, STM32L496AEIx, STM32L496AGIx, STM32L496AGIxP, STM32L496QEIx, STM32L496QGIx, STM32L496QGIxP, STM32L496RETx, STM32L496RGTx, STM32L496RGTxP, STM32L496VETx, STM32L496VGTx, STM32L496VGTxP, STM32L496VGYx, STM32L496VGYxP, STM32L496WGYxP, STM32L496ZETx, STM32L496ZGTx, STM32L496ZGTxP, STM32L552CCTx, STM32L552CCUx, STM32L552CETx, STM32L552CETxP, STM32L552CEUx, STM32L552CEUxP, STM32L552MEYxP, STM32L552MEYxQ, STM32L552QCIxQ, STM32L552QEIx, STM32L552QEIxP, STM32L552QEIxQ, STM32L552RCTx, STM32L552RETx, STM32L552RETxP, STM32L552RETxQ, STM32L552VCTxQ, STM32L552VETx, STM32L552VETxQ, STM32L552ZCTxQ, STM32L552ZETx, STM32L552ZETxQ, STM32L562CETx, STM32L562CETxP, STM32L562CEUx, STM32L562CEUxP, STM32L562MEYxP, STM32L562MEYxQ, STM32L562QEIx, STM32L562QEIxP, STM32L562QEIxQ, STM32L562RETx, STM32L562RETxP, STM32L562RETxQ, STM32L562VETx, STM32L562VETxQ, STM32L562ZETx, STM32L562ZETxQ, STM32MP151AAAx, STM32MP151AABx, STM32MP151AACx, STM32MP151AADx, STM32MP151CAAx, STM32MP151CABx, STM32MP151CACx, STM32MP151CADx, STM32MP151DAAx, STM32MP151DABx, STM32MP151DACx, STM32MP151DADx, STM32MP151FAAx, STM32MP151FABx, STM32MP151FACx, STM32MP151FADx, STM32MP153AAAx, STM32MP153AABx, STM32MP153AACx, STM32MP153AADx, STM32MP153CAAx, STM32MP153CABx, STM32MP153CACx, STM32MP153CADx, STM32MP153DAAx, STM32MP153DABx, STM32MP153DACx, STM32MP153DADx, STM32MP153FAAx, STM32MP153FABx, STM32MP153FACx, STM32MP153FADx, STM32MP157AAAx, STM32MP157AABx, STM32MP157AACx, STM32MP157AADx, STM32MP157CAAx, STM32MP157CABx, STM32MP157CACx, STM32MP157CADx, STM32MP157DAAx, STM32MP157DABx, STM32MP157DACx, STM32MP157DADx, STM32MP157FAAx, STM32MP157FABx, STM32MP157FACx, STM32MP157FADx, STM32WB5MMGHx, STM32WB30CEUx, STM32WB35CCUx, STM32WB35CEUx, STM32WB50CGUx, STM32WB55CCUx, STM32WB55CEUx, STM32WB55CGUx, STM32WB55RCVx, STM32WB55REVx, STM32WB55RGVx, STM32WB55VCQx, STM32WB55VCYx, STM32WB55VEQx, STM32WB55VEYx, STM32WB55VGQx, STM32WB55VGYx, STM32WB55VYYx] +No map found for id: +No map found for id: +No map found for id: +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported +No map found for id: org.eclipse.cdt.managedbuilder.ui.rcbs +No map found for id: org.eclipse.cdt.managedbuilder.ui.rcbs +Unknown value type "" for id gnu.cpp.compiler.option.preprocessor.def.symbols on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler +No map found for id: gnu.cpp.debugging.level.max +Unknown value type "" for id gnu.c.link.option.libs on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker +Unknown value type "" for id gnu.c.link.option.paths on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker +Unknown value type "" for id gnu.c.link.option.other on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker +Unknown value type "" for id gnu.cpp.link.option.libs on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker +Unknown value type "" for id gnu.cpp.link.option.paths on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker +Unknown value type "" for id gnu.cpp.link.option.other on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported +Value type err, id: gnu.cpp.link.option.flags +Unknown value type "" for id gnu.both.asm.option.include.paths on tool fr.ac6.managedbuild.tool.gnu.cross.assembler.exe.release +Unknown value type "" for id fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level on tool fr.ac6.managedbuild.tool.gnu.cross.c.compiler +Unknown value type "" for id fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported +Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported diff --git a/KugleFirmware/Libraries/Applications/BalanceController/BalanceController.cpp b/KugleFirmware/Libraries/Applications/BalanceController/BalanceController.cpp index a3d1ae6..e2c7717 100644 --- a/KugleFirmware/Libraries/Applications/BalanceController/BalanceController.cpp +++ b/KugleFirmware/Libraries/Applications/BalanceController/BalanceController.cpp @@ -23,6 +23,7 @@ #include "Debug.h" #include "LQR.h" #include "SlidingMode.h" +#include "FeedbackLinearization.h" #include "QuaternionVelocityControl.h" #include "VelocityLQR.h" #include "IIR.hpp" @@ -148,6 +149,7 @@ void BalanceController::Thread(void * pvParameters) /* Create and initialize controller and estimator objects */ LQR& lqr = *(new LQR(params)); SlidingMode& sm = *(new SlidingMode(params)); + FeedbackLinearization& fbl = *(new FeedbackLinearization(params)); QuaternionVelocityControl& velocityController = *(new QuaternionVelocityControl(params, &balanceController->microsTimer, 1.0f / params.controller.SampleRate)); VelocityLQR& velocityLQR = *(new VelocityLQR(params, &balanceController->microsTimer, 1.0f / params.controller.SampleRate)); QEKF& qEKF = *(new QEKF(params, &balanceController->microsTimer)); @@ -202,7 +204,12 @@ void BalanceController::Thread(void * pvParameters) FirstOrderLPF& Motor2_LPF = *(new FirstOrderLPF(1.0f/params.controller.SampleRate, params.controller.TorqueLPFtau)); FirstOrderLPF& Motor3_LPF = *(new FirstOrderLPF(1.0f/params.controller.SampleRate, params.controller.TorqueLPFtau)); -#if 0 // UNIT TESTS DISABLED +#if 1 // UNIT TESTS DISABLED + if (!fbl.UnitTest()) { + ERROR("FBL Unit test failed!"); + } + +/* if (!lqr.UnitTest()) { ERROR("LQR Unit test failed!"); } @@ -214,6 +221,7 @@ void BalanceController::Thread(void * pvParameters) if (!qEKF.UnitTest()) { ERROR("qEKF Unit test failed!"); } +*/ #endif /* Reset estimators */ @@ -639,7 +647,9 @@ void BalanceController::Thread(void * pvParameters) } else if (params.controller.type == lspc::ParameterTypes::SLIDING_MODE_CONTROLLER && params.controller.mode != lspc::ParameterTypes::OFF) { // OBS. When running the Sliding Mode controller, inertial angular velocity reference is needed sm.Step(balanceController->q, balanceController->dq, balanceController->xy, balanceController->dxy, balanceController->COM, balanceController->q_ref, balanceController->omega_ref_body, EquivalentControlPct, Torque, S); - } else { + } else if(params.controller.type == lspc::ParameterTypes::FEEDBACK_LINEARIZATION_CONTROLLER && params.controller.mode != lspc::ParameterTypes::OFF) { + fbl.Step(balanceController->q, balanceController->dq, balanceController->xy, balanceController->dxy, balanceController->COM, balanceController->q_ref, balanceController->omega_ref_body, Torque); + }else { // Undefined controller mode, eg. OFF - set torque output to 0 Torque[0] = 0; Torque[1] = 0; @@ -934,6 +944,7 @@ void BalanceController::Thread(void * pvParameters) delete(¶ms); delete(&lqr); delete(&sm); + delete(&fbl); delete(&velocityController); delete(&velocityLQR); delete(&qEKF); diff --git a/KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h b/KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h index 0c025c6..8071aa8 100644 --- a/KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h +++ b/KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h @@ -86,6 +86,13 @@ namespace lspc Kx, Ky, Kz, + Kf, + Kfpx, + Kfpy, + Kfpz, + Kfvx, + Kfvy, + Kfvz, Kv_x, Kv_y, Kvi_x, @@ -181,7 +188,8 @@ namespace lspc typedef enum: uint8_t { UNKNOWN_CONTROLLER = 0x00, LQR_CONTROLLER = 0x01, - SLIDING_MODE_CONTROLLER + SLIDING_MODE_CONTROLLER = 0x02, + FEEDBACK_LINEARIZATION_CONTROLLER = 0x03 } controllerType_t; typedef enum: uint8_t { diff --git a/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.cpp b/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.cpp new file mode 100644 index 0000000..7905e34 --- /dev/null +++ b/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.cpp @@ -0,0 +1,322 @@ +/* Copyright (C) 2020 Victor Borja. All rights reserved. + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the MIT License + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the MIT License for further details. + * + * Contact information + * ------------------------------------------ + * Victor Borja + * e-mail : v.borja1991@gmail.com + * ------------------------------------------ + */ + +#include "FeedbackLinearization.h" + +#include +#include +#include + +#include "Quaternion.h" +#include "MathLib.h" +#include "Matrix.h" +#include "Parameters.h" +#include "Debug.h" + +#include "mass.h" +#include "coriolis.h" +#include "gravity.h" +#include "friction.h" +#include "input_forces.h" + + +FeedbackLinearization::FeedbackLinearization(Parameters& params) : _params(params) +{ + // TODO adjust + _frameType = 0; //"Q_DOT_BODY_MANIFOLD" -> "BODY_FRAME" +} + +FeedbackLinearization::~FeedbackLinearization() +{ +} + +/** + * @brief Compute control output with Feedback Linearization controller given a quaternion attitude reference and angular velocity reference + * @param q[4] Input: current quaternion state estimate defined in inertial frame + * @param dq[4] Input: current quaternion derivative estimate defined in inertial frame + * @param xy[2] Input: current ball (center) position defined in inertial frame + * @param dxy[2] Input: current ball (center) velocity defined in inertial frame + * @param q_ref[4] Input: desired/reference quaternion defined in inertial frame + * @param omega_ref[3] Input: desired/reference angular velocity defined in inertial frame + * @param tau[3] Output: motor torque outputs [Nm] where tau[0] is the motor placed along the x-axis of the robot-centric frame + */ +void FeedbackLinearization::Step(const float q[4], const float dq[4], const float xy[2], const float dxy[2], const float q_ref[4], const float omega_ref[3], float tau[3]) +{ + Step(q, dq, xy, dxy, q_ref, omega_ref, _params.model.Jk, _params.model.Mk, _params.model.rk, _params.model.Mb, _params.model.Jbx, _params.model.Jby, _params.model.Jbz, _params.model.Jw, _params.model.rw, _params.model.Bvk, _params.model.Bvm, _params.model.Bvb, _params.model.l, _params.model.g, _params.model.COM_X, _params.model.COM_Y, _params.model.COM_Z, _params.controller.Kf, tau); +} + +/** + * @brief Compute control output with Feedback Linearization controller given a quaternion attitude reference and angular velocity reference + * @param q[4] Input: current quaternion state estimate defined in inertial frame + * @param dq[4] Input: current quaternion derivative estimate defined in inertial frame + * @param xy[2] Input: current ball (center) position defined in inertial frame + * @param dxy[2] Input: current ball (center) velocity defined in inertial frame + * @param COM[3] Input: current estimate of COM + * @param q_ref[4] Input: desired/reference quaternion defined in inertial frame + * @param omega_ref[3] Input: desired/reference angular velocity defined in inertial frame + * @param tau[3] Output: motor torque outputs [Nm] where tau[0] is the motor placed along the x-axis of the robot-centric frame + * @param S[3] Output: sliding manifold values for the three surfaces used for the attitude control + */ +void FeedbackLinearization::Step(const float q[4], const float dq[4], const float xy[2], const float dxy[2], const float COM[3], const float q_ref[4], const float omega_ref[3], float tau[3]) +{ + Step(q, dq, xy, dxy, q_ref, omega_ref, _params.model.Jk, _params.model.Mk, _params.model.rk, _params.model.Mb, _params.model.Jbx, _params.model.Jby, _params.model.Jbz, _params.model.Jw, _params.model.rw, _params.model.Bvk, _params.model.Bvm, _params.model.Bvb, _params.model.l, _params.model.g, COM[0], COM[1], COM[2], _params.controller.Kf, tau); +} + +/** + * @brief Compute control output with Feedback Linearization controller given a quaternion attitude reference and angular velocity reference + * @param q[4] Input: current quaternion state estimate defined in inertial frame + * @param dq[4] Input: current quaternion derivative estimate defined in inertial frame + * @param xy[2] Input: current ball (center) position defined in inertial frame + * @param dxy[2] Input: current ball (center) velocity defined in inertial frame + * @param q_ref[4] Input: desired/reference quaternion defined in inertial frame + * @param omega_ref[3] Input: desired/reference angular velocity defined in either inertial frame or body frame, depending on the BodyFrame flag + * @param tau[3] Output: motor torque outputs [Nm] where tau[0] is the motor placed along the x-axis of the robot-centric frame + */ +void FeedbackLinearization::Step(const float q[4], const float dq_in[4], const float xy[2], const float dxy[2], const float q_ref_in[4], const float omega_ref_body[3], const float Jk, const float Mk, const float rk, const float Mb, const float Jbx, const float Jby, const float Jbz, const float Jw, const float rw, const float Bvk, const float Bvm, const float Bvb, const float l, const float g_const, const float COM_X, const float COM_Y, const float COM_Z, const float Kf[6], float tau[3]) +{ + // See ARM-CMSIS DSP library for matrix operations: https://www.keil.com/pack/doc/CMSIS/DSP/html/group__groupMatrix.html + arm_matrix_instance_f32 q_; arm_mat_init_f32(&q_, 4, 1, (float32_t *)q); + float dq[4] = {dq_in[0], dq_in[1], dq_in[2], dq_in[3]}; arm_matrix_instance_f32 dq_; arm_mat_init_f32(&dq_, 4, 1, (float32_t *)dq); + float chi[6] = {xy[0], xy[1], q[0], q[1], q[2], q[3]}; arm_matrix_instance_f32 chi_; arm_mat_init_f32(&chi_, 6, 1, (float32_t *)chi); + float dchi[6] = {dxy[0], dxy[1], dq[0], dq[1], dq[2], dq[3]}; arm_matrix_instance_f32 dchi_; arm_mat_init_f32(&dchi_, 6, 1, (float32_t *)dchi); + + float M[6*6]; arm_matrix_instance_f32 M_; arm_mat_init_f32(&M_, 6, 6, M); + float C[6*6]; arm_matrix_instance_f32 C_; arm_mat_init_f32(&C_, 6, 6, C); + float G[6]; arm_matrix_instance_f32 G_; arm_mat_init_f32(&G_, 6, 1, G); + float D[6]; arm_matrix_instance_f32 D_; arm_mat_init_f32(&D_, 6, 1, D); + float Q[6*3]; arm_matrix_instance_f32 Q_; arm_mat_init_f32(&Q_, 6, 3, Q); + + mass(COM_X, COM_Y, COM_Z, Jbx, Jby, Jbz, Jk, Jw, Mb, Mk, q[0], q[1], q[2], q[3], rk, rw, M); + coriolis(COM_X, COM_Y, COM_Z, Jbx, Jby, Jbz, Jw, Mb, 0.0f, dq[0], dq[1], dq[2], dq[3], dxy[0], dxy[1], q[0], q[1], q[2], q[3], rk, rw, C); // beta = 0 + gravity(COM_X, COM_Y, COM_Z, Mb, 0.0f, g_const, q[0], q[1], q[2], q[3], G); // beta = 0 + friction(Bvb, Bvk, Bvm, 0.0f, dq[0], dq[1], dq[2], dq[3], dxy[0], dxy[1], q[0], q[1], q[2], q[3], rk, rw, D); + input_forces(q[0], q[1], q[2], q[3], rk, rw, Q); + + float Minv[6*6]; arm_matrix_instance_f32 Minv_; arm_mat_init_f32(&Minv_, 6, 6, Minv); + inv6x6(M, Minv); + + /* Computation of f and g canonical form parts */ + /* f = Minv * (-C*dchi - G - D) */ + /* g = Minv * Q */ + float f[6]; arm_matrix_instance_f32 f_; arm_mat_init_f32(&f_, 6, 1, f); + float g[6*3]; arm_matrix_instance_f32 g_; arm_mat_init_f32(&g_, 6, 3, g); + float tmp6[6]; arm_matrix_instance_f32 tmp6_; arm_mat_init_f32(&tmp6_, 6, 1, tmp6); + arm_mat_mult_f32(&C_, &dchi_, &tmp6_); + arm_add_f32(tmp6, G, tmp6, 6); + arm_add_f32(tmp6, D, tmp6, 6); + arm_negate_f32(tmp6, tmp6, 6); + arm_mat_mult_f32(&Minv_, &tmp6_, &f_); + arm_mat_mult_f32(&Minv_, &Q_, &g_); + + /* Extract of fq and gq - Focus for the quaternion part of the functions */ + float fq[4]; arm_matrix_instance_f32 fq_; arm_mat_init_f32(&fq_, 4, 1, fq); + Matrix_Extract(f, 6,1, 2, 0, 4, 1, fq); + float gq[4*3]; arm_matrix_instance_f32 gq_; arm_mat_init_f32(&gq_, 4, 3, gq); + Matrix_Extract(g, 6,3, 2,0, 4,3, gq); + + /* Compute quaternion error in required frame */ + float q_err[4]; + if (_frameType == 0) { + /* Quaternion error in Body frame */ + // q_err = Phi(q_ref)' * q + Quaternion_PhiT(q_ref_in, q, q_err); + } else { + /* Quaternion error in Inertial frame */ + // q_err = Gamma(q_ref)' * q + Quaternion_GammaT(q_ref_in, q, q_err); + } + + /* Invert quaternion if the scalar is negative to get the shortest path */ + if (q_err[0] < 0) + arm_negate_f32(q_err, q_err, 4); + + /* Recompute q_ref based on q_err (makes a difference if q_err was negated) */ + float q_ref[4]; + if (_frameType == 0 ) { + /* q_err = q_ref* o q + q_ref o q_err = q + q_ref = q o q_err* + q_ref = Gamma(q_err)' * q + */ + Quaternion_GammaT(q_err, q, q_ref); + } else { + /* q_err = q o q_ref* + q_err o q_ref = q + q_ref = q_err* o q + q_ref = Phi(q_err)' * q + */ + Quaternion_PhiT(q_err, q, q_ref); + } + + /* Compute omega_ref in required frame */ + float omega_ref[3]; + if (_frameType == 1) { + // Convert omega_ref_body (input) into omega_ref_inertial to be used by Feedback Linearization controller + Quaternion_RotateVector_Body2Inertial(q_ref, omega_ref_body, omega_ref); + } else { + // Take omega_ref_body (input) directly, since the Feedback Linearization controller will use angular velocity reference in body frame + omega_ref[0] = omega_ref_body[0]; + omega_ref[1] = omega_ref_body[1]; + omega_ref[2] = omega_ref_body[2]; + } + + /* Compute quaternion derivative reference */ + float dq_ref[4]; + float omega_ref_q[4] = {0, omega_ref[0], omega_ref[1], omega_ref[2]}; + if (_frameType == 0) { + /* Body angular velocity */ + /* dq_ref = 1/2 * Phi(q_ref) * [0;omega_ref]; */ + Quaternion_Phi(q_ref, omega_ref_q, dq_ref); // Phi(q_ref) * [0;omega_ref] + arm_scale_f32(dq_ref, 0.5f, dq_ref, 4); + } else { + /* Inertial angular velocity */ + /* dq_ref = 1/2 * Gamma(q_ref) * [0;omega_ref]; */ + Quaternion_Gamma(q_ref, omega_ref_q, dq_ref); // Gamma(q_ref) * [0;omega_ref] + arm_scale_f32(dq_ref, 0.5f, dq_ref, 4); + } + + /* Compute quaternion derivate error */ + float dq_err[4]; + float dq_err1[4]; + float dq_err2[4]; + if (_frameType == 0) { + /* Quaternion error in Body frame */ + // dq_err = Phi(dq_ref)'*q + Phi(q_ref)'*dq + Quaternion_PhiT(dq_ref, q, q_err1); + Quaternion_PhiT(q_ref,dq,q_err2); + for (int i=0; i<4;i++) + dq_err[i]= dq_err1[i]+dq_err2[i]; + } else { + /* Quaternion error in Inertial frame */ + // dq_err = Gamma(dq_ref)'*q + Gamma(q_ref)'*dq + Quaternion_GammaT(dq_ref, q, q_err1); + Quaternion_GammaT(q_ref, dq, q_err2); + for (int i=0; i<4;i++) + dq_err[i]= dq_err1[i]+dq_err2[i]; + } + + + /* Prepare E and D matrices to get motors inputs. + * u = E\(v-D) + * E = [gq(2,1), gq(2,1), gq(2,1); + * gq(2,1), gq(2,1), gq(2,1); + * gq(2,1), gq(2,1), gq(2,1)]; + * D = [fq(2), fq(3), fq(4)]; + * v = [-k(1)*q2-k(4)*dq2; + * -k(2)*q3-k(5)*dq3; + * -k(3)*q4-k(6)*dq4]; Where K represent the gains of the controller -> kf + */ + + float E[3*3]; + arm_matrix_instance_f32 E_; + arm_mat_init_f32(&E_, 3, 3, E); + Matrix_Extract(gq, 4,3, 1,0, 3,3, E); + + float Einv[3*3]; arm_matrix_instance_f32 Einv_; arm_mat_init_f32(&Einv_, 3, 3, Einv);arm_mat_inverse_f32(&E_, &Einv_); + + float Df[3]; arm_matrix_instance_f32 Df_; arm_mat_init_f32(&Df_, 3, 1, Df); + Matrix_Extract(fq, 4,1, 1,0, 3,1, Df); + + // TODO try to improve performance of this + float v[3] = {-Kf[0]*q_ref[1]-Kf[3]*dq_ref[1],-Kf[1]*q_ref[2]-Kf[4]*dq_ref[2],-Kf[2]*q_ref[3]-Kf[5]*dq_ref[2]};arm_matrix_instance_f32 v_; arm_mat_init_f32(&v_, 3, 1, v); + + float u[3]; arm_matrix_instance_f32 u_; arm_mat_init_f32(&u_, 3, 1, u); + + float auxFeed1[3]; arm_matrix_instance_f32 auxFeed1_; arm_mat_init_f32(&auxFeed1_, 3, 1, auxFeed1); + + // u = E\(v-D) + arm_mat_sub_f32(&v_, &Df_, &auxFeed1_); + arm_mat_mult_f32(&Einv_, &auxFeed1_, &u_); + + tau[0] = u[0]; + tau[1] = u[1]; + tau[2] = u[2]; +} + +void FeedbackLinearization::Saturation(const float * in, const int size, float * out) +{ + for (int i = 0; i < size; i++) { + out[i] = fminf(fmaxf(out[i], -1), 1); + } +} + +void FeedbackLinearization::Sign(float * in, int size, float * out) +{ + for (int i = 0; i < size; i++) + out[i] = copysignf(1.0f, in[i]); +} + +bool FeedbackLinearization::UnitTest(void) +{ + const float l = 0.35f; + + const float COM_X = 0.0f; + const float COM_Y = 0.0f; + const float COM_Z = l; + + const float g = 9.82f; + + const float rk = 0.129f; + const float Mk = 1.46f; + const float Jk = ((2.f * Mk * rk*rk) / 3.f); + + const float rw = 0.05f; + const float Mw = 0.270f; + const float i_gear = 4.3; + const float Jow = 9.f * 0.0001f; + const float Jm = 1.21f * 0.0001f; + const float Jw = (Jow + i_gear*i_gear*Jm); + + const float Mb = (8.205f + 5.856f); + + const float Jbx = (0.958f + Mb * l*l); + const float Jby = (0.961f + Mb * l*l); + const float Jbz = 0.31f; + + const float Bvk = 0*0.001f; + const float Bvm = 0*0.001f; + const float Bvb = 0*0.001f; + + const float Kf[6] = {100, 100, 100, 50, 50, 50}; + + float q[4]; + Quaternion_eul2quat_zyx(deg2rad(10), deg2rad(-2), deg2rad(5), q); + float omega_b_vec[4] = {0, 0.15, 0.2, 0.1}; + + float dq[4]; + Quaternion_Phi(q, omega_b_vec, dq); // Phi(q)*[0;omega_b] + arm_scale_f32(dq, 1.0f/2.0f, dq, 4); // 1/2 * Phi(q)*[0;omega_b] + + float xy[2] = {0, 0}; + float dxy[2] = {0.5, -0.2}; + + float q_ref[4]; + Quaternion_eul2quat_zyx(deg2rad(0), deg2rad(0), deg2rad(10), q_ref); + + float omega_i_ref[3] = {0, 0, 0}; + + float Torque[3]; + Step(q, dq, xy, dxy, q_ref, omega_i_ref, Jk, Mk, rk, Mb, Jbx, Jby, Jbz, Jw, rw, Bvk, Bvm, Bvb, l, g, COM_X, COM_Y, COM_Z, Kf, Torque); + + float Torque_Expected[3] = {-1.0488, -0.2760, 2.0310}; + if (Math_Round(Torque[0], 4) == Math_Round(Torque_Expected[0], 4) && + Math_Round(Torque[1], 4) == Math_Round(Torque_Expected[1], 4) && + Math_Round(Torque[2], 4) == Math_Round(Torque_Expected[2], 4)) + return true; + else + return false; +} diff --git a/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.h b/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.h new file mode 100644 index 0000000..dd5f0ba --- /dev/null +++ b/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.h @@ -0,0 +1,50 @@ +/* Copyright (C) 2020 Victor Borja. All rights reserved. + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the MIT License + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the MIT License for further details. + * + * Contact information + * ------------------------------------------ + * Victor Borja + * e-mail : v.borja1991@gmail.com + * ------------------------------------------ + */ + +#ifndef MODULES_CONTROLLERS_FEEDBACKLINEARIZATION_H +#define MODULES_CONTROLLERS_FEEDBACKLINEARIZATION_H + +#include +#include + +#include "Parameters.h" + +class FeedbackLinearization +{ + public: + FeedbackLinearization(Parameters& params); + ~FeedbackLinearization(); + + void Step(const float q[4], const float dq[4], const float xy[2], const float dxy[2], const float q_ref[4], const float omega_ref[3], float tau[3]); + void Step(const float q[4], const float dq[4], const float xy[2], const float dxy[2], const float COM[3], const float q_ref[4], const float omega_ref[3], float tau[3]); + void Step(const float q[4], const float dq[4], const float xy[2], const float dxy[2], const float q_ref_in[4], const float omega_ref_body[3], const float Jk, const float Mk, const float rk, const float Mb, const float Jbx, const float Jby, const float Jbz, const float Jw, const float rw, const float Bvk, const float Bvm, const float Bvb, const float l, const float g_const, const float COM_X, const float COM_Y, const float COM_Z, const float Kf[6], float tau[3]); + + bool UnitTest(void); + + private: + void Saturation(const float * in, const int size, float * out); + void Sign(float * in, int size, float * out); + + private: + Parameters& _params; + //PROVISIONAL 0 =Q_DOT_BODY_MANIFOLD , 1=Q_DOT_INERTIAL_MANIFOLD, 2 =OMEGA_BODY_MANIFOLD 3=OMEGA_INERTIAL_MANIFOLD, + // TODO adjust on messages for body and inertial frame. + int _frameType; +}; + + +#endif diff --git a/KugleFirmware/Libraries/Modules/Parameters/Parameters.cpp b/KugleFirmware/Libraries/Modules/Parameters/Parameters.cpp index 764904a..a753a6e 100644 --- a/KugleFirmware/Libraries/Modules/Parameters/Parameters.cpp +++ b/KugleFirmware/Libraries/Modules/Parameters/Parameters.cpp @@ -14,6 +14,11 @@ * Web : http://www.tkjelectronics.dk * e-mail : thomasj@tkjelectronics.dk * ------------------------------------------ + * Modifications + * ------------------------------------------ + * Victor Borja + * e-mail : v.borja1991@gmail.com + * ------------------------------------------ */ #include "Parameters.h" @@ -409,6 +414,13 @@ void Parameters::LookupParameter(uint8_t type, uint8_t param, void ** paramPtr, case lspc::ParameterLookup::Kx: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.K[0]; return; case lspc::ParameterLookup::Ky: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.K[1]; return; case lspc::ParameterLookup::Kz: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.K[2]; return; + case lspc::ParameterLookup::Kf: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[0]; arraySize = 6; return; + case lspc::ParameterLookup::Kfpx: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[0]; return; + case lspc::ParameterLookup::Kfpy: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[1]; return; + case lspc::ParameterLookup::Kfpz: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[2]; return; + case lspc::ParameterLookup::Kfvx: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[3]; return; + case lspc::ParameterLookup::Kfvy: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[4]; return; + case lspc::ParameterLookup::Kfvz: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[5]; return; case lspc::ParameterLookup::Kv_x: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kv[0]; return; case lspc::ParameterLookup::Kv_y: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kv[1]; return; case lspc::ParameterLookup::Kvi_x: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kvi[0]; return; diff --git a/KugleFirmware/Libraries/Modules/Parameters/Parameters.h b/KugleFirmware/Libraries/Modules/Parameters/Parameters.h index b5e139e..25860a2 100644 --- a/KugleFirmware/Libraries/Modules/Parameters/Parameters.h +++ b/KugleFirmware/Libraries/Modules/Parameters/Parameters.h @@ -14,6 +14,11 @@ * Web : http://www.tkjelectronics.dk * e-mail : thomasj@tkjelectronics.dk * ------------------------------------------ + * Modifications + * ------------------------------------------ + * Victor Borja + * e-mail : v.borja1991@gmail.com + * ------------------------------------------ */ #ifndef MODULES_PARAMETERS_H @@ -58,7 +63,7 @@ class Parameters float SampleRate = 200; /* Controller selection */ - lspc::ParameterTypes::controllerType_t type = lspc::ParameterTypes::SLIDING_MODE_CONTROLLER; // LQR_CONTROLLER or SLIDING_MODE_CONTROLLER + lspc::ParameterTypes::controllerType_t type = lspc::ParameterTypes::SLIDING_MODE_CONTROLLER; // LQR_CONTROLLER or SLIDING_MODE_CONTROLLER or FEEDBACK_LINEARIZATION_CONTROLLER lspc::ParameterTypes::controllerMode_t mode = lspc::ParameterTypes::OFF; // OFF, QUATERNION_CONTROL, ANGULAR_VELOCITY_CONTROL, VELOCITY_CONTROL or PATH_FOLLOWING /* Torque output filtering parameters */ @@ -95,19 +100,26 @@ class Parameters #ifdef AGGRESSIVE_SLIDING_MODE float K[3] = {15, 15, 6}; // sliding manifold gain (S = omega + K*devec*q_err) or (S = q_dot + K*devec*q_err) depending on manifold type float eta[3] = {6, 6, 3}; // {5, 5, 10} switching gain - float epsilon[3] = {0.5, 0.5, 0.2}; // continous switching law : "radius" of epsilon-tube around the sliding surface, wherein the control law is linear in S + float epsilon[3] = {0.5, 0.5, 0.2}; // continuous switching law : "radius" of epsilon-tube around the sliding surface, wherein the control law is linear in S //float K[3] = {15, 15, 3}; // sliding manifold gain (S = omega + K*devec*q_err) or (S = q_dot + K*devec*q_err) depending on manifold type //float eta[3] = {6, 6, 8}; // {5, 5, 10} switching gain - //float epsilon[3] = {0.5, 0.5, 0.1}; // continous switching law : "radius" of epsilon-tube around the sliding surface, wherein the control law is linear in S + //float epsilon[3] = {0.5, 0.5, 0.1}; // continuous switching law : "radius" of epsilon-tube around the sliding surface, wherein the control law is linear in S #else // The gains below are much more sluggish/slow than the above but works well with the Velocity LQR controller settings both angle (q_ref) and angular velocity (omega_ref) references float K[3] = {6, 6, 6}; // sliding manifold gain (S = omega + K*devec*q_err) or (S = q_dot + K*devec*q_err) depending on manifold type float eta[3] = {5, 5, 6}; // {5, 5, 10} switching gain - float epsilon[3] = {0.8, 0.8, 0.3}; // continous switching law : "radius" of epsilon-tube around the sliding surface, wherein the control law is linear in S + float epsilon[3] = {0.8, 0.8, 0.3}; // continuous switching law : "radius" of epsilon-tube around the sliding surface, wherein the control law is linear in S #endif + /* Feedback Linearization Mode parameters */ + float fp = 100; //Parameter influencing the position/quaternion of the balance controller + float fv = 100; //Parameter influencing the velocity/dquaternion of the balance controller + float Kfp[3] = {fp, fp, fp}; + float Kfv [3] = {fv, fv, fv}; + float Kf [6] = {Kfp[0],Kfp[1],Kfp[2],Kfv[0],Kfv[1],Kfv[2]}; + /* Velocity sliding mode gains */ float Kv[2] = {0, 0}; float Kvi[2] = {0, 0}; diff --git a/KugleFirmware/Src/main.c b/KugleFirmware/Src/main.c index d76ffeb..9df313b 100644 --- a/KugleFirmware/Src/main.c +++ b/KugleFirmware/Src/main.c @@ -26,6 +26,7 @@ #include "MemoryManagement.h" #include "Priorities.h" + /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ @@ -62,7 +63,7 @@ int main(void) /* Start scheduler */ osKernelStart(); - + /* We should never get here as control is now taken by the scheduler */ /* Infinite loop */ From 47dda1a34dbc58db40b7babfb69945ea58bc5808 Mon Sep 17 00:00:00 2001 From: Victor Borja Date: Wed, 25 Nov 2020 14:55:10 +0100 Subject: [PATCH 2/8] Typos In messagesTypes Corrected Typos in messages Types --- KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h | 12 ++++++------ .../Libraries/Modules/Parameters/Parameters.cpp | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h b/KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h index 8071aa8..5cb0139 100644 --- a/KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h +++ b/KugleFirmware/Libraries/Devices/LSPC/MessageTypes.h @@ -87,12 +87,12 @@ namespace lspc Ky, Kz, Kf, - Kfpx, - Kfpy, - Kfpz, - Kfvx, - Kfvy, - Kfvz, + Kfp_x, + Kfp_y, + Kfp_z, + Kfv_x, + Kfv_y, + Kfv_z, Kv_x, Kv_y, Kvi_x, diff --git a/KugleFirmware/Libraries/Modules/Parameters/Parameters.cpp b/KugleFirmware/Libraries/Modules/Parameters/Parameters.cpp index a753a6e..bacbcd1 100644 --- a/KugleFirmware/Libraries/Modules/Parameters/Parameters.cpp +++ b/KugleFirmware/Libraries/Modules/Parameters/Parameters.cpp @@ -415,12 +415,12 @@ void Parameters::LookupParameter(uint8_t type, uint8_t param, void ** paramPtr, case lspc::ParameterLookup::Ky: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.K[1]; return; case lspc::ParameterLookup::Kz: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.K[2]; return; case lspc::ParameterLookup::Kf: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[0]; arraySize = 6; return; - case lspc::ParameterLookup::Kfpx: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[0]; return; - case lspc::ParameterLookup::Kfpy: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[1]; return; - case lspc::ParameterLookup::Kfpz: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[2]; return; - case lspc::ParameterLookup::Kfvx: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[3]; return; - case lspc::ParameterLookup::Kfvy: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[4]; return; - case lspc::ParameterLookup::Kfvz: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[5]; return; + case lspc::ParameterLookup::Kfp_x: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[0]; return; + case lspc::ParameterLookup::Kfp_y: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[1]; return; + case lspc::ParameterLookup::Kfp_z: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[2]; return; + case lspc::ParameterLookup::Kfv_x: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[3]; return; + case lspc::ParameterLookup::Kfv_y: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[4]; return; + case lspc::ParameterLookup::Kfv_z: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kf[5]; return; case lspc::ParameterLookup::Kv_x: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kv[0]; return; case lspc::ParameterLookup::Kv_y: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kv[1]; return; case lspc::ParameterLookup::Kvi_x: valueType = lspc::ParameterLookup::_float; *paramPtr = (void *)&this->controller.Kvi[0]; return; From 4d9984fa25e5dccc52fbc3ab08828b9ae63fa418 Mon Sep 17 00:00:00 2001 From: Victor Borja Date: Thu, 26 Nov 2020 14:40:41 +0100 Subject: [PATCH 3/8] Typos re updated --- .../FeedbackLinearization/FeedbackLinearization.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.cpp b/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.cpp index 7905e34..2c5ec44 100644 --- a/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.cpp +++ b/KugleFirmware/Libraries/Modules/Controllers/FeedbackLinearization/FeedbackLinearization.cpp @@ -196,15 +196,15 @@ void FeedbackLinearization::Step(const float q[4], const float dq_in[4], const f if (_frameType == 0) { /* Quaternion error in Body frame */ // dq_err = Phi(dq_ref)'*q + Phi(q_ref)'*dq - Quaternion_PhiT(dq_ref, q, q_err1); - Quaternion_PhiT(q_ref,dq,q_err2); + Quaternion_PhiT(dq_ref, q, dq_err1); + Quaternion_PhiT(q_ref,dq,dq_err2); for (int i=0; i<4;i++) dq_err[i]= dq_err1[i]+dq_err2[i]; } else { /* Quaternion error in Inertial frame */ // dq_err = Gamma(dq_ref)'*q + Gamma(q_ref)'*dq - Quaternion_GammaT(dq_ref, q, q_err1); - Quaternion_GammaT(q_ref, dq, q_err2); + Quaternion_GammaT(dq_ref, q, dq_err1); + Quaternion_GammaT(q_ref, dq, dq_err2); for (int i=0; i<4;i++) dq_err[i]= dq_err1[i]+dq_err2[i]; } From 697e086f4c971ea1b1d2c380f522e1c2b512263f Mon Sep 17 00:00:00 2001 From: VBorjaDD Date: Fri, 27 Nov 2020 11:08:34 +0100 Subject: [PATCH 4/8] Auto generated by the STM --- KugleFirmware/.cproject | 108 +++++++++--------- KugleFirmware/.settings/language.settings.xml | 16 --- KugleFirmware/KugleFirmware Debug.cfg | 11 +- 3 files changed, 66 insertions(+), 69 deletions(-) diff --git a/KugleFirmware/.cproject b/KugleFirmware/.cproject index 1c5b7ba..8634d4e 100644 --- a/KugleFirmware/.cproject +++ b/KugleFirmware/.cproject @@ -11,12 +11,15 @@ + + + - + - + - + - + - + @@ -497,6 +503,9 @@ + + + @@ -668,6 +677,9 @@ + + + @@ -829,7 +841,7 @@ - + @@ -841,15 +853,9 @@ - - - - - - diff --git a/KugleFirmware/.settings/language.settings.xml b/KugleFirmware/.settings/language.settings.xml index b0e67ae..4e9558e 100644 --- a/KugleFirmware/.settings/language.settings.xml +++ b/KugleFirmware/.settings/language.settings.xml @@ -6,10 +6,6 @@ - - - - @@ -18,10 +14,6 @@ - - - - @@ -30,10 +22,6 @@ - - - - @@ -42,10 +30,6 @@ - - - - diff --git a/KugleFirmware/KugleFirmware Debug.cfg b/KugleFirmware/KugleFirmware Debug.cfg index 2ca9335..599db25 100644 --- a/KugleFirmware/KugleFirmware Debug.cfg +++ b/KugleFirmware/KugleFirmware Debug.cfg @@ -3,7 +3,7 @@ # Generated by System Workbench for STM32 # Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s) -source [find interface/stlink.cfg] +source [find interface/stlink.cfg] set WORKAREASIZE 0x8000 @@ -12,6 +12,9 @@ transport select "hla_swd" set CHIPNAME STM32H743ZITx set BOARDNAME KugleFirmware +# CHIPNAMES state +set CHIPNAME_CPU0_ACTIVATED 1 + # Enable debug when in low power modes set ENABLE_LOW_POWER 1 @@ -19,11 +22,15 @@ set ENABLE_LOW_POWER 1 set STOP_WATCHDOG 1 # STlink Debug clock frequency -set CLOCK_FREQ 4000 +set CLOCK_FREQ 8000 # use hardware reset, connect under reset # connect_assert_srst needed if low power mode application running (WFI...) reset_config srst_only srst_nogate connect_assert_srst set CONNECT_UNDER_RESET 1 +# BCTM CPU variables + + + source [find target/stm32h7x.cfg] From fea61c7e05a6e6af69dfbc81e76c13dc2f654bed Mon Sep 17 00:00:00 2001 From: VBorjaDD Date: Fri, 27 Nov 2020 11:29:13 +0100 Subject: [PATCH 5/8] Disabled test --- KugleFirmware/.cproject | 825 ++++++++---------- KugleFirmware/.project | 5 +- KugleFirmware/.settings/language.settings.xml | 28 +- KugleFirmware/KugleFirmware Debug.cfg | 11 +- 4 files changed, 378 insertions(+), 491 deletions(-) diff --git a/KugleFirmware/.cproject b/KugleFirmware/.cproject index 8634d4e..85f518e 100644 --- a/KugleFirmware/.cproject +++ b/KugleFirmware/.cproject @@ -1,8 +1,8 @@ - - + + @@ -11,37 +11,32 @@ - - - - - - - - - + + @@ -366,44 +309,32 @@ - - - - - - - - - + + @@ -503,60 +434,22 @@ - - - - - - - - - + + @@ -677,35 +584,33 @@ - - - - - - - diff --git a/KugleFirmware/.project b/KugleFirmware/.project index e0b534e..ac66c49 100644 --- a/KugleFirmware/.project +++ b/KugleFirmware/.project @@ -19,11 +19,10 @@ - com.st.stm32cube.ide.mcu.MCUProjectNature org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + fr.ac6.mcu.ide.core.MCUProjectNature org.eclipse.cdt.core.ccnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - com.st.stm32cube.ide.mcu.MCUSW4STM32ConvertedProjectNature diff --git a/KugleFirmware/.settings/language.settings.xml b/KugleFirmware/.settings/language.settings.xml index 4e9558e..785f6c2 100644 --- a/KugleFirmware/.settings/language.settings.xml +++ b/KugleFirmware/.settings/language.settings.xml @@ -1,35 +1,47 @@ - + - + + + + - + - + + + + - + - + + + + - + - + + + + diff --git a/KugleFirmware/KugleFirmware Debug.cfg b/KugleFirmware/KugleFirmware Debug.cfg index 599db25..2ca9335 100644 --- a/KugleFirmware/KugleFirmware Debug.cfg +++ b/KugleFirmware/KugleFirmware Debug.cfg @@ -3,7 +3,7 @@ # Generated by System Workbench for STM32 # Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s) -source [find interface/stlink.cfg] +source [find interface/stlink.cfg] set WORKAREASIZE 0x8000 @@ -12,9 +12,6 @@ transport select "hla_swd" set CHIPNAME STM32H743ZITx set BOARDNAME KugleFirmware -# CHIPNAMES state -set CHIPNAME_CPU0_ACTIVATED 1 - # Enable debug when in low power modes set ENABLE_LOW_POWER 1 @@ -22,15 +19,11 @@ set ENABLE_LOW_POWER 1 set STOP_WATCHDOG 1 # STlink Debug clock frequency -set CLOCK_FREQ 8000 +set CLOCK_FREQ 4000 # use hardware reset, connect under reset # connect_assert_srst needed if low power mode application running (WFI...) reset_config srst_only srst_nogate connect_assert_srst set CONNECT_UNDER_RESET 1 -# BCTM CPU variables - - - source [find target/stm32h7x.cfg] From 6b5a13fd4376d33bc26708148fa77ff7d8e00715 Mon Sep 17 00:00:00 2001 From: VBorjaDD Date: Fri, 27 Nov 2020 11:31:09 +0100 Subject: [PATCH 6/8] generated by stm deleted --- .project | 11 - .vscode/settings.json | 34 - .vscode/tasks.json | 27 - KugleFirmware/.cproject_org | 764 ------------------ KugleFirmware/.project_org | 28 - KugleFirmware/.settings/language.settings.xml | 8 +- .../org.eclipse.cdt.codan.core.prefs | 56 -- KugleFirmware/KugleFirmware Debug.cfg | 29 - KugleFirmware/KugleFirmware Debug.launch | 73 -- KugleFirmware/KugleFirmware_converter.log | 54 -- .../BalanceController/BalanceController.cpp | 2 +- 11 files changed, 5 insertions(+), 1081 deletions(-) delete mode 100644 .project delete mode 100644 .vscode/settings.json delete mode 100644 .vscode/tasks.json delete mode 100644 KugleFirmware/.cproject_org delete mode 100644 KugleFirmware/.project_org delete mode 100644 KugleFirmware/.settings/org.eclipse.cdt.codan.core.prefs delete mode 100644 KugleFirmware/KugleFirmware Debug.cfg delete mode 100644 KugleFirmware/KugleFirmware Debug.launch delete mode 100644 KugleFirmware/KugleFirmware_converter.log diff --git a/.project b/.project deleted file mode 100644 index b83d9ba..0000000 --- a/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - Kugle-Embedded - - - - - - - - diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 9d93367..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "files.associations": { - "algorithm": "cpp", - "array": "cpp", - "cctype": "cpp", - "cmath": "cpp", - "compare": "cpp", - "concepts": "cpp", - "cstddef": "cpp", - "cstdint": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "cwchar": "cpp", - "exception": "cpp", - "initializer_list": "cpp", - "iosfwd": "cpp", - "limits": "cpp", - "map": "cpp", - "new": "cpp", - "stdexcept": "cpp", - "string": "cpp", - "tuple": "cpp", - "type_traits": "cpp", - "utility": "cpp", - "vector": "cpp", - "xmemory": "cpp", - "xstddef": "cpp", - "xstring": "cpp", - "xtr1common": "cpp", - "xtree": "cpp", - "xutility": "cpp" - } -} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index a137f58..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "tasks": [ - { - "type": "cppbuild", - "label": "C/C++: g++.exe build active file", - "command": "C:\\MinGW\\bin\\g++.exe", - "args": [ - "-g", - "${file}", - "-o", - "${fileDirname}\\${fileBasenameNoExtension}.exe" - ], - "options": { - "cwd": "C:\\MinGW\\bin" - }, - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - }, - "detail": "Generated task by Debugger" - } - ], - "version": "2.0.0" -} \ No newline at end of file diff --git a/KugleFirmware/.cproject_org b/KugleFirmware/.cproject_org deleted file mode 100644 index 85f518e..0000000 --- a/KugleFirmware/.cproject_org +++ /dev/null @@ -1,764 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/KugleFirmware/.project_org b/KugleFirmware/.project_org deleted file mode 100644 index ac66c49..0000000 --- a/KugleFirmware/.project_org +++ /dev/null @@ -1,28 +0,0 @@ - - - KugleFirmware - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - fr.ac6.mcu.ide.core.MCUProjectNature - org.eclipse.cdt.core.ccnature - - diff --git a/KugleFirmware/.settings/language.settings.xml b/KugleFirmware/.settings/language.settings.xml index 785f6c2..70a0b51 100644 --- a/KugleFirmware/.settings/language.settings.xml +++ b/KugleFirmware/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -38,7 +38,7 @@ - + diff --git a/KugleFirmware/.settings/org.eclipse.cdt.codan.core.prefs b/KugleFirmware/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index f957b85..0000000 --- a/KugleFirmware/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,56 +0,0 @@ -com.st.stm32cube.ide.mcu.ide.oss.source.checker.libnano.problem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Float formatting support\\")"} -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} diff --git a/KugleFirmware/KugleFirmware Debug.cfg b/KugleFirmware/KugleFirmware Debug.cfg deleted file mode 100644 index 2ca9335..0000000 --- a/KugleFirmware/KugleFirmware Debug.cfg +++ /dev/null @@ -1,29 +0,0 @@ -# This is an KugleFirmware board with a single STM32H743ZITx chip -# -# Generated by System Workbench for STM32 -# Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s) - -source [find interface/stlink.cfg] - -set WORKAREASIZE 0x8000 - -transport select "hla_swd" - -set CHIPNAME STM32H743ZITx -set BOARDNAME KugleFirmware - -# Enable debug when in low power modes -set ENABLE_LOW_POWER 1 - -# Stop Watchdog counters when halt -set STOP_WATCHDOG 1 - -# STlink Debug clock frequency -set CLOCK_FREQ 4000 - -# use hardware reset, connect under reset -# connect_assert_srst needed if low power mode application running (WFI...) -reset_config srst_only srst_nogate connect_assert_srst -set CONNECT_UNDER_RESET 1 - -source [find target/stm32h7x.cfg] diff --git a/KugleFirmware/KugleFirmware Debug.launch b/KugleFirmware/KugleFirmware Debug.launch deleted file mode 100644 index 4957c6a..0000000 --- a/KugleFirmware/KugleFirmware Debug.launch +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/KugleFirmware/KugleFirmware_converter.log b/KugleFirmware/KugleFirmware_converter.log deleted file mode 100644 index d010d3d..0000000 --- a/KugleFirmware/KugleFirmware_converter.log +++ /dev/null @@ -1,54 +0,0 @@ -Project: KugleFirmware -Converter: ST System Workbench for STM32 project converter -Date: 20201102 - -Unrecognized tool command 'g++' for tool id fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler -Unknown value type "" for id gnu.c.link.option.libs on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker -Unknown value type "" for id gnu.c.link.option.paths on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker -Unknown value type "" for id gnu.c.link.option.other on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker -Unrecognized tool command 'g++' for tool id fr.ac6.managedbuild.tool.gnu.cross.cpp.linker -Unknown value type "" for id gnu.cpp.link.option.libs on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker -Unknown value type "" for id gnu.cpp.link.option.paths on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported -Value type err, id: gnu.cpp.link.option.flags -Unrecognized tool command 'as' for tool id fr.ac6.managedbuild.tool.gnu.cross.assembler -Unknown value type "" for id gnu.both.asm.option.include.paths on tool fr.ac6.managedbuild.tool.gnu.cross.assembler -Warning: MCU matched multiple possible MCUs: [STM32F030C6Tx, STM32F030C8Tx, STM32F030CCTx, STM32F030F4Px, STM32F030K6Tx, STM32F030R8Tx, STM32F030RCTx, STM32F031C4Tx, STM32F031C6Tx, STM32F031E6Yx, STM32F031F4Px, STM32F031F6Px, STM32F031G4Ux, STM32F031G6Ux, STM32F031K4Ux, STM32F031K6Tx, STM32F031K6Ux, STM32F038C6Tx, STM32F038E6Yx, STM32F038F6Px, STM32F038G6Ux, STM32F038K6Ux, STM32F042C4Tx, STM32F042C4Ux, STM32F042C6Tx, STM32F042C6Ux, STM32F042F4Px, STM32F042F6Px, STM32F042G4Ux, STM32F042G6Ux, STM32F042K4Tx, STM32F042K4Ux, STM32F042K6Tx, STM32F042K6Ux, STM32F042T6Yx, STM32F048C6Ux, STM32F048G6Ux, STM32F048T6Yx, STM32F051C4Tx, STM32F051C4Ux, STM32F051C6Tx, STM32F051C6Ux, STM32F051C8Tx, STM32F051C8Ux, STM32F051K4Tx, STM32F051K4Ux, STM32F051K6Tx, STM32F051K6Ux, STM32F051K8Tx, STM32F051K8Ux, STM32F051R4Tx, STM32F051R6Tx, STM32F051R8Hx, STM32F051R8Tx, STM32F051T8Yx, STM32F058C8Ux, STM32F058R8Hx, STM32F058R8Tx, STM32F058T8Yx, STM32F070C6Tx, STM32F070CBTx, STM32F070F6Px, STM32F070RBTx, STM32F071C8Tx, STM32F071C8Ux, STM32F071CBTx, STM32F071CBUx, STM32F071CBYx, STM32F071RBTx, STM32F071V8Hx, STM32F071V8Tx, STM32F071VBHx, STM32F071VBTx, STM32F072C8Tx, STM32F072C8Ux, STM32F072CBTx, STM32F072CBUx, STM32F072CBYx, STM32F072R8Tx, STM32F072RBHx, STM32F072RBIx, STM32F072RBTx, STM32F072V8Hx, STM32F072V8Tx, STM32F072VBHx, STM32F072VBTx, STM32F078CBTx, STM32F078CBUx, STM32F078CBYx, STM32F078RBHx, STM32F078RBTx, STM32F078VBHx, STM32F078VBTx, STM32F091CBTx, STM32F091CBUx, STM32F091CCTx, STM32F091CCUx, STM32F091RBTx, STM32F091RCHx, STM32F091RCTx, STM32F091RCYx, STM32F091VBTx, STM32F091VCHx, STM32F091VCTx, STM32F098CCTx, STM32F098CCUx, STM32F098RCHx, STM32F098RCTx, STM32F098RCYx, STM32F098VCHx, STM32F098VCTx, STM32F100C4Tx, STM32F100C6Tx, STM32F100C8Tx, STM32F100CBTx, STM32F100R4Hx, STM32F100R4Tx, STM32F100R6Hx, STM32F100R6Tx, STM32F100R8Hx, STM32F100R8Tx, STM32F100RBHx, STM32F100RBTx, STM32F100RCTx, STM32F100RDTx, STM32F100RETx, STM32F100V8Tx, STM32F100VBTx, STM32F100VCTx, STM32F100VDTx, STM32F100VETx, STM32F100ZCTx, STM32F100ZDTx, STM32F100ZETx, STM32F101C4Tx, STM32F101C6Tx, STM32F101C8Tx, STM32F101C8Ux, STM32F101CBTx, STM32F101CBUx, STM32F101R4Tx, STM32F101R6Tx, STM32F101R8Tx, STM32F101RBHx, STM32F101RBTx, STM32F101RCTx, STM32F101RDTx, STM32F101RETx, STM32F101RFTx, STM32F101RGTx, STM32F101T4Ux, STM32F101T6Ux, STM32F101T8Ux, STM32F101TBUx, STM32F101V8Tx, STM32F101VBTx, STM32F101VCTx, STM32F101VDTx, STM32F101VETx, STM32F101VFTx, STM32F101VGTx, STM32F101ZCTx, STM32F101ZDTx, STM32F101ZETx, STM32F101ZFTx, STM32F101ZGTx, STM32F102C4Tx, STM32F102C6Tx, STM32F102C8Tx, STM32F102CBTx, STM32F102R4Tx, STM32F102R6Tx, STM32F102R8Tx, STM32F102RBTx, STM32F103C4Tx, STM32F103C6Tx, STM32F103C6Ux, STM32F103C8Tx, STM32F103CBTx, STM32F103CBUx, STM32F103R4Hx, STM32F103R4Tx, STM32F103R6Hx, STM32F103R6Tx, STM32F103R8Hx, STM32F103R8Tx, STM32F103RBHx, STM32F103RBTx, STM32F103RCTx, STM32F103RCYx, STM32F103RDTx, STM32F103RDYx, STM32F103RETx, STM32F103REYx, STM32F103RFTx, STM32F103RGTx, STM32F103T4Ux, STM32F103T6Ux, STM32F103T8Ux, STM32F103TBUx, STM32F103V8Hx, STM32F103V8Tx, STM32F103VBHx, STM32F103VBIx, STM32F103VBTx, STM32F103VCHx, STM32F103VCTx, STM32F103VDHx, STM32F103VDTx, STM32F103VEHx, STM32F103VETx, STM32F103VFTx, STM32F103VGTx, STM32F103ZCHx, STM32F103ZCTx, STM32F103ZDHx, STM32F103ZDTx, STM32F103ZEHx, STM32F103ZETx, STM32F103ZFHx, STM32F103ZFTx, STM32F103ZGHx, STM32F103ZGTx, STM32F105R8Tx, STM32F105RBTx, STM32F105RCTx, STM32F105V8Hx, STM32F105V8Tx, STM32F105VBHx, STM32F105VBTx, STM32F105VCTx, STM32F107RBTx, STM32F107RCTx, STM32F107VBTx, STM32F107VCHx, STM32F107VCTx, STM32F205RBTx, STM32F205RCTx, STM32F205RETx, STM32F205REYx, STM32F205RFTx, STM32F205RGEx, STM32F205RGTx, STM32F205RGYx, STM32F205VBTx, STM32F205VCTx, STM32F205VETx, STM32F205VFTx, STM32F205VGTx, STM32F205ZCTx, STM32F205ZETx, STM32F205ZFTx, STM32F205ZGTx, STM32F207ICHx, STM32F207ICTx, STM32F207IEHx, STM32F207IETx, STM32F207IFHx, STM32F207IFTx, STM32F207IGHx, STM32F207IGTx, STM32F207VCTx, STM32F207VETx, STM32F207VFTx, STM32F207VGTx, STM32F207ZCTx, STM32F207ZETx, STM32F207ZFTx, STM32F207ZGTx, STM32F215RETx, STM32F215RGTx, STM32F215VETx, STM32F215VGTx, STM32F215ZETx, STM32F215ZGTx, STM32F217IEHx, STM32F217IETx, STM32F217IGHx, STM32F217IGTx, STM32F217VETx, STM32F217VGTx, STM32F217ZETx, STM32F217ZGTx, STM32F301C6Tx, STM32F301C8Tx, STM32F301C8Yx, STM32F301K6Tx, STM32F301K6Ux, STM32F301K8Tx, STM32F301K8Ux, STM32F301R6Tx, STM32F301R8Tx, STM32F302C6Tx, STM32F302C8Tx, STM32F302C8Yx, STM32F302CBTx, STM32F302CCTx, STM32F302K6Ux, STM32F302K8Ux, STM32F302R6Tx, STM32F302R8Tx, STM32F302RBTx, STM32F302RCTx, STM32F302RDTx, STM32F302RETx, STM32F302VBTx, STM32F302VCTx, STM32F302VCYx, STM32F302VDHx, STM32F302VDTx, STM32F302VEHx, STM32F302VETx, STM32F302ZDTx, STM32F302ZETx, STM32F303C6Tx, STM32F303C8Tx, STM32F303C8Yx, STM32F303CBTx, STM32F303CCTx, STM32F303K6Tx, STM32F303K6Ux, STM32F303K8Tx, STM32F303K8Ux, STM32F303R6Tx, STM32F303R8Tx, STM32F303RBTx, STM32F303RCTx, STM32F303RDTx, STM32F303RETx, STM32F303VBTx, STM32F303VCTx, STM32F303VCYx, STM32F303VDHx, STM32F303VDTx, STM32F303VEHx, STM32F303VETx, STM32F303VEYx, STM32F303ZDTx, STM32F303ZETx, STM32F318C8Tx, STM32F318C8Yx, STM32F318K8Ux, STM32F328C8Tx, STM32F334C4Tx, STM32F334C6Tx, STM32F334C8Tx, STM32F334C8Yx, STM32F334K4Tx, STM32F334K4Ux, STM32F334K6Tx, STM32F334K6Ux, STM32F334K8Tx, STM32F334K8Ux, STM32F334R6Tx, STM32F334R8Tx, STM32F358CCTx, STM32F358RCTx, STM32F358VCTx, STM32F373C8Tx, STM32F373CBTx, STM32F373CCTx, STM32F373R8Tx, STM32F373RBTx, STM32F373RCTx, STM32F373V8Hx, STM32F373V8Tx, STM32F373VBHx, STM32F373VBTx, STM32F373VCHx, STM32F373VCTx, STM32F378CCTx, STM32F378RCTx, STM32F378RCYx, STM32F378VCHx, STM32F378VCTx, STM32F398VETx, STM32F401CBUx, STM32F401CBYx, STM32F401CCFx, STM32F401CCUx, STM32F401CCYx, STM32F401CDUx, STM32F401CDYx, STM32F401CEUx, STM32F401CEYx, STM32F401RBTx, STM32F401RCTx, STM32F401RDTx, STM32F401RETx, STM32F401VBHx, STM32F401VBTx, STM32F401VCHx, STM32F401VCTx, STM32F401VDHx, STM32F401VDTx, STM32F401VEHx, STM32F401VETx, STM32F405OEYx, STM32F405OGYx, STM32F405RGTx, STM32F405VGTx, STM32F405ZGTx, STM32F407IEHx, STM32F407IETx, STM32F407IGHx, STM32F407IGTx, STM32F407VETx, STM32F407VGTx, STM32F407ZETx, STM32F407ZGTx, STM32F410C8Tx, STM32F410C8Ux, STM32F410CBTx, STM32F410CBUx, STM32F410R8Ix, STM32F410R8Tx, STM32F410RBIx, STM32F410RBTx, STM32F410T8Yx, STM32F410TBYx, STM32F411CCUx, STM32F411CCYx, STM32F411CEUx, STM32F411CEYx, STM32F411RCTx, STM32F411RETx, STM32F411VCHx, STM32F411VCTx, STM32F411VEHx, STM32F411VETx, STM32F412CEUx, STM32F412CGUx, STM32F412RETx, STM32F412REYx, STM32F412REYxP, STM32F412RGTx, STM32F412RGYx, STM32F412RGYxP, STM32F412VEHx, STM32F412VETx, STM32F412VGHx, STM32F412VGTx, STM32F412ZEJx, STM32F412ZETx, STM32F412ZGJx, STM32F412ZGTx, STM32F413CGUx, STM32F413CHUx, STM32F413MGYx, STM32F413MHYx, STM32F413RGTx, STM32F413RHTx, STM32F413VGHx, STM32F413VGTx, STM32F413VHHx, STM32F413VHTx, STM32F413ZGJx, STM32F413ZGTx, STM32F413ZHJx, STM32F413ZHTx, STM32F415OGYx, STM32F415RGTx, STM32F415VGTx, STM32F415ZGTx, STM32F417IEHx, STM32F417IETx, STM32F417IGHx, STM32F417IGTx, STM32F417VETx, STM32F417VGTx, STM32F417ZETx, STM32F417ZGTx, STM32F423CHUx, STM32F423MHYx, STM32F423RHTx, STM32F423VHHx, STM32F423VHTx, STM32F423ZHJx, STM32F423ZHTx, STM32F427AGHx, STM32F427AIHx, STM32F427IGHx, STM32F427IGTx, STM32F427IIHx, STM32F427IITx, STM32F427VGTx, STM32F427VITx, STM32F427ZGTx, STM32F427ZITx, STM32F429AGHx, STM32F429AIHx, STM32F429BETx, STM32F429BGTx, STM32F429BITx, STM32F429IEHx, STM32F429IETx, STM32F429IGHx, STM32F429IGTx, STM32F429IIHx, STM32F429IITx, STM32F429NEHx, STM32F429NGHx, STM32F429NIHx, STM32F429VETx, STM32F429VGTx, STM32F429VITx, STM32F429ZETx, STM32F429ZGTx, STM32F429ZGYx, STM32F429ZITx, STM32F429ZIYx, STM32F437AIHx, STM32F437IGHx, STM32F437IGTx, STM32F437IIHx, STM32F437IITx, STM32F437VGTx, STM32F437VITx, STM32F437ZGTx, STM32F437ZITx, STM32F439AIHx, STM32F439BGTx, STM32F439BITx, STM32F439IGHx, STM32F439IGTx, STM32F439IIHx, STM32F439IITx, STM32F439NGHx, STM32F439NIHx, STM32F439VGTx, STM32F439VITx, STM32F439ZGTx, STM32F439ZGYx, STM32F439ZITx, STM32F439ZIYx, STM32F446MCYx, STM32F446MEYx, STM32F446RCTx, STM32F446RETx, STM32F446VCTx, STM32F446VETx, STM32F446ZCHx, STM32F446ZCJx, STM32F446ZCTx, STM32F446ZEHx, STM32F446ZEJx, STM32F446ZETx, STM32F469AEHx, STM32F469AEYx, STM32F469AGHx, STM32F469AGYx, STM32F469AIHx, STM32F469AIYx, STM32F469BETx, STM32F469BGTx, STM32F469BITx, STM32F469IEHx, STM32F469IETx, STM32F469IGHx, STM32F469IGTx, STM32F469IIHx, STM32F469IITx, STM32F469NEHx, STM32F469NGHx, STM32F469NIHx, STM32F469VETx, STM32F469VGTx, STM32F469VITx, STM32F469ZETx, STM32F469ZGTx, STM32F469ZITx, STM32F479AGHx, STM32F479AGYx, STM32F479AIHx, STM32F479AIYx, STM32F479BGTx, STM32F479BITx, STM32F479IGHx, STM32F479IGTx, STM32F479IIHx, STM32F479IITx, STM32F479NGHx, STM32F479NIHx, STM32F479VGTx, STM32F479VITx, STM32F479ZGTx, STM32F479ZITx, STM32F722ICKx, STM32F722ICTx, STM32F722IEKx, STM32F722IETx, STM32F722RCTx, STM32F722RETx, STM32F722VCTx, STM32F722VETx, STM32F722ZCTx, STM32F722ZETx, STM32F723ICKx, STM32F723ICTx, STM32F723IEKx, STM32F723IETx, STM32F723VCTx, STM32F723VCYx, STM32F723VETx, STM32F723VEYx, STM32F723ZCIx, STM32F723ZCTx, STM32F723ZEIx, STM32F723ZETx, STM32F730I8Kx, STM32F730R8Tx, STM32F730V8Tx, STM32F730Z8Tx, STM32F732IEKx, STM32F732IETx, STM32F732RETx, STM32F732VETx, STM32F732ZETx, STM32F733IEKx, STM32F733IETx, STM32F733VETx, STM32F733VEYx, STM32F733ZEIx, STM32F733ZETx, STM32F745IEKx, STM32F745IETx, STM32F745IGKx, STM32F745IGTx, STM32F745VEHx, STM32F745VETx, STM32F745VGHx, STM32F745VGTx, STM32F745ZETx, STM32F745ZGTx, STM32F746BETx, STM32F746BGTx, STM32F746IEKx, STM32F746IETx, STM32F746IGKx, STM32F746IGTx, STM32F746NEHx, STM32F746NGHx, STM32F746VEHx, STM32F746VETx, STM32F746VGHx, STM32F746VGTx, STM32F746ZETx, STM32F746ZEYx, STM32F746ZGTx, STM32F746ZGYx, STM32F750N8Hx, STM32F750V8Tx, STM32F750Z8Tx, STM32F756BGTx, STM32F756IGKx, STM32F756IGTx, STM32F756NGHx, STM32F756VGHx, STM32F756VGTx, STM32F756ZGTx, STM32F756ZGYx, STM32F765BGTx, STM32F765BITx, STM32F765IGKx, STM32F765IGTx, STM32F765IIKx, STM32F765IITx, STM32F765NGHx, STM32F765NIHx, STM32F765VGHx, STM32F765VGTx, STM32F765VIHx, STM32F765VITx, STM32F765ZGTx, STM32F765ZITx, STM32F767BGTx, STM32F767BITx, STM32F767IGKx, STM32F767IGTx, STM32F767IIKx, STM32F767IITx, STM32F767NGHx, STM32F767NIHx, STM32F767VGHx, STM32F767VGTx, STM32F767VIHx, STM32F767VITx, STM32F767ZGTx, STM32F767ZITx, STM32F768AIYx, STM32F769AGYx, STM32F769AIYx, STM32F769BGTx, STM32F769BITx, STM32F769IGTx, STM32F769IITx, STM32F769NGHx, STM32F769NIHx, STM32F777BITx, STM32F777IIKx, STM32F777IITx, STM32F777NIHx, STM32F777VIHx, STM32F777VITx, STM32F777ZITx, STM32F778AIYx, STM32F779AIYx, STM32F779BITx, STM32F779IITx, STM32F779NIHx, STM32G4A1CETx, STM32G4A1CEUx, STM32G4A1KEUx, STM32G4A1MESx, STM32G4A1METx, STM32G4A1REIx, STM32G4A1RETx, STM32G4A1REYx, STM32G4A1VETx, STM32G030C6Tx, STM32G030C8Tx, STM32G030F6Px, STM32G030J6Mx, STM32G030K6Tx, STM32G030K8Tx, STM32G031C4Tx, STM32G031C4Ux, STM32G031C6Tx, STM32G031C6Ux, STM32G031C8Tx, STM32G031C8Ux, STM32G031F4Px, STM32G031F6Px, STM32G031F8Px, STM32G031G4Ux, STM32G031G6Ux, STM32G031G8Ux, STM32G031J4Mx, STM32G031J6Mx, STM32G031K4Tx, STM32G031K4Ux, STM32G031K6Tx, STM32G031K6Ux, STM32G031K8Tx, STM32G031K8Ux, STM32G031Y8Yx, STM32G041C6Tx, STM32G041C6Ux, STM32G041C8Tx, STM32G041C8Ux, STM32G041F6Px, STM32G041F8Px, STM32G041G6Ux, STM32G041G8Ux, STM32G041J6Mx, STM32G041K6Tx, STM32G041K6Ux, STM32G041K8Tx, STM32G041K8Ux, STM32G041Y8Yx, STM32G070CBTx, STM32G070KBTx, STM32G070RBTx, STM32G071C6Tx, STM32G071C6Ux, STM32G071C8Tx, STM32G071C8Ux, STM32G071CBTx, STM32G071CBUx, STM32G071EBYx, STM32G071G6Ux, STM32G071G8Ux, STM32G071G8UxN, STM32G071GBUx, STM32G071GBUxN, STM32G071K6Tx, STM32G071K6Ux, STM32G071K8Tx, STM32G071K8TxN, STM32G071K8Ux, STM32G071K8UxN, STM32G071KBTx, STM32G071KBTxN, STM32G071KBUx, STM32G071KBUxN, STM32G071R6Tx, STM32G071R8Tx, STM32G071RBIx, STM32G071RBTx, STM32G081CBTx, STM32G081CBUx, STM32G081EBYx, STM32G081GBUx, STM32G081GBUxN, STM32G081KBTx, STM32G081KBTxN, STM32G081KBUx, STM32G081KBUxN, STM32G081RBIx, STM32G081RBTx, STM32G431C6Tx, STM32G431C6Ux, STM32G431C8Tx, STM32G431C8Ux, STM32G431CBTx, STM32G431CBUx, STM32G431CBYx, STM32G431K6Tx, STM32G431K6Ux, STM32G431K8Tx, STM32G431K8Ux, STM32G431KBTx, STM32G431KBUx, STM32G431M6Tx, STM32G431M8Tx, STM32G431MBTx, STM32G431R6Ix, STM32G431R6Tx, STM32G431R8Ix, STM32G431R8Tx, STM32G431RBIx, STM32G431RBTx, STM32G431V6Tx, STM32G431V8Tx, STM32G431VBTx, STM32G441CBTx, STM32G441CBUx, STM32G441CBYx, STM32G441KBTx, STM32G441KBUx, STM32G441MBTx, STM32G441RBIx, STM32G441RBTx, STM32G441VBTx, STM32G471CCTx, STM32G471CCUx, STM32G471CETx, STM32G471CEUx, STM32G471MCTx, STM32G471METx, STM32G471MEYx, STM32G471QCTx, STM32G471QETx, STM32G471RCTx, STM32G471RETx, STM32G471VCHx, STM32G471VCIx, STM32G471VCTx, STM32G471VEHx, STM32G471VEIx, STM32G471VETx, STM32G473CBTx, STM32G473CBUx, STM32G473CCTx, STM32G473CCUx, STM32G473CETx, STM32G473CEUx, STM32G473MBTx, STM32G473MCTx, STM32G473METx, STM32G473MEYx, STM32G473PBIx, STM32G473PCIx, STM32G473PEIx, STM32G473QBTx, STM32G473QCTx, STM32G473QETx, STM32G473RBTx, STM32G473RCTx, STM32G473RETx, STM32G473VBHx, STM32G473VBIx, STM32G473VBTx, STM32G473VCHx, STM32G473VCIx, STM32G473VCTx, STM32G473VEHx, STM32G473VEIx, STM32G473VETx, STM32G474CBTx, STM32G474CBUx, STM32G474CCTx, STM32G474CCUx, STM32G474CETx, STM32G474CEUx, STM32G474MBTx, STM32G474MCTx, STM32G474METx, STM32G474MEYx, STM32G474PBIx, STM32G474PCIx, STM32G474PEIx, STM32G474QBTx, STM32G474QCTx, STM32G474QETx, STM32G474RBTx, STM32G474RCTx, STM32G474RETx, STM32G474VBHx, STM32G474VBIx, STM32G474VBTx, STM32G474VCHx, STM32G474VCIx, STM32G474VCTx, STM32G474VEHx, STM32G474VEIx, STM32G474VETx, STM32G483CETx, STM32G483CEUx, STM32G483METx, STM32G483MEYx, STM32G483PEIx, STM32G483QETx, STM32G483RETx, STM32G483VEHx, STM32G483VEIx, STM32G483VETx, STM32G484CETx, STM32G484CEUx, STM32G484METx, STM32G484MEYx, STM32G484PEIx, STM32G484QETx, STM32G484RETx, STM32G484VEHx, STM32G484VEIx, STM32G484VETx, STM32G491CCTx, STM32G491CCUx, STM32G491CETx, STM32G491CEUx, STM32G491KCUx, STM32G491KEUx, STM32G491MCSx, STM32G491MCTx, STM32G491MESx, STM32G491METx, STM32G491RCIx, STM32G491RCTx, STM32G491REIx, STM32G491RETx, STM32G491REYx, STM32G491VCTx, STM32G491VETx, STM32GBK1CBTx, STM32H7A3AGIxQ, STM32H7A3AIIxQ, STM32H7A3IGKx, STM32H7A3IGKxQ, STM32H7A3IGTx, STM32H7A3IGTxQ, STM32H7A3IIKx, STM32H7A3IIKxQ, STM32H7A3IITx, STM32H7A3IITxQ, STM32H7A3LGHxQ, STM32H7A3LIHxQ, STM32H7A3NGHx, STM32H7A3NIHx, STM32H7A3QIYxQ, STM32H7A3RGTx, STM32H7A3RITx, STM32H7A3VGHx, STM32H7A3VGHxQ, STM32H7A3VGTx, STM32H7A3VGTxQ, STM32H7A3VIHx, STM32H7A3VIHxQ, STM32H7A3VITx, STM32H7A3VITxQ, STM32H7A3ZGTx, STM32H7A3ZGTxQ, STM32H7A3ZITx, STM32H7A3ZITxQ, STM32H7B3AIIxQ, STM32H7B3IIKx, STM32H7B3IIKxQ, STM32H7B3IITx, STM32H7B3IITxQ, STM32H7B3LIHxQ, STM32H7B3NIHx, STM32H7B3QIYxQ, STM32H7B3RITx, STM32H7B3VIHx, STM32H7B3VIHxQ, STM32H7B3VITx, STM32H7B3VITxQ, STM32H7B3ZITx, STM32H7B3ZITxQ, STM32H7B0ABIxQ, STM32H7B0IBKxQ, STM32H7B0IBTx, STM32H7B0RBTx, STM32H7B0VBTx, STM32H7B0ZBTx, STM32H723VEHx, STM32H723VETx, STM32H723VGHx, STM32H723VGTx, STM32H723ZEIx, STM32H723ZETx, STM32H723ZGIx, STM32H723ZGTx, STM32H725AEIx, STM32H725AGIx, STM32H725IEKx, STM32H725IETx, STM32H725IGKx, STM32H725IGTx, STM32H725REVx, STM32H725RGVx, STM32H725VETx, STM32H725VGTx, STM32H725VGYx, STM32H725ZETx, STM32H725ZGTx, STM32H730ABIxQ, STM32H730IBKxQ, STM32H730IBTxQ, STM32H730VBHx, STM32H730VBTx, STM32H730ZBIx, STM32H730ZBTx, STM32H733VGHx, STM32H733VGTx, STM32H733ZGIx, STM32H733ZGTx, STM32H735AGIx, STM32H735IGKx, STM32H735IGTx, STM32H735RGVx, STM32H735VGTx, STM32H735VGYx, STM32H735ZGTx, STM32H742AGIx, STM32H742AIIx, STM32H742BGTx, STM32H742BITx, STM32H742IGKx, STM32H742IGTx, STM32H742IIKx, STM32H742IITx, STM32H742VGHx, STM32H742VGTx, STM32H742VIHx, STM32H742VITx, STM32H742XGHx, STM32H742XIHx, STM32H742ZGTx, STM32H742ZITx, STM32H743AGIx, STM32H743AIIx, STM32H743BGTx, STM32H743BITx, STM32H743IGKx, STM32H743IGTx, STM32H743IIKx, STM32H743IITx, STM32H743VGHx, STM32H743VGTx, STM32H743VIHx, STM32H743VITx, STM32H743XGHx, STM32H743XIHx, STM32H743ZGTx, STM32H743ZITx, STM32H745BGTx, STM32H745BITx, STM32H745IGKx, STM32H745IGTx, STM32H745IIKx, STM32H745IITx, STM32H745XGHx, STM32H745XIHx, STM32H745ZGTx, STM32H745ZITx, STM32H747AGIx, STM32H747AIIx, STM32H747BGTx, STM32H747BITx, STM32H747IGTx, STM32H747IITx, STM32H747XGHx, STM32H747XIHx, STM32H747ZIYx, STM32H750IBKx, STM32H750IBTx, STM32H750VBTx, STM32H750XBHx, STM32H750ZBTx, STM32H753AIIx, STM32H753BITx, STM32H753IIKx, STM32H753IITx, STM32H753VIHx, STM32H753VITx, STM32H753XIHx, STM32H753ZITx, STM32H755BITx, STM32H755IIKx, STM32H755IITx, STM32H755XIHx, STM32H755ZITx, STM32H757AIIx, STM32H757BITx, STM32H757IITx, STM32H757XIHx, STM32H757ZIYx, STM32L4A6AGIx, STM32L4A6AGIxP, STM32L4A6QGIx, STM32L4A6QGIxP, STM32L4A6RGTx, STM32L4A6RGTxP, STM32L4A6VGTx, STM32L4A6VGTxP, STM32L4A6VGYx, STM32L4A6VGYxP, STM32L4A6ZGTx, STM32L4A6ZGTxP, STM32L4P5AEIx, STM32L4P5AGIx, STM32L4P5AGIxP, STM32L4P5CETx, STM32L4P5CEUx, STM32L4P5CGTx, STM32L4P5CGTxP, STM32L4P5CGUx, STM32L4P5CGUxP, STM32L4P5QEIx, STM32L4P5QGIx, STM32L4P5QGIxP, STM32L4P5RETx, STM32L4P5RGTx, STM32L4P5RGTxP, STM32L4P5VETx, STM32L4P5VEYx, STM32L4P5VGTx, STM32L4P5VGTxP, STM32L4P5VGYx, STM32L4P5VGYxP, STM32L4P5ZETx, STM32L4P5ZGTx, STM32L4P5ZGTxP, STM32L4Q5AGIx, STM32L4Q5CGTx, STM32L4Q5CGUx, STM32L4Q5QGIx, STM32L4Q5RGTx, STM32L4Q5VGTx, STM32L4Q5VGYx, STM32L4Q5ZGTx, STM32L4R5AGIx, STM32L4R5AIIx, STM32L4R5QGIx, STM32L4R5QIIx, STM32L4R5VGTx, STM32L4R5VITx, STM32L4R5ZGTx, STM32L4R5ZGYx, STM32L4R5ZITx, STM32L4R5ZITxP, STM32L4R5ZIYx, STM32L4R7AIIx, STM32L4R7VITx, STM32L4R7ZITx, STM32L4R9AGIx, STM32L4R9AIIx, STM32L4R9VGTx, STM32L4R9VITx, STM32L4R9ZGJx, STM32L4R9ZGTx, STM32L4R9ZGYx, STM32L4R9ZIJx, STM32L4R9ZITx, STM32L4R9ZIYx, STM32L4R9ZIYxP, STM32L4S5AIIx, STM32L4S5QIIx, STM32L4S5VITx, STM32L4S5ZITx, STM32L4S5ZIYx, STM32L4S7AIIx, STM32L4S7VITx, STM32L4S7ZITx, STM32L4S9AIIx, STM32L4S9VITx, STM32L4S9ZIJx, STM32L4S9ZITx, STM32L4S9ZIYx, STM32L010C6Tx, STM32L010F4Px, STM32L010K4Tx, STM32L010K8Tx, STM32L010R8Tx, STM32L010RBTx, STM32L011D3Px, STM32L011D4Px, STM32L011E3Yx, STM32L011E4Yx, STM32L011F3Px, STM32L011F3Ux, STM32L011F4Px, STM32L011F4Ux, STM32L011G3Ux, STM32L011G4Ux, STM32L011K3Tx, STM32L011K3Ux, STM32L011K4Tx, STM32L011K4Ux, STM32L021D4Px, STM32L021F4Px, STM32L021F4Ux, STM32L021G4Ux, STM32L021K4Tx, STM32L021K4Ux, STM32L031C4Tx, STM32L031C4Ux, STM32L031C6Tx, STM32L031C6Ux, STM32L031E4Yx, STM32L031E6Yx, STM32L031F4Px, STM32L031F6Px, STM32L031G4Ux, STM32L031G6Ux, STM32L031G6UxS, STM32L031K4Tx, STM32L031K4Ux, STM32L031K6Tx, STM32L031K6Ux, STM32L041C4Tx, STM32L041C6Tx, STM32L041C6Ux, STM32L041E6Yx, STM32L041F6Px, STM32L041G6Ux, STM32L041G6UxS, STM32L041K6Tx, STM32L041K6Ux, STM32L051C6Tx, STM32L051C6Ux, STM32L051C8Tx, STM32L051C8Ux, STM32L051K6Tx, STM32L051K6Ux, STM32L051K8Tx, STM32L051K8Ux, STM32L051R6Hx, STM32L051R6Tx, STM32L051R8Hx, STM32L051R8Tx, STM32L051T6Yx, STM32L051T8Yx, STM32L052C6Tx, STM32L052C6Ux, STM32L052C8Tx, STM32L052C8Ux, STM32L052K6Tx, STM32L052K6Ux, STM32L052K8Tx, STM32L052K8Ux, STM32L052R6Hx, STM32L052R6Tx, STM32L052R8Hx, STM32L052R8Tx, STM32L052T6Yx, STM32L052T8Fx, STM32L052T8Yx, STM32L053C6Tx, STM32L053C6Ux, STM32L053C8Tx, STM32L053C8Ux, STM32L053R6Hx, STM32L053R6Tx, STM32L053R8Hx, STM32L053R8Tx, STM32L062C8Ux, STM32L062K8Tx, STM32L062K8Ux, STM32L063C8Tx, STM32L063C8Ux, STM32L063R8Tx, STM32L071C8Tx, STM32L071C8Ux, STM32L071CBTx, STM32L071CBUx, STM32L071CBYx, STM32L071CZTx, STM32L071CZUx, STM32L071CZYx, STM32L071K8Ux, STM32L071KBTx, STM32L071KBUx, STM32L071KZTx, STM32L071KZUx, STM32L071RBHx, STM32L071RBTx, STM32L071RZHx, STM32L071RZTx, STM32L071V8Ix, STM32L071V8Tx, STM32L071VBIx, STM32L071VBTx, STM32L071VZIx, STM32L071VZTx, STM32L072CBTx, STM32L072CBUx, STM32L072CBYx, STM32L072CZEx, STM32L072CZTx, STM32L072CZUx, STM32L072CZYx, STM32L072KBTx, STM32L072KBUx, STM32L072KZTx, STM32L072KZUx, STM32L072RBHx, STM32L072RBIx, STM32L072RBTx, STM32L072RZHx, STM32L072RZIx, STM32L072RZTx, STM32L072V8Ix, STM32L072V8Tx, STM32L072VBIx, STM32L072VBTx, STM32L072VZIx, STM32L072VZTx, STM32L073CBTx, STM32L073CBUx, STM32L073CZTx, STM32L073CZUx, STM32L073RBHx, STM32L073RBTx, STM32L073RZHx, STM32L073RZIx, STM32L073RZTx, STM32L073V8Ix, STM32L073V8Tx, STM32L073VBIx, STM32L073VBTx, STM32L073VZIx, STM32L073VZTx, STM32L081CBTx, STM32L081CZTx, STM32L081CZUx, STM32L081KZTx, STM32L081KZUx, STM32L082CZUx, STM32L082CZYx, STM32L082KBTx, STM32L082KBUx, STM32L082KZTx, STM32L082KZUx, STM32L083CBTx, STM32L083CZTx, STM32L083CZUx, STM32L083RBHx, STM32L083RBTx, STM32L083RZHx, STM32L083RZTx, STM32L083V8Ix, STM32L083V8Tx, STM32L083VBIx, STM32L083VBTx, STM32L083VZIx, STM32L083VZTx, STM32L100C6Ux, STM32L100C6UxA, STM32L100R8Tx, STM32L100R8TxA, STM32L100RBTx, STM32L100RBTxA, STM32L100RCTx, STM32L151C6Tx, STM32L151C6TxA, STM32L151C6Ux, STM32L151C6UxA, STM32L151C8Tx, STM32L151C8TxA, STM32L151C8Ux, STM32L151C8UxA, STM32L151CBTx, STM32L151CBTxA, STM32L151CBUx, STM32L151CBUxA, STM32L151CCTx, STM32L151CCUx, STM32L151QCHx, STM32L151QDHx, STM32L151QEHx, STM32L151R6Hx, STM32L151R6HxA, STM32L151R6Tx, STM32L151R6TxA, STM32L151R8Hx, STM32L151R8HxA, STM32L151R8Tx, STM32L151R8TxA, STM32L151RBHx, STM32L151RBHxA, STM32L151RBTx, STM32L151RBTxA, STM32L151RCTx, STM32L151RCTxA, STM32L151RCYx, STM32L151RDTx, STM32L151RDYx, STM32L151RETx, STM32L151UCYx, STM32L151V8Hx, STM32L151V8HxA, STM32L151V8Tx, STM32L151V8TxA, STM32L151VBHx, STM32L151VBHxA, STM32L151VBTx, STM32L151VBTxA, STM32L151VCHx, STM32L151VCTx, STM32L151VCTxA, STM32L151VDTx, STM32L151VDTxX, STM32L151VDYxX, STM32L151VETx, STM32L151VEYx, STM32L151ZCTx, STM32L151ZDTx, STM32L151ZETx, STM32L152C6Tx, STM32L152C6TxA, STM32L152C6Ux, STM32L152C6UxA, STM32L152C8Tx, STM32L152C8TxA, STM32L152C8Ux, STM32L152C8UxA, STM32L152CBTx, STM32L152CBTxA, STM32L152CBUx, STM32L152CBUxA, STM32L152CCTx, STM32L152CCUx, STM32L152QCHx, STM32L152QDHx, STM32L152QEHx, STM32L152R6Hx, STM32L152R6HxA, STM32L152R6Tx, STM32L152R6TxA, STM32L152R8Hx, STM32L152R8HxA, STM32L152R8Tx, STM32L152R8TxA, STM32L152RBHx, STM32L152RBHxA, STM32L152RBTx, STM32L152RBTxA, STM32L152RCTx, STM32L152RCTxA, STM32L152RDTx, STM32L152RDYx, STM32L152RETx, STM32L152UCYx, STM32L152V8Hx, STM32L152V8HxA, STM32L152V8Tx, STM32L152V8TxA, STM32L152VBHx, STM32L152VBHxA, STM32L152VBTx, STM32L152VBTxA, STM32L152VCHx, STM32L152VCTx, STM32L152VCTxA, STM32L152VDTx, STM32L152VDTxX, STM32L152VETx, STM32L152VEYx, STM32L152ZCTx, STM32L152ZDTx, STM32L152ZETx, STM32L162QCHx, STM32L162QDHx, STM32L162RCTx, STM32L162RCTxA, STM32L162RDTx, STM32L162RDYx, STM32L162RETx, STM32L162VCHx, STM32L162VCTx, STM32L162VCTxA, STM32L162VDTx, STM32L162VDYxX, STM32L162VETx, STM32L162VEYx, STM32L162ZCTx, STM32L162ZDTx, STM32L162ZETx, STM32L412C8Tx, STM32L412C8Ux, STM32L412CBTx, STM32L412CBTxP, STM32L412CBUx, STM32L412CBUxP, STM32L412K8Tx, STM32L412K8Ux, STM32L412KBTx, STM32L412KBUx, STM32L412R8Ix, STM32L412R8Tx, STM32L412RBIx, STM32L412RBIxP, STM32L412RBTx, STM32L412RBTxP, STM32L412T8Yx, STM32L412TBYx, STM32L412TBYxP, STM32L422CBTx, STM32L422CBUx, STM32L422KBTx, STM32L422KBUx, STM32L422RBIx, STM32L422RBTx, STM32L422TBYx, STM32L431CBTx, STM32L431CBUx, STM32L431CBYx, STM32L431CCTx, STM32L431CCUx, STM32L431CCYx, STM32L431KBUx, STM32L431KCUx, STM32L431RBIx, STM32L431RBTx, STM32L431RBYx, STM32L431RCIx, STM32L431RCTx, STM32L431RCYx, STM32L431VCIx, STM32L431VCTx, STM32L432KBUx, STM32L432KCUx, STM32L433CBTx, STM32L433CBUx, STM32L433CBYx, STM32L433CCTx, STM32L433CCUx, STM32L433CCYx, STM32L433RBIx, STM32L433RBTx, STM32L433RBYx, STM32L433RCIx, STM32L433RCTx, STM32L433RCTxP, STM32L433RCYx, STM32L433VCIx, STM32L433VCTx, STM32L442KCUx, STM32L443CCTx, STM32L443CCUx, STM32L443CCYx, STM32L443RCIx, STM32L443RCTx, STM32L443RCYx, STM32L443VCIx, STM32L443VCTx, STM32L451CCUx, STM32L451CEUx, STM32L451RCIx, STM32L451RCTx, STM32L451RCYx, STM32L451REIx, STM32L451RETx, STM32L451REYx, STM32L451VCIx, STM32L451VCTx, STM32L451VEIx, STM32L451VETx, STM32L452CCUx, STM32L452CEUx, STM32L452RCIx, STM32L452RCTx, STM32L452RCYx, STM32L452REIx, STM32L452RETx, STM32L452RETxP, STM32L452REYx, STM32L452VCIx, STM32L452VCTx, STM32L452VEIx, STM32L452VETx, STM32L462CEUx, STM32L462REIx, STM32L462RETx, STM32L462REYx, STM32L462VEIx, STM32L462VETx, STM32L471QEIx, STM32L471QGIx, STM32L471RETx, STM32L471RGTx, STM32L471VETx, STM32L471VGTx, STM32L471ZEJx, STM32L471ZETx, STM32L471ZGJx, STM32L471ZGTx, STM32L475RCTx, STM32L475RETx, STM32L475RGTx, STM32L475VCTx, STM32L475VETx, STM32L475VGTx, STM32L476JEYx, STM32L476JGYx, STM32L476JGYxP, STM32L476MEYx, STM32L476MGYx, STM32L476QEIx, STM32L476QGIx, STM32L476RCTx, STM32L476RETx, STM32L476RGTx, STM32L476VCTx, STM32L476VETx, STM32L476VGTx, STM32L476ZETx, STM32L476ZGJx, STM32L476ZGTx, STM32L476ZGTxP, STM32L485JCYx, STM32L485JEYx, STM32L486JGYx, STM32L486QGIx, STM32L486RGTx, STM32L486VGTx, STM32L486ZGTx, STM32L496AEIx, STM32L496AGIx, STM32L496AGIxP, STM32L496QEIx, STM32L496QGIx, STM32L496QGIxP, STM32L496RETx, STM32L496RGTx, STM32L496RGTxP, STM32L496VETx, STM32L496VGTx, STM32L496VGTxP, STM32L496VGYx, STM32L496VGYxP, STM32L496WGYxP, STM32L496ZETx, STM32L496ZGTx, STM32L496ZGTxP, STM32L552CCTx, STM32L552CCUx, STM32L552CETx, STM32L552CETxP, STM32L552CEUx, STM32L552CEUxP, STM32L552MEYxP, STM32L552MEYxQ, STM32L552QCIxQ, STM32L552QEIx, STM32L552QEIxP, STM32L552QEIxQ, STM32L552RCTx, STM32L552RETx, STM32L552RETxP, STM32L552RETxQ, STM32L552VCTxQ, STM32L552VETx, STM32L552VETxQ, STM32L552ZCTxQ, STM32L552ZETx, STM32L552ZETxQ, STM32L562CETx, STM32L562CETxP, STM32L562CEUx, STM32L562CEUxP, STM32L562MEYxP, STM32L562MEYxQ, STM32L562QEIx, STM32L562QEIxP, STM32L562QEIxQ, STM32L562RETx, STM32L562RETxP, STM32L562RETxQ, STM32L562VETx, STM32L562VETxQ, STM32L562ZETx, STM32L562ZETxQ, STM32MP151AAAx, STM32MP151AABx, STM32MP151AACx, STM32MP151AADx, STM32MP151CAAx, STM32MP151CABx, STM32MP151CACx, STM32MP151CADx, STM32MP151DAAx, STM32MP151DABx, STM32MP151DACx, STM32MP151DADx, STM32MP151FAAx, STM32MP151FABx, STM32MP151FACx, STM32MP151FADx, STM32MP153AAAx, STM32MP153AABx, STM32MP153AACx, STM32MP153AADx, STM32MP153CAAx, STM32MP153CABx, STM32MP153CACx, STM32MP153CADx, STM32MP153DAAx, STM32MP153DABx, STM32MP153DACx, STM32MP153DADx, STM32MP153FAAx, STM32MP153FABx, STM32MP153FACx, STM32MP153FADx, STM32MP157AAAx, STM32MP157AABx, STM32MP157AACx, STM32MP157AADx, STM32MP157CAAx, STM32MP157CABx, STM32MP157CACx, STM32MP157CADx, STM32MP157DAAx, STM32MP157DABx, STM32MP157DACx, STM32MP157DADx, STM32MP157FAAx, STM32MP157FABx, STM32MP157FACx, STM32MP157FADx, STM32WB5MMGHx, STM32WB30CEUx, STM32WB35CCUx, STM32WB35CEUx, STM32WB50CGUx, STM32WB55CCUx, STM32WB55CEUx, STM32WB55CGUx, STM32WB55RCVx, STM32WB55REVx, STM32WB55RGVx, STM32WB55VCQx, STM32WB55VCYx, STM32WB55VEQx, STM32WB55VEYx, STM32WB55VGQx, STM32WB55VGYx, STM32WB55VYYx] -No map found for id: -No map found for id: -No map found for id: -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported -Warning: MCU matched multiple possible MCUs: [STM32F030C6Tx, STM32F030C8Tx, STM32F030CCTx, STM32F030F4Px, STM32F030K6Tx, STM32F030R8Tx, STM32F030RCTx, STM32F031C4Tx, STM32F031C6Tx, STM32F031E6Yx, STM32F031F4Px, STM32F031F6Px, STM32F031G4Ux, STM32F031G6Ux, STM32F031K4Ux, STM32F031K6Tx, STM32F031K6Ux, STM32F038C6Tx, STM32F038E6Yx, STM32F038F6Px, STM32F038G6Ux, STM32F038K6Ux, STM32F042C4Tx, STM32F042C4Ux, STM32F042C6Tx, STM32F042C6Ux, STM32F042F4Px, STM32F042F6Px, STM32F042G4Ux, STM32F042G6Ux, STM32F042K4Tx, STM32F042K4Ux, STM32F042K6Tx, STM32F042K6Ux, STM32F042T6Yx, STM32F048C6Ux, STM32F048G6Ux, STM32F048T6Yx, STM32F051C4Tx, STM32F051C4Ux, STM32F051C6Tx, STM32F051C6Ux, STM32F051C8Tx, STM32F051C8Ux, STM32F051K4Tx, STM32F051K4Ux, STM32F051K6Tx, STM32F051K6Ux, STM32F051K8Tx, STM32F051K8Ux, STM32F051R4Tx, STM32F051R6Tx, STM32F051R8Hx, STM32F051R8Tx, STM32F051T8Yx, STM32F058C8Ux, STM32F058R8Hx, STM32F058R8Tx, STM32F058T8Yx, STM32F070C6Tx, STM32F070CBTx, STM32F070F6Px, STM32F070RBTx, STM32F071C8Tx, STM32F071C8Ux, STM32F071CBTx, STM32F071CBUx, STM32F071CBYx, STM32F071RBTx, STM32F071V8Hx, STM32F071V8Tx, STM32F071VBHx, STM32F071VBTx, STM32F072C8Tx, STM32F072C8Ux, STM32F072CBTx, STM32F072CBUx, STM32F072CBYx, STM32F072R8Tx, STM32F072RBHx, STM32F072RBIx, STM32F072RBTx, STM32F072V8Hx, STM32F072V8Tx, STM32F072VBHx, STM32F072VBTx, STM32F078CBTx, STM32F078CBUx, STM32F078CBYx, STM32F078RBHx, STM32F078RBTx, STM32F078VBHx, STM32F078VBTx, STM32F091CBTx, STM32F091CBUx, STM32F091CCTx, STM32F091CCUx, STM32F091RBTx, STM32F091RCHx, STM32F091RCTx, STM32F091RCYx, STM32F091VBTx, STM32F091VCHx, STM32F091VCTx, STM32F098CCTx, STM32F098CCUx, STM32F098RCHx, STM32F098RCTx, STM32F098RCYx, STM32F098VCHx, STM32F098VCTx, STM32F100C4Tx, STM32F100C6Tx, STM32F100C8Tx, STM32F100CBTx, STM32F100R4Hx, STM32F100R4Tx, STM32F100R6Hx, STM32F100R6Tx, STM32F100R8Hx, STM32F100R8Tx, STM32F100RBHx, STM32F100RBTx, STM32F100RCTx, STM32F100RDTx, STM32F100RETx, STM32F100V8Tx, STM32F100VBTx, STM32F100VCTx, STM32F100VDTx, STM32F100VETx, STM32F100ZCTx, STM32F100ZDTx, STM32F100ZETx, STM32F101C4Tx, STM32F101C6Tx, STM32F101C8Tx, STM32F101C8Ux, STM32F101CBTx, STM32F101CBUx, STM32F101R4Tx, STM32F101R6Tx, STM32F101R8Tx, STM32F101RBHx, STM32F101RBTx, STM32F101RCTx, STM32F101RDTx, STM32F101RETx, STM32F101RFTx, STM32F101RGTx, STM32F101T4Ux, STM32F101T6Ux, STM32F101T8Ux, STM32F101TBUx, STM32F101V8Tx, STM32F101VBTx, STM32F101VCTx, STM32F101VDTx, STM32F101VETx, STM32F101VFTx, STM32F101VGTx, STM32F101ZCTx, STM32F101ZDTx, STM32F101ZETx, STM32F101ZFTx, STM32F101ZGTx, STM32F102C4Tx, STM32F102C6Tx, STM32F102C8Tx, STM32F102CBTx, STM32F102R4Tx, STM32F102R6Tx, STM32F102R8Tx, STM32F102RBTx, STM32F103C4Tx, STM32F103C6Tx, STM32F103C6Ux, STM32F103C8Tx, STM32F103CBTx, STM32F103CBUx, STM32F103R4Hx, STM32F103R4Tx, STM32F103R6Hx, STM32F103R6Tx, STM32F103R8Hx, STM32F103R8Tx, STM32F103RBHx, STM32F103RBTx, STM32F103RCTx, STM32F103RCYx, STM32F103RDTx, STM32F103RDYx, STM32F103RETx, STM32F103REYx, STM32F103RFTx, STM32F103RGTx, STM32F103T4Ux, STM32F103T6Ux, STM32F103T8Ux, STM32F103TBUx, STM32F103V8Hx, STM32F103V8Tx, STM32F103VBHx, STM32F103VBIx, STM32F103VBTx, STM32F103VCHx, STM32F103VCTx, STM32F103VDHx, STM32F103VDTx, STM32F103VEHx, STM32F103VETx, STM32F103VFTx, STM32F103VGTx, STM32F103ZCHx, STM32F103ZCTx, STM32F103ZDHx, STM32F103ZDTx, STM32F103ZEHx, STM32F103ZETx, STM32F103ZFHx, STM32F103ZFTx, STM32F103ZGHx, STM32F103ZGTx, STM32F105R8Tx, STM32F105RBTx, STM32F105RCTx, STM32F105V8Hx, STM32F105V8Tx, STM32F105VBHx, STM32F105VBTx, STM32F105VCTx, STM32F107RBTx, STM32F107RCTx, STM32F107VBTx, STM32F107VCHx, STM32F107VCTx, STM32F205RBTx, STM32F205RCTx, STM32F205RETx, STM32F205REYx, STM32F205RFTx, STM32F205RGEx, STM32F205RGTx, STM32F205RGYx, STM32F205VBTx, STM32F205VCTx, STM32F205VETx, STM32F205VFTx, STM32F205VGTx, STM32F205ZCTx, STM32F205ZETx, STM32F205ZFTx, STM32F205ZGTx, STM32F207ICHx, STM32F207ICTx, STM32F207IEHx, STM32F207IETx, STM32F207IFHx, STM32F207IFTx, STM32F207IGHx, STM32F207IGTx, STM32F207VCTx, STM32F207VETx, STM32F207VFTx, STM32F207VGTx, STM32F207ZCTx, STM32F207ZETx, STM32F207ZFTx, STM32F207ZGTx, STM32F215RETx, STM32F215RGTx, STM32F215VETx, STM32F215VGTx, STM32F215ZETx, STM32F215ZGTx, STM32F217IEHx, STM32F217IETx, STM32F217IGHx, STM32F217IGTx, STM32F217VETx, STM32F217VGTx, STM32F217ZETx, STM32F217ZGTx, STM32F301C6Tx, STM32F301C8Tx, STM32F301C8Yx, STM32F301K6Tx, STM32F301K6Ux, STM32F301K8Tx, STM32F301K8Ux, STM32F301R6Tx, STM32F301R8Tx, STM32F302C6Tx, STM32F302C8Tx, STM32F302C8Yx, STM32F302CBTx, STM32F302CCTx, STM32F302K6Ux, STM32F302K8Ux, STM32F302R6Tx, STM32F302R8Tx, STM32F302RBTx, STM32F302RCTx, STM32F302RDTx, STM32F302RETx, STM32F302VBTx, STM32F302VCTx, STM32F302VCYx, STM32F302VDHx, STM32F302VDTx, STM32F302VEHx, STM32F302VETx, STM32F302ZDTx, STM32F302ZETx, STM32F303C6Tx, STM32F303C8Tx, STM32F303C8Yx, STM32F303CBTx, STM32F303CCTx, STM32F303K6Tx, STM32F303K6Ux, STM32F303K8Tx, STM32F303K8Ux, STM32F303R6Tx, STM32F303R8Tx, STM32F303RBTx, STM32F303RCTx, STM32F303RDTx, STM32F303RETx, STM32F303VBTx, STM32F303VCTx, STM32F303VCYx, STM32F303VDHx, STM32F303VDTx, STM32F303VEHx, STM32F303VETx, STM32F303VEYx, STM32F303ZDTx, STM32F303ZETx, STM32F318C8Tx, STM32F318C8Yx, STM32F318K8Ux, STM32F328C8Tx, STM32F334C4Tx, STM32F334C6Tx, STM32F334C8Tx, STM32F334C8Yx, STM32F334K4Tx, STM32F334K4Ux, STM32F334K6Tx, STM32F334K6Ux, STM32F334K8Tx, STM32F334K8Ux, STM32F334R6Tx, STM32F334R8Tx, STM32F358CCTx, STM32F358RCTx, STM32F358VCTx, STM32F373C8Tx, STM32F373CBTx, STM32F373CCTx, STM32F373R8Tx, STM32F373RBTx, STM32F373RCTx, STM32F373V8Hx, STM32F373V8Tx, STM32F373VBHx, STM32F373VBTx, STM32F373VCHx, STM32F373VCTx, STM32F378CCTx, STM32F378RCTx, STM32F378RCYx, STM32F378VCHx, STM32F378VCTx, STM32F398VETx, STM32F401CBUx, STM32F401CBYx, STM32F401CCFx, STM32F401CCUx, STM32F401CCYx, STM32F401CDUx, STM32F401CDYx, STM32F401CEUx, STM32F401CEYx, STM32F401RBTx, STM32F401RCTx, STM32F401RDTx, STM32F401RETx, STM32F401VBHx, STM32F401VBTx, STM32F401VCHx, STM32F401VCTx, STM32F401VDHx, STM32F401VDTx, STM32F401VEHx, STM32F401VETx, STM32F405OEYx, STM32F405OGYx, STM32F405RGTx, STM32F405VGTx, STM32F405ZGTx, STM32F407IEHx, STM32F407IETx, STM32F407IGHx, STM32F407IGTx, STM32F407VETx, STM32F407VGTx, STM32F407ZETx, STM32F407ZGTx, STM32F410C8Tx, STM32F410C8Ux, STM32F410CBTx, STM32F410CBUx, STM32F410R8Ix, STM32F410R8Tx, STM32F410RBIx, STM32F410RBTx, STM32F410T8Yx, STM32F410TBYx, STM32F411CCUx, STM32F411CCYx, STM32F411CEUx, STM32F411CEYx, STM32F411RCTx, STM32F411RETx, STM32F411VCHx, STM32F411VCTx, STM32F411VEHx, STM32F411VETx, STM32F412CEUx, STM32F412CGUx, STM32F412RETx, STM32F412REYx, STM32F412REYxP, STM32F412RGTx, STM32F412RGYx, STM32F412RGYxP, STM32F412VEHx, STM32F412VETx, STM32F412VGHx, STM32F412VGTx, STM32F412ZEJx, STM32F412ZETx, STM32F412ZGJx, STM32F412ZGTx, STM32F413CGUx, STM32F413CHUx, STM32F413MGYx, STM32F413MHYx, STM32F413RGTx, STM32F413RHTx, STM32F413VGHx, STM32F413VGTx, STM32F413VHHx, STM32F413VHTx, STM32F413ZGJx, STM32F413ZGTx, STM32F413ZHJx, STM32F413ZHTx, STM32F415OGYx, STM32F415RGTx, STM32F415VGTx, STM32F415ZGTx, STM32F417IEHx, STM32F417IETx, STM32F417IGHx, STM32F417IGTx, STM32F417VETx, STM32F417VGTx, STM32F417ZETx, STM32F417ZGTx, STM32F423CHUx, STM32F423MHYx, STM32F423RHTx, STM32F423VHHx, STM32F423VHTx, STM32F423ZHJx, STM32F423ZHTx, STM32F427AGHx, STM32F427AIHx, STM32F427IGHx, STM32F427IGTx, STM32F427IIHx, STM32F427IITx, STM32F427VGTx, STM32F427VITx, STM32F427ZGTx, STM32F427ZITx, STM32F429AGHx, STM32F429AIHx, STM32F429BETx, STM32F429BGTx, STM32F429BITx, STM32F429IEHx, STM32F429IETx, STM32F429IGHx, STM32F429IGTx, STM32F429IIHx, STM32F429IITx, STM32F429NEHx, STM32F429NGHx, STM32F429NIHx, STM32F429VETx, STM32F429VGTx, STM32F429VITx, STM32F429ZETx, STM32F429ZGTx, STM32F429ZGYx, STM32F429ZITx, STM32F429ZIYx, STM32F437AIHx, STM32F437IGHx, STM32F437IGTx, STM32F437IIHx, STM32F437IITx, STM32F437VGTx, STM32F437VITx, STM32F437ZGTx, STM32F437ZITx, STM32F439AIHx, STM32F439BGTx, STM32F439BITx, STM32F439IGHx, STM32F439IGTx, STM32F439IIHx, STM32F439IITx, STM32F439NGHx, STM32F439NIHx, STM32F439VGTx, STM32F439VITx, STM32F439ZGTx, STM32F439ZGYx, STM32F439ZITx, STM32F439ZIYx, STM32F446MCYx, STM32F446MEYx, STM32F446RCTx, STM32F446RETx, STM32F446VCTx, STM32F446VETx, STM32F446ZCHx, STM32F446ZCJx, STM32F446ZCTx, STM32F446ZEHx, STM32F446ZEJx, STM32F446ZETx, STM32F469AEHx, STM32F469AEYx, STM32F469AGHx, STM32F469AGYx, STM32F469AIHx, STM32F469AIYx, STM32F469BETx, STM32F469BGTx, STM32F469BITx, STM32F469IEHx, STM32F469IETx, STM32F469IGHx, STM32F469IGTx, STM32F469IIHx, STM32F469IITx, STM32F469NEHx, STM32F469NGHx, STM32F469NIHx, STM32F469VETx, STM32F469VGTx, STM32F469VITx, STM32F469ZETx, STM32F469ZGTx, STM32F469ZITx, STM32F479AGHx, STM32F479AGYx, STM32F479AIHx, STM32F479AIYx, STM32F479BGTx, STM32F479BITx, STM32F479IGHx, STM32F479IGTx, STM32F479IIHx, STM32F479IITx, STM32F479NGHx, STM32F479NIHx, STM32F479VGTx, STM32F479VITx, STM32F479ZGTx, STM32F479ZITx, STM32F722ICKx, STM32F722ICTx, STM32F722IEKx, STM32F722IETx, STM32F722RCTx, STM32F722RETx, STM32F722VCTx, STM32F722VETx, STM32F722ZCTx, STM32F722ZETx, STM32F723ICKx, STM32F723ICTx, STM32F723IEKx, STM32F723IETx, STM32F723VCTx, STM32F723VCYx, STM32F723VETx, STM32F723VEYx, STM32F723ZCIx, STM32F723ZCTx, STM32F723ZEIx, STM32F723ZETx, STM32F730I8Kx, STM32F730R8Tx, STM32F730V8Tx, STM32F730Z8Tx, STM32F732IEKx, STM32F732IETx, STM32F732RETx, STM32F732VETx, STM32F732ZETx, STM32F733IEKx, STM32F733IETx, STM32F733VETx, STM32F733VEYx, STM32F733ZEIx, STM32F733ZETx, STM32F745IEKx, STM32F745IETx, STM32F745IGKx, STM32F745IGTx, STM32F745VEHx, STM32F745VETx, STM32F745VGHx, STM32F745VGTx, STM32F745ZETx, STM32F745ZGTx, STM32F746BETx, STM32F746BGTx, STM32F746IEKx, STM32F746IETx, STM32F746IGKx, STM32F746IGTx, STM32F746NEHx, STM32F746NGHx, STM32F746VEHx, STM32F746VETx, STM32F746VGHx, STM32F746VGTx, STM32F746ZETx, STM32F746ZEYx, STM32F746ZGTx, STM32F746ZGYx, STM32F750N8Hx, STM32F750V8Tx, STM32F750Z8Tx, STM32F756BGTx, STM32F756IGKx, STM32F756IGTx, STM32F756NGHx, STM32F756VGHx, STM32F756VGTx, STM32F756ZGTx, STM32F756ZGYx, STM32F765BGTx, STM32F765BITx, STM32F765IGKx, STM32F765IGTx, STM32F765IIKx, STM32F765IITx, STM32F765NGHx, STM32F765NIHx, STM32F765VGHx, STM32F765VGTx, STM32F765VIHx, STM32F765VITx, STM32F765ZGTx, STM32F765ZITx, STM32F767BGTx, STM32F767BITx, STM32F767IGKx, STM32F767IGTx, STM32F767IIKx, STM32F767IITx, STM32F767NGHx, STM32F767NIHx, STM32F767VGHx, STM32F767VGTx, STM32F767VIHx, STM32F767VITx, STM32F767ZGTx, STM32F767ZITx, STM32F768AIYx, STM32F769AGYx, STM32F769AIYx, STM32F769BGTx, STM32F769BITx, STM32F769IGTx, STM32F769IITx, STM32F769NGHx, STM32F769NIHx, STM32F777BITx, STM32F777IIKx, STM32F777IITx, STM32F777NIHx, STM32F777VIHx, STM32F777VITx, STM32F777ZITx, STM32F778AIYx, STM32F779AIYx, STM32F779BITx, STM32F779IITx, STM32F779NIHx, STM32G4A1CETx, STM32G4A1CEUx, STM32G4A1KEUx, STM32G4A1MESx, STM32G4A1METx, STM32G4A1REIx, STM32G4A1RETx, STM32G4A1REYx, STM32G4A1VETx, STM32G030C6Tx, STM32G030C8Tx, STM32G030F6Px, STM32G030J6Mx, STM32G030K6Tx, STM32G030K8Tx, STM32G031C4Tx, STM32G031C4Ux, STM32G031C6Tx, STM32G031C6Ux, STM32G031C8Tx, STM32G031C8Ux, STM32G031F4Px, STM32G031F6Px, STM32G031F8Px, STM32G031G4Ux, STM32G031G6Ux, STM32G031G8Ux, STM32G031J4Mx, STM32G031J6Mx, STM32G031K4Tx, STM32G031K4Ux, STM32G031K6Tx, STM32G031K6Ux, STM32G031K8Tx, STM32G031K8Ux, STM32G031Y8Yx, STM32G041C6Tx, STM32G041C6Ux, STM32G041C8Tx, STM32G041C8Ux, STM32G041F6Px, STM32G041F8Px, STM32G041G6Ux, STM32G041G8Ux, STM32G041J6Mx, STM32G041K6Tx, STM32G041K6Ux, STM32G041K8Tx, STM32G041K8Ux, STM32G041Y8Yx, STM32G070CBTx, STM32G070KBTx, STM32G070RBTx, STM32G071C6Tx, STM32G071C6Ux, STM32G071C8Tx, STM32G071C8Ux, STM32G071CBTx, STM32G071CBUx, STM32G071EBYx, STM32G071G6Ux, STM32G071G8Ux, STM32G071G8UxN, STM32G071GBUx, STM32G071GBUxN, STM32G071K6Tx, STM32G071K6Ux, STM32G071K8Tx, STM32G071K8TxN, STM32G071K8Ux, STM32G071K8UxN, STM32G071KBTx, STM32G071KBTxN, STM32G071KBUx, STM32G071KBUxN, STM32G071R6Tx, STM32G071R8Tx, STM32G071RBIx, STM32G071RBTx, STM32G081CBTx, STM32G081CBUx, STM32G081EBYx, STM32G081GBUx, STM32G081GBUxN, STM32G081KBTx, STM32G081KBTxN, STM32G081KBUx, STM32G081KBUxN, STM32G081RBIx, STM32G081RBTx, STM32G431C6Tx, STM32G431C6Ux, STM32G431C8Tx, STM32G431C8Ux, STM32G431CBTx, STM32G431CBUx, STM32G431CBYx, STM32G431K6Tx, STM32G431K6Ux, STM32G431K8Tx, STM32G431K8Ux, STM32G431KBTx, STM32G431KBUx, STM32G431M6Tx, STM32G431M8Tx, STM32G431MBTx, STM32G431R6Ix, STM32G431R6Tx, STM32G431R8Ix, STM32G431R8Tx, STM32G431RBIx, STM32G431RBTx, STM32G431V6Tx, STM32G431V8Tx, STM32G431VBTx, STM32G441CBTx, STM32G441CBUx, STM32G441CBYx, STM32G441KBTx, STM32G441KBUx, STM32G441MBTx, STM32G441RBIx, STM32G441RBTx, STM32G441VBTx, STM32G471CCTx, STM32G471CCUx, STM32G471CETx, STM32G471CEUx, STM32G471MCTx, STM32G471METx, STM32G471MEYx, STM32G471QCTx, STM32G471QETx, STM32G471RCTx, STM32G471RETx, STM32G471VCHx, STM32G471VCIx, STM32G471VCTx, STM32G471VEHx, STM32G471VEIx, STM32G471VETx, STM32G473CBTx, STM32G473CBUx, STM32G473CCTx, STM32G473CCUx, STM32G473CETx, STM32G473CEUx, STM32G473MBTx, STM32G473MCTx, STM32G473METx, STM32G473MEYx, STM32G473PBIx, STM32G473PCIx, STM32G473PEIx, STM32G473QBTx, STM32G473QCTx, STM32G473QETx, STM32G473RBTx, STM32G473RCTx, STM32G473RETx, STM32G473VBHx, STM32G473VBIx, STM32G473VBTx, STM32G473VCHx, STM32G473VCIx, STM32G473VCTx, STM32G473VEHx, STM32G473VEIx, STM32G473VETx, STM32G474CBTx, STM32G474CBUx, STM32G474CCTx, STM32G474CCUx, STM32G474CETx, STM32G474CEUx, STM32G474MBTx, STM32G474MCTx, STM32G474METx, STM32G474MEYx, STM32G474PBIx, STM32G474PCIx, STM32G474PEIx, STM32G474QBTx, STM32G474QCTx, STM32G474QETx, STM32G474RBTx, STM32G474RCTx, STM32G474RETx, STM32G474VBHx, STM32G474VBIx, STM32G474VBTx, STM32G474VCHx, STM32G474VCIx, STM32G474VCTx, STM32G474VEHx, STM32G474VEIx, STM32G474VETx, STM32G483CETx, STM32G483CEUx, STM32G483METx, STM32G483MEYx, STM32G483PEIx, STM32G483QETx, STM32G483RETx, STM32G483VEHx, STM32G483VEIx, STM32G483VETx, STM32G484CETx, STM32G484CEUx, STM32G484METx, STM32G484MEYx, STM32G484PEIx, STM32G484QETx, STM32G484RETx, STM32G484VEHx, STM32G484VEIx, STM32G484VETx, STM32G491CCTx, STM32G491CCUx, STM32G491CETx, STM32G491CEUx, STM32G491KCUx, STM32G491KEUx, STM32G491MCSx, STM32G491MCTx, STM32G491MESx, STM32G491METx, STM32G491RCIx, STM32G491RCTx, STM32G491REIx, STM32G491RETx, STM32G491REYx, STM32G491VCTx, STM32G491VETx, STM32GBK1CBTx, STM32H7A3AGIxQ, STM32H7A3AIIxQ, STM32H7A3IGKx, STM32H7A3IGKxQ, STM32H7A3IGTx, STM32H7A3IGTxQ, STM32H7A3IIKx, STM32H7A3IIKxQ, STM32H7A3IITx, STM32H7A3IITxQ, STM32H7A3LGHxQ, STM32H7A3LIHxQ, STM32H7A3NGHx, STM32H7A3NIHx, STM32H7A3QIYxQ, STM32H7A3RGTx, STM32H7A3RITx, STM32H7A3VGHx, STM32H7A3VGHxQ, STM32H7A3VGTx, STM32H7A3VGTxQ, STM32H7A3VIHx, STM32H7A3VIHxQ, STM32H7A3VITx, STM32H7A3VITxQ, STM32H7A3ZGTx, STM32H7A3ZGTxQ, STM32H7A3ZITx, STM32H7A3ZITxQ, STM32H7B3AIIxQ, STM32H7B3IIKx, STM32H7B3IIKxQ, STM32H7B3IITx, STM32H7B3IITxQ, STM32H7B3LIHxQ, STM32H7B3NIHx, STM32H7B3QIYxQ, STM32H7B3RITx, STM32H7B3VIHx, STM32H7B3VIHxQ, STM32H7B3VITx, STM32H7B3VITxQ, STM32H7B3ZITx, STM32H7B3ZITxQ, STM32H7B0ABIxQ, STM32H7B0IBKxQ, STM32H7B0IBTx, STM32H7B0RBTx, STM32H7B0VBTx, STM32H7B0ZBTx, STM32H723VEHx, STM32H723VETx, STM32H723VGHx, STM32H723VGTx, STM32H723ZEIx, STM32H723ZETx, STM32H723ZGIx, STM32H723ZGTx, STM32H725AEIx, STM32H725AGIx, STM32H725IEKx, STM32H725IETx, STM32H725IGKx, STM32H725IGTx, STM32H725REVx, STM32H725RGVx, STM32H725VETx, STM32H725VGTx, STM32H725VGYx, STM32H725ZETx, STM32H725ZGTx, STM32H730ABIxQ, STM32H730IBKxQ, STM32H730IBTxQ, STM32H730VBHx, STM32H730VBTx, STM32H730ZBIx, STM32H730ZBTx, STM32H733VGHx, STM32H733VGTx, STM32H733ZGIx, STM32H733ZGTx, STM32H735AGIx, STM32H735IGKx, STM32H735IGTx, STM32H735RGVx, STM32H735VGTx, STM32H735VGYx, STM32H735ZGTx, STM32H742AGIx, STM32H742AIIx, STM32H742BGTx, STM32H742BITx, STM32H742IGKx, STM32H742IGTx, STM32H742IIKx, STM32H742IITx, STM32H742VGHx, STM32H742VGTx, STM32H742VIHx, STM32H742VITx, STM32H742XGHx, STM32H742XIHx, STM32H742ZGTx, STM32H742ZITx, STM32H743AGIx, STM32H743AIIx, STM32H743BGTx, STM32H743BITx, STM32H743IGKx, STM32H743IGTx, STM32H743IIKx, STM32H743IITx, STM32H743VGHx, STM32H743VGTx, STM32H743VIHx, STM32H743VITx, STM32H743XGHx, STM32H743XIHx, STM32H743ZGTx, STM32H743ZITx, STM32H745BGTx, STM32H745BITx, STM32H745IGKx, STM32H745IGTx, STM32H745IIKx, STM32H745IITx, STM32H745XGHx, STM32H745XIHx, STM32H745ZGTx, STM32H745ZITx, STM32H747AGIx, STM32H747AIIx, STM32H747BGTx, STM32H747BITx, STM32H747IGTx, STM32H747IITx, STM32H747XGHx, STM32H747XIHx, STM32H747ZIYx, STM32H750IBKx, STM32H750IBTx, STM32H750VBTx, STM32H750XBHx, STM32H750ZBTx, STM32H753AIIx, STM32H753BITx, STM32H753IIKx, STM32H753IITx, STM32H753VIHx, STM32H753VITx, STM32H753XIHx, STM32H753ZITx, STM32H755BITx, STM32H755IIKx, STM32H755IITx, STM32H755XIHx, STM32H755ZITx, STM32H757AIIx, STM32H757BITx, STM32H757IITx, STM32H757XIHx, STM32H757ZIYx, STM32L4A6AGIx, STM32L4A6AGIxP, STM32L4A6QGIx, STM32L4A6QGIxP, STM32L4A6RGTx, STM32L4A6RGTxP, STM32L4A6VGTx, STM32L4A6VGTxP, STM32L4A6VGYx, STM32L4A6VGYxP, STM32L4A6ZGTx, STM32L4A6ZGTxP, STM32L4P5AEIx, STM32L4P5AGIx, STM32L4P5AGIxP, STM32L4P5CETx, STM32L4P5CEUx, STM32L4P5CGTx, STM32L4P5CGTxP, STM32L4P5CGUx, STM32L4P5CGUxP, STM32L4P5QEIx, STM32L4P5QGIx, STM32L4P5QGIxP, STM32L4P5RETx, STM32L4P5RGTx, STM32L4P5RGTxP, STM32L4P5VETx, STM32L4P5VEYx, STM32L4P5VGTx, STM32L4P5VGTxP, STM32L4P5VGYx, STM32L4P5VGYxP, STM32L4P5ZETx, STM32L4P5ZGTx, STM32L4P5ZGTxP, STM32L4Q5AGIx, STM32L4Q5CGTx, STM32L4Q5CGUx, STM32L4Q5QGIx, STM32L4Q5RGTx, STM32L4Q5VGTx, STM32L4Q5VGYx, STM32L4Q5ZGTx, STM32L4R5AGIx, STM32L4R5AIIx, STM32L4R5QGIx, STM32L4R5QIIx, STM32L4R5VGTx, STM32L4R5VITx, STM32L4R5ZGTx, STM32L4R5ZGYx, STM32L4R5ZITx, STM32L4R5ZITxP, STM32L4R5ZIYx, STM32L4R7AIIx, STM32L4R7VITx, STM32L4R7ZITx, STM32L4R9AGIx, STM32L4R9AIIx, STM32L4R9VGTx, STM32L4R9VITx, STM32L4R9ZGJx, STM32L4R9ZGTx, STM32L4R9ZGYx, STM32L4R9ZIJx, STM32L4R9ZITx, STM32L4R9ZIYx, STM32L4R9ZIYxP, STM32L4S5AIIx, STM32L4S5QIIx, STM32L4S5VITx, STM32L4S5ZITx, STM32L4S5ZIYx, STM32L4S7AIIx, STM32L4S7VITx, STM32L4S7ZITx, STM32L4S9AIIx, STM32L4S9VITx, STM32L4S9ZIJx, STM32L4S9ZITx, STM32L4S9ZIYx, STM32L010C6Tx, STM32L010F4Px, STM32L010K4Tx, STM32L010K8Tx, STM32L010R8Tx, STM32L010RBTx, STM32L011D3Px, STM32L011D4Px, STM32L011E3Yx, STM32L011E4Yx, STM32L011F3Px, STM32L011F3Ux, STM32L011F4Px, STM32L011F4Ux, STM32L011G3Ux, STM32L011G4Ux, STM32L011K3Tx, STM32L011K3Ux, STM32L011K4Tx, STM32L011K4Ux, STM32L021D4Px, STM32L021F4Px, STM32L021F4Ux, STM32L021G4Ux, STM32L021K4Tx, STM32L021K4Ux, STM32L031C4Tx, STM32L031C4Ux, STM32L031C6Tx, STM32L031C6Ux, STM32L031E4Yx, STM32L031E6Yx, STM32L031F4Px, STM32L031F6Px, STM32L031G4Ux, STM32L031G6Ux, STM32L031G6UxS, STM32L031K4Tx, STM32L031K4Ux, STM32L031K6Tx, STM32L031K6Ux, STM32L041C4Tx, STM32L041C6Tx, STM32L041C6Ux, STM32L041E6Yx, STM32L041F6Px, STM32L041G6Ux, STM32L041G6UxS, STM32L041K6Tx, STM32L041K6Ux, STM32L051C6Tx, STM32L051C6Ux, STM32L051C8Tx, STM32L051C8Ux, STM32L051K6Tx, STM32L051K6Ux, STM32L051K8Tx, STM32L051K8Ux, STM32L051R6Hx, STM32L051R6Tx, STM32L051R8Hx, STM32L051R8Tx, STM32L051T6Yx, STM32L051T8Yx, STM32L052C6Tx, STM32L052C6Ux, STM32L052C8Tx, STM32L052C8Ux, STM32L052K6Tx, STM32L052K6Ux, STM32L052K8Tx, STM32L052K8Ux, STM32L052R6Hx, STM32L052R6Tx, STM32L052R8Hx, STM32L052R8Tx, STM32L052T6Yx, STM32L052T8Fx, STM32L052T8Yx, STM32L053C6Tx, STM32L053C6Ux, STM32L053C8Tx, STM32L053C8Ux, STM32L053R6Hx, STM32L053R6Tx, STM32L053R8Hx, STM32L053R8Tx, STM32L062C8Ux, STM32L062K8Tx, STM32L062K8Ux, STM32L063C8Tx, STM32L063C8Ux, STM32L063R8Tx, STM32L071C8Tx, STM32L071C8Ux, STM32L071CBTx, STM32L071CBUx, STM32L071CBYx, STM32L071CZTx, STM32L071CZUx, STM32L071CZYx, STM32L071K8Ux, STM32L071KBTx, STM32L071KBUx, STM32L071KZTx, STM32L071KZUx, STM32L071RBHx, STM32L071RBTx, STM32L071RZHx, STM32L071RZTx, STM32L071V8Ix, STM32L071V8Tx, STM32L071VBIx, STM32L071VBTx, STM32L071VZIx, STM32L071VZTx, STM32L072CBTx, STM32L072CBUx, STM32L072CBYx, STM32L072CZEx, STM32L072CZTx, STM32L072CZUx, STM32L072CZYx, STM32L072KBTx, STM32L072KBUx, STM32L072KZTx, STM32L072KZUx, STM32L072RBHx, STM32L072RBIx, STM32L072RBTx, STM32L072RZHx, STM32L072RZIx, STM32L072RZTx, STM32L072V8Ix, STM32L072V8Tx, STM32L072VBIx, STM32L072VBTx, STM32L072VZIx, STM32L072VZTx, STM32L073CBTx, STM32L073CBUx, STM32L073CZTx, STM32L073CZUx, STM32L073RBHx, STM32L073RBTx, STM32L073RZHx, STM32L073RZIx, STM32L073RZTx, STM32L073V8Ix, STM32L073V8Tx, STM32L073VBIx, STM32L073VBTx, STM32L073VZIx, STM32L073VZTx, STM32L081CBTx, STM32L081CZTx, STM32L081CZUx, STM32L081KZTx, STM32L081KZUx, STM32L082CZUx, STM32L082CZYx, STM32L082KBTx, STM32L082KBUx, STM32L082KZTx, STM32L082KZUx, STM32L083CBTx, STM32L083CZTx, STM32L083CZUx, STM32L083RBHx, STM32L083RBTx, STM32L083RZHx, STM32L083RZTx, STM32L083V8Ix, STM32L083V8Tx, STM32L083VBIx, STM32L083VBTx, STM32L083VZIx, STM32L083VZTx, STM32L100C6Ux, STM32L100C6UxA, STM32L100R8Tx, STM32L100R8TxA, STM32L100RBTx, STM32L100RBTxA, STM32L100RCTx, STM32L151C6Tx, STM32L151C6TxA, STM32L151C6Ux, STM32L151C6UxA, STM32L151C8Tx, STM32L151C8TxA, STM32L151C8Ux, STM32L151C8UxA, STM32L151CBTx, STM32L151CBTxA, STM32L151CBUx, STM32L151CBUxA, STM32L151CCTx, STM32L151CCUx, STM32L151QCHx, STM32L151QDHx, STM32L151QEHx, STM32L151R6Hx, STM32L151R6HxA, STM32L151R6Tx, STM32L151R6TxA, STM32L151R8Hx, STM32L151R8HxA, STM32L151R8Tx, STM32L151R8TxA, STM32L151RBHx, STM32L151RBHxA, STM32L151RBTx, STM32L151RBTxA, STM32L151RCTx, STM32L151RCTxA, STM32L151RCYx, STM32L151RDTx, STM32L151RDYx, STM32L151RETx, STM32L151UCYx, STM32L151V8Hx, STM32L151V8HxA, STM32L151V8Tx, STM32L151V8TxA, STM32L151VBHx, STM32L151VBHxA, STM32L151VBTx, STM32L151VBTxA, STM32L151VCHx, STM32L151VCTx, STM32L151VCTxA, STM32L151VDTx, STM32L151VDTxX, STM32L151VDYxX, STM32L151VETx, STM32L151VEYx, STM32L151ZCTx, STM32L151ZDTx, STM32L151ZETx, STM32L152C6Tx, STM32L152C6TxA, STM32L152C6Ux, STM32L152C6UxA, STM32L152C8Tx, STM32L152C8TxA, STM32L152C8Ux, STM32L152C8UxA, STM32L152CBTx, STM32L152CBTxA, STM32L152CBUx, STM32L152CBUxA, STM32L152CCTx, STM32L152CCUx, STM32L152QCHx, STM32L152QDHx, STM32L152QEHx, STM32L152R6Hx, STM32L152R6HxA, STM32L152R6Tx, STM32L152R6TxA, STM32L152R8Hx, STM32L152R8HxA, STM32L152R8Tx, STM32L152R8TxA, STM32L152RBHx, STM32L152RBHxA, STM32L152RBTx, STM32L152RBTxA, STM32L152RCTx, STM32L152RCTxA, STM32L152RDTx, STM32L152RDYx, STM32L152RETx, STM32L152UCYx, STM32L152V8Hx, STM32L152V8HxA, STM32L152V8Tx, STM32L152V8TxA, STM32L152VBHx, STM32L152VBHxA, STM32L152VBTx, STM32L152VBTxA, STM32L152VCHx, STM32L152VCTx, STM32L152VCTxA, STM32L152VDTx, STM32L152VDTxX, STM32L152VETx, STM32L152VEYx, STM32L152ZCTx, STM32L152ZDTx, STM32L152ZETx, STM32L162QCHx, STM32L162QDHx, STM32L162RCTx, STM32L162RCTxA, STM32L162RDTx, STM32L162RDYx, STM32L162RETx, STM32L162VCHx, STM32L162VCTx, STM32L162VCTxA, STM32L162VDTx, STM32L162VDYxX, STM32L162VETx, STM32L162VEYx, STM32L162ZCTx, STM32L162ZDTx, STM32L162ZETx, STM32L412C8Tx, STM32L412C8Ux, STM32L412CBTx, STM32L412CBTxP, STM32L412CBUx, STM32L412CBUxP, STM32L412K8Tx, STM32L412K8Ux, STM32L412KBTx, STM32L412KBUx, STM32L412R8Ix, STM32L412R8Tx, STM32L412RBIx, STM32L412RBIxP, STM32L412RBTx, STM32L412RBTxP, STM32L412T8Yx, STM32L412TBYx, STM32L412TBYxP, STM32L422CBTx, STM32L422CBUx, STM32L422KBTx, STM32L422KBUx, STM32L422RBIx, STM32L422RBTx, STM32L422TBYx, STM32L431CBTx, STM32L431CBUx, STM32L431CBYx, STM32L431CCTx, STM32L431CCUx, STM32L431CCYx, STM32L431KBUx, STM32L431KCUx, STM32L431RBIx, STM32L431RBTx, STM32L431RBYx, STM32L431RCIx, STM32L431RCTx, STM32L431RCYx, STM32L431VCIx, STM32L431VCTx, STM32L432KBUx, STM32L432KCUx, STM32L433CBTx, STM32L433CBUx, STM32L433CBYx, STM32L433CCTx, STM32L433CCUx, STM32L433CCYx, STM32L433RBIx, STM32L433RBTx, STM32L433RBYx, STM32L433RCIx, STM32L433RCTx, STM32L433RCTxP, STM32L433RCYx, STM32L433VCIx, STM32L433VCTx, STM32L442KCUx, STM32L443CCTx, STM32L443CCUx, STM32L443CCYx, STM32L443RCIx, STM32L443RCTx, STM32L443RCYx, STM32L443VCIx, STM32L443VCTx, STM32L451CCUx, STM32L451CEUx, STM32L451RCIx, STM32L451RCTx, STM32L451RCYx, STM32L451REIx, STM32L451RETx, STM32L451REYx, STM32L451VCIx, STM32L451VCTx, STM32L451VEIx, STM32L451VETx, STM32L452CCUx, STM32L452CEUx, STM32L452RCIx, STM32L452RCTx, STM32L452RCYx, STM32L452REIx, STM32L452RETx, STM32L452RETxP, STM32L452REYx, STM32L452VCIx, STM32L452VCTx, STM32L452VEIx, STM32L452VETx, STM32L462CEUx, STM32L462REIx, STM32L462RETx, STM32L462REYx, STM32L462VEIx, STM32L462VETx, STM32L471QEIx, STM32L471QGIx, STM32L471RETx, STM32L471RGTx, STM32L471VETx, STM32L471VGTx, STM32L471ZEJx, STM32L471ZETx, STM32L471ZGJx, STM32L471ZGTx, STM32L475RCTx, STM32L475RETx, STM32L475RGTx, STM32L475VCTx, STM32L475VETx, STM32L475VGTx, STM32L476JEYx, STM32L476JGYx, STM32L476JGYxP, STM32L476MEYx, STM32L476MGYx, STM32L476QEIx, STM32L476QGIx, STM32L476RCTx, STM32L476RETx, STM32L476RGTx, STM32L476VCTx, STM32L476VETx, STM32L476VGTx, STM32L476ZETx, STM32L476ZGJx, STM32L476ZGTx, STM32L476ZGTxP, STM32L485JCYx, STM32L485JEYx, STM32L486JGYx, STM32L486QGIx, STM32L486RGTx, STM32L486VGTx, STM32L486ZGTx, STM32L496AEIx, STM32L496AGIx, STM32L496AGIxP, STM32L496QEIx, STM32L496QGIx, STM32L496QGIxP, STM32L496RETx, STM32L496RGTx, STM32L496RGTxP, STM32L496VETx, STM32L496VGTx, STM32L496VGTxP, STM32L496VGYx, STM32L496VGYxP, STM32L496WGYxP, STM32L496ZETx, STM32L496ZGTx, STM32L496ZGTxP, STM32L552CCTx, STM32L552CCUx, STM32L552CETx, STM32L552CETxP, STM32L552CEUx, STM32L552CEUxP, STM32L552MEYxP, STM32L552MEYxQ, STM32L552QCIxQ, STM32L552QEIx, STM32L552QEIxP, STM32L552QEIxQ, STM32L552RCTx, STM32L552RETx, STM32L552RETxP, STM32L552RETxQ, STM32L552VCTxQ, STM32L552VETx, STM32L552VETxQ, STM32L552ZCTxQ, STM32L552ZETx, STM32L552ZETxQ, STM32L562CETx, STM32L562CETxP, STM32L562CEUx, STM32L562CEUxP, STM32L562MEYxP, STM32L562MEYxQ, STM32L562QEIx, STM32L562QEIxP, STM32L562QEIxQ, STM32L562RETx, STM32L562RETxP, STM32L562RETxQ, STM32L562VETx, STM32L562VETxQ, STM32L562ZETx, STM32L562ZETxQ, STM32MP151AAAx, STM32MP151AABx, STM32MP151AACx, STM32MP151AADx, STM32MP151CAAx, STM32MP151CABx, STM32MP151CACx, STM32MP151CADx, STM32MP151DAAx, STM32MP151DABx, STM32MP151DACx, STM32MP151DADx, STM32MP151FAAx, STM32MP151FABx, STM32MP151FACx, STM32MP151FADx, STM32MP153AAAx, STM32MP153AABx, STM32MP153AACx, STM32MP153AADx, STM32MP153CAAx, STM32MP153CABx, STM32MP153CACx, STM32MP153CADx, STM32MP153DAAx, STM32MP153DABx, STM32MP153DACx, STM32MP153DADx, STM32MP153FAAx, STM32MP153FABx, STM32MP153FACx, STM32MP153FADx, STM32MP157AAAx, STM32MP157AABx, STM32MP157AACx, STM32MP157AADx, STM32MP157CAAx, STM32MP157CABx, STM32MP157CACx, STM32MP157CADx, STM32MP157DAAx, STM32MP157DABx, STM32MP157DACx, STM32MP157DADx, STM32MP157FAAx, STM32MP157FABx, STM32MP157FACx, STM32MP157FADx, STM32WB5MMGHx, STM32WB30CEUx, STM32WB35CCUx, STM32WB35CEUx, STM32WB50CGUx, STM32WB55CCUx, STM32WB55CEUx, STM32WB55CGUx, STM32WB55RCVx, STM32WB55REVx, STM32WB55RGVx, STM32WB55VCQx, STM32WB55VCYx, STM32WB55VEQx, STM32WB55VEYx, STM32WB55VGQx, STM32WB55VGYx, STM32WB55VYYx] -No map found for id: -No map found for id: -No map found for id: -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported -Warning: MCU matched multiple possible MCUs: [STM32F030C6Tx, STM32F030C8Tx, STM32F030CCTx, STM32F030F4Px, STM32F030K6Tx, STM32F030R8Tx, STM32F030RCTx, STM32F031C4Tx, STM32F031C6Tx, STM32F031E6Yx, STM32F031F4Px, STM32F031F6Px, STM32F031G4Ux, STM32F031G6Ux, STM32F031K4Ux, STM32F031K6Tx, STM32F031K6Ux, STM32F038C6Tx, STM32F038E6Yx, STM32F038F6Px, STM32F038G6Ux, STM32F038K6Ux, STM32F042C4Tx, STM32F042C4Ux, STM32F042C6Tx, STM32F042C6Ux, STM32F042F4Px, STM32F042F6Px, STM32F042G4Ux, STM32F042G6Ux, STM32F042K4Tx, STM32F042K4Ux, STM32F042K6Tx, STM32F042K6Ux, STM32F042T6Yx, STM32F048C6Ux, STM32F048G6Ux, STM32F048T6Yx, STM32F051C4Tx, STM32F051C4Ux, STM32F051C6Tx, STM32F051C6Ux, STM32F051C8Tx, STM32F051C8Ux, STM32F051K4Tx, STM32F051K4Ux, STM32F051K6Tx, STM32F051K6Ux, STM32F051K8Tx, STM32F051K8Ux, STM32F051R4Tx, STM32F051R6Tx, STM32F051R8Hx, STM32F051R8Tx, STM32F051T8Yx, STM32F058C8Ux, STM32F058R8Hx, STM32F058R8Tx, STM32F058T8Yx, STM32F070C6Tx, STM32F070CBTx, STM32F070F6Px, STM32F070RBTx, STM32F071C8Tx, STM32F071C8Ux, STM32F071CBTx, STM32F071CBUx, STM32F071CBYx, STM32F071RBTx, STM32F071V8Hx, STM32F071V8Tx, STM32F071VBHx, STM32F071VBTx, STM32F072C8Tx, STM32F072C8Ux, STM32F072CBTx, STM32F072CBUx, STM32F072CBYx, STM32F072R8Tx, STM32F072RBHx, STM32F072RBIx, STM32F072RBTx, STM32F072V8Hx, STM32F072V8Tx, STM32F072VBHx, STM32F072VBTx, STM32F078CBTx, STM32F078CBUx, STM32F078CBYx, STM32F078RBHx, STM32F078RBTx, STM32F078VBHx, STM32F078VBTx, STM32F091CBTx, STM32F091CBUx, STM32F091CCTx, STM32F091CCUx, STM32F091RBTx, STM32F091RCHx, STM32F091RCTx, STM32F091RCYx, STM32F091VBTx, STM32F091VCHx, STM32F091VCTx, STM32F098CCTx, STM32F098CCUx, STM32F098RCHx, STM32F098RCTx, STM32F098RCYx, STM32F098VCHx, STM32F098VCTx, STM32F100C4Tx, STM32F100C6Tx, STM32F100C8Tx, STM32F100CBTx, STM32F100R4Hx, STM32F100R4Tx, STM32F100R6Hx, STM32F100R6Tx, STM32F100R8Hx, STM32F100R8Tx, STM32F100RBHx, STM32F100RBTx, STM32F100RCTx, STM32F100RDTx, STM32F100RETx, STM32F100V8Tx, STM32F100VBTx, STM32F100VCTx, STM32F100VDTx, STM32F100VETx, STM32F100ZCTx, STM32F100ZDTx, STM32F100ZETx, STM32F101C4Tx, STM32F101C6Tx, STM32F101C8Tx, STM32F101C8Ux, STM32F101CBTx, STM32F101CBUx, STM32F101R4Tx, STM32F101R6Tx, STM32F101R8Tx, STM32F101RBHx, STM32F101RBTx, STM32F101RCTx, STM32F101RDTx, STM32F101RETx, STM32F101RFTx, STM32F101RGTx, STM32F101T4Ux, STM32F101T6Ux, STM32F101T8Ux, STM32F101TBUx, STM32F101V8Tx, STM32F101VBTx, STM32F101VCTx, STM32F101VDTx, STM32F101VETx, STM32F101VFTx, STM32F101VGTx, STM32F101ZCTx, STM32F101ZDTx, STM32F101ZETx, STM32F101ZFTx, STM32F101ZGTx, STM32F102C4Tx, STM32F102C6Tx, STM32F102C8Tx, STM32F102CBTx, STM32F102R4Tx, STM32F102R6Tx, STM32F102R8Tx, STM32F102RBTx, STM32F103C4Tx, STM32F103C6Tx, STM32F103C6Ux, STM32F103C8Tx, STM32F103CBTx, STM32F103CBUx, STM32F103R4Hx, STM32F103R4Tx, STM32F103R6Hx, STM32F103R6Tx, STM32F103R8Hx, STM32F103R8Tx, STM32F103RBHx, STM32F103RBTx, STM32F103RCTx, STM32F103RCYx, STM32F103RDTx, STM32F103RDYx, STM32F103RETx, STM32F103REYx, STM32F103RFTx, STM32F103RGTx, STM32F103T4Ux, STM32F103T6Ux, STM32F103T8Ux, STM32F103TBUx, STM32F103V8Hx, STM32F103V8Tx, STM32F103VBHx, STM32F103VBIx, STM32F103VBTx, STM32F103VCHx, STM32F103VCTx, STM32F103VDHx, STM32F103VDTx, STM32F103VEHx, STM32F103VETx, STM32F103VFTx, STM32F103VGTx, STM32F103ZCHx, STM32F103ZCTx, STM32F103ZDHx, STM32F103ZDTx, STM32F103ZEHx, STM32F103ZETx, STM32F103ZFHx, STM32F103ZFTx, STM32F103ZGHx, STM32F103ZGTx, STM32F105R8Tx, STM32F105RBTx, STM32F105RCTx, STM32F105V8Hx, STM32F105V8Tx, STM32F105VBHx, STM32F105VBTx, STM32F105VCTx, STM32F107RBTx, STM32F107RCTx, STM32F107VBTx, STM32F107VCHx, STM32F107VCTx, STM32F205RBTx, STM32F205RCTx, STM32F205RETx, STM32F205REYx, STM32F205RFTx, STM32F205RGEx, STM32F205RGTx, STM32F205RGYx, STM32F205VBTx, STM32F205VCTx, STM32F205VETx, STM32F205VFTx, STM32F205VGTx, STM32F205ZCTx, STM32F205ZETx, STM32F205ZFTx, STM32F205ZGTx, STM32F207ICHx, STM32F207ICTx, STM32F207IEHx, STM32F207IETx, STM32F207IFHx, STM32F207IFTx, STM32F207IGHx, STM32F207IGTx, STM32F207VCTx, STM32F207VETx, STM32F207VFTx, STM32F207VGTx, STM32F207ZCTx, STM32F207ZETx, STM32F207ZFTx, STM32F207ZGTx, STM32F215RETx, STM32F215RGTx, STM32F215VETx, STM32F215VGTx, STM32F215ZETx, STM32F215ZGTx, STM32F217IEHx, STM32F217IETx, STM32F217IGHx, STM32F217IGTx, STM32F217VETx, STM32F217VGTx, STM32F217ZETx, STM32F217ZGTx, STM32F301C6Tx, STM32F301C8Tx, STM32F301C8Yx, STM32F301K6Tx, STM32F301K6Ux, STM32F301K8Tx, STM32F301K8Ux, STM32F301R6Tx, STM32F301R8Tx, STM32F302C6Tx, STM32F302C8Tx, STM32F302C8Yx, STM32F302CBTx, STM32F302CCTx, STM32F302K6Ux, STM32F302K8Ux, STM32F302R6Tx, STM32F302R8Tx, STM32F302RBTx, STM32F302RCTx, STM32F302RDTx, STM32F302RETx, STM32F302VBTx, STM32F302VCTx, STM32F302VCYx, STM32F302VDHx, STM32F302VDTx, STM32F302VEHx, STM32F302VETx, STM32F302ZDTx, STM32F302ZETx, STM32F303C6Tx, STM32F303C8Tx, STM32F303C8Yx, STM32F303CBTx, STM32F303CCTx, STM32F303K6Tx, STM32F303K6Ux, STM32F303K8Tx, STM32F303K8Ux, STM32F303R6Tx, STM32F303R8Tx, STM32F303RBTx, STM32F303RCTx, STM32F303RDTx, STM32F303RETx, STM32F303VBTx, STM32F303VCTx, STM32F303VCYx, STM32F303VDHx, STM32F303VDTx, STM32F303VEHx, STM32F303VETx, STM32F303VEYx, STM32F303ZDTx, STM32F303ZETx, STM32F318C8Tx, STM32F318C8Yx, STM32F318K8Ux, STM32F328C8Tx, STM32F334C4Tx, STM32F334C6Tx, STM32F334C8Tx, STM32F334C8Yx, STM32F334K4Tx, STM32F334K4Ux, STM32F334K6Tx, STM32F334K6Ux, STM32F334K8Tx, STM32F334K8Ux, STM32F334R6Tx, STM32F334R8Tx, STM32F358CCTx, STM32F358RCTx, STM32F358VCTx, STM32F373C8Tx, STM32F373CBTx, STM32F373CCTx, STM32F373R8Tx, STM32F373RBTx, STM32F373RCTx, STM32F373V8Hx, STM32F373V8Tx, STM32F373VBHx, STM32F373VBTx, STM32F373VCHx, STM32F373VCTx, STM32F378CCTx, STM32F378RCTx, STM32F378RCYx, STM32F378VCHx, STM32F378VCTx, STM32F398VETx, STM32F401CBUx, STM32F401CBYx, STM32F401CCFx, STM32F401CCUx, STM32F401CCYx, STM32F401CDUx, STM32F401CDYx, STM32F401CEUx, STM32F401CEYx, STM32F401RBTx, STM32F401RCTx, STM32F401RDTx, STM32F401RETx, STM32F401VBHx, STM32F401VBTx, STM32F401VCHx, STM32F401VCTx, STM32F401VDHx, STM32F401VDTx, STM32F401VEHx, STM32F401VETx, STM32F405OEYx, STM32F405OGYx, STM32F405RGTx, STM32F405VGTx, STM32F405ZGTx, STM32F407IEHx, STM32F407IETx, STM32F407IGHx, STM32F407IGTx, STM32F407VETx, STM32F407VGTx, STM32F407ZETx, STM32F407ZGTx, STM32F410C8Tx, STM32F410C8Ux, STM32F410CBTx, STM32F410CBUx, STM32F410R8Ix, STM32F410R8Tx, STM32F410RBIx, STM32F410RBTx, STM32F410T8Yx, STM32F410TBYx, STM32F411CCUx, STM32F411CCYx, STM32F411CEUx, STM32F411CEYx, STM32F411RCTx, STM32F411RETx, STM32F411VCHx, STM32F411VCTx, STM32F411VEHx, STM32F411VETx, STM32F412CEUx, STM32F412CGUx, STM32F412RETx, STM32F412REYx, STM32F412REYxP, STM32F412RGTx, STM32F412RGYx, STM32F412RGYxP, STM32F412VEHx, STM32F412VETx, STM32F412VGHx, STM32F412VGTx, STM32F412ZEJx, STM32F412ZETx, STM32F412ZGJx, STM32F412ZGTx, STM32F413CGUx, STM32F413CHUx, STM32F413MGYx, STM32F413MHYx, STM32F413RGTx, STM32F413RHTx, STM32F413VGHx, STM32F413VGTx, STM32F413VHHx, STM32F413VHTx, STM32F413ZGJx, STM32F413ZGTx, STM32F413ZHJx, STM32F413ZHTx, STM32F415OGYx, STM32F415RGTx, STM32F415VGTx, STM32F415ZGTx, STM32F417IEHx, STM32F417IETx, STM32F417IGHx, STM32F417IGTx, STM32F417VETx, STM32F417VGTx, STM32F417ZETx, STM32F417ZGTx, STM32F423CHUx, STM32F423MHYx, STM32F423RHTx, STM32F423VHHx, STM32F423VHTx, STM32F423ZHJx, STM32F423ZHTx, STM32F427AGHx, STM32F427AIHx, STM32F427IGHx, STM32F427IGTx, STM32F427IIHx, STM32F427IITx, STM32F427VGTx, STM32F427VITx, STM32F427ZGTx, STM32F427ZITx, STM32F429AGHx, STM32F429AIHx, STM32F429BETx, STM32F429BGTx, STM32F429BITx, STM32F429IEHx, STM32F429IETx, STM32F429IGHx, STM32F429IGTx, STM32F429IIHx, STM32F429IITx, STM32F429NEHx, STM32F429NGHx, STM32F429NIHx, STM32F429VETx, STM32F429VGTx, STM32F429VITx, STM32F429ZETx, STM32F429ZGTx, STM32F429ZGYx, STM32F429ZITx, STM32F429ZIYx, STM32F437AIHx, STM32F437IGHx, STM32F437IGTx, STM32F437IIHx, STM32F437IITx, STM32F437VGTx, STM32F437VITx, STM32F437ZGTx, STM32F437ZITx, STM32F439AIHx, STM32F439BGTx, STM32F439BITx, STM32F439IGHx, STM32F439IGTx, STM32F439IIHx, STM32F439IITx, STM32F439NGHx, STM32F439NIHx, STM32F439VGTx, STM32F439VITx, STM32F439ZGTx, STM32F439ZGYx, STM32F439ZITx, STM32F439ZIYx, STM32F446MCYx, STM32F446MEYx, STM32F446RCTx, STM32F446RETx, STM32F446VCTx, STM32F446VETx, STM32F446ZCHx, STM32F446ZCJx, STM32F446ZCTx, STM32F446ZEHx, STM32F446ZEJx, STM32F446ZETx, STM32F469AEHx, STM32F469AEYx, STM32F469AGHx, STM32F469AGYx, STM32F469AIHx, STM32F469AIYx, STM32F469BETx, STM32F469BGTx, STM32F469BITx, STM32F469IEHx, STM32F469IETx, STM32F469IGHx, STM32F469IGTx, STM32F469IIHx, STM32F469IITx, STM32F469NEHx, STM32F469NGHx, STM32F469NIHx, STM32F469VETx, STM32F469VGTx, STM32F469VITx, STM32F469ZETx, STM32F469ZGTx, STM32F469ZITx, STM32F479AGHx, STM32F479AGYx, STM32F479AIHx, STM32F479AIYx, STM32F479BGTx, STM32F479BITx, STM32F479IGHx, STM32F479IGTx, STM32F479IIHx, STM32F479IITx, STM32F479NGHx, STM32F479NIHx, STM32F479VGTx, STM32F479VITx, STM32F479ZGTx, STM32F479ZITx, STM32F722ICKx, STM32F722ICTx, STM32F722IEKx, STM32F722IETx, STM32F722RCTx, STM32F722RETx, STM32F722VCTx, STM32F722VETx, STM32F722ZCTx, STM32F722ZETx, STM32F723ICKx, STM32F723ICTx, STM32F723IEKx, STM32F723IETx, STM32F723VCTx, STM32F723VCYx, STM32F723VETx, STM32F723VEYx, STM32F723ZCIx, STM32F723ZCTx, STM32F723ZEIx, STM32F723ZETx, STM32F730I8Kx, STM32F730R8Tx, STM32F730V8Tx, STM32F730Z8Tx, STM32F732IEKx, STM32F732IETx, STM32F732RETx, STM32F732VETx, STM32F732ZETx, STM32F733IEKx, STM32F733IETx, STM32F733VETx, STM32F733VEYx, STM32F733ZEIx, STM32F733ZETx, STM32F745IEKx, STM32F745IETx, STM32F745IGKx, STM32F745IGTx, STM32F745VEHx, STM32F745VETx, STM32F745VGHx, STM32F745VGTx, STM32F745ZETx, STM32F745ZGTx, STM32F746BETx, STM32F746BGTx, STM32F746IEKx, STM32F746IETx, STM32F746IGKx, STM32F746IGTx, STM32F746NEHx, STM32F746NGHx, STM32F746VEHx, STM32F746VETx, STM32F746VGHx, STM32F746VGTx, STM32F746ZETx, STM32F746ZEYx, STM32F746ZGTx, STM32F746ZGYx, STM32F750N8Hx, STM32F750V8Tx, STM32F750Z8Tx, STM32F756BGTx, STM32F756IGKx, STM32F756IGTx, STM32F756NGHx, STM32F756VGHx, STM32F756VGTx, STM32F756ZGTx, STM32F756ZGYx, STM32F765BGTx, STM32F765BITx, STM32F765IGKx, STM32F765IGTx, STM32F765IIKx, STM32F765IITx, STM32F765NGHx, STM32F765NIHx, STM32F765VGHx, STM32F765VGTx, STM32F765VIHx, STM32F765VITx, STM32F765ZGTx, STM32F765ZITx, STM32F767BGTx, STM32F767BITx, STM32F767IGKx, STM32F767IGTx, STM32F767IIKx, STM32F767IITx, STM32F767NGHx, STM32F767NIHx, STM32F767VGHx, STM32F767VGTx, STM32F767VIHx, STM32F767VITx, STM32F767ZGTx, STM32F767ZITx, STM32F768AIYx, STM32F769AGYx, STM32F769AIYx, STM32F769BGTx, STM32F769BITx, STM32F769IGTx, STM32F769IITx, STM32F769NGHx, STM32F769NIHx, STM32F777BITx, STM32F777IIKx, STM32F777IITx, STM32F777NIHx, STM32F777VIHx, STM32F777VITx, STM32F777ZITx, STM32F778AIYx, STM32F779AIYx, STM32F779BITx, STM32F779IITx, STM32F779NIHx, STM32G4A1CETx, STM32G4A1CEUx, STM32G4A1KEUx, STM32G4A1MESx, STM32G4A1METx, STM32G4A1REIx, STM32G4A1RETx, STM32G4A1REYx, STM32G4A1VETx, STM32G030C6Tx, STM32G030C8Tx, STM32G030F6Px, STM32G030J6Mx, STM32G030K6Tx, STM32G030K8Tx, STM32G031C4Tx, STM32G031C4Ux, STM32G031C6Tx, STM32G031C6Ux, STM32G031C8Tx, STM32G031C8Ux, STM32G031F4Px, STM32G031F6Px, STM32G031F8Px, STM32G031G4Ux, STM32G031G6Ux, STM32G031G8Ux, STM32G031J4Mx, STM32G031J6Mx, STM32G031K4Tx, STM32G031K4Ux, STM32G031K6Tx, STM32G031K6Ux, STM32G031K8Tx, STM32G031K8Ux, STM32G031Y8Yx, STM32G041C6Tx, STM32G041C6Ux, STM32G041C8Tx, STM32G041C8Ux, STM32G041F6Px, STM32G041F8Px, STM32G041G6Ux, STM32G041G8Ux, STM32G041J6Mx, STM32G041K6Tx, STM32G041K6Ux, STM32G041K8Tx, STM32G041K8Ux, STM32G041Y8Yx, STM32G070CBTx, STM32G070KBTx, STM32G070RBTx, STM32G071C6Tx, STM32G071C6Ux, STM32G071C8Tx, STM32G071C8Ux, STM32G071CBTx, STM32G071CBUx, STM32G071EBYx, STM32G071G6Ux, STM32G071G8Ux, STM32G071G8UxN, STM32G071GBUx, STM32G071GBUxN, STM32G071K6Tx, STM32G071K6Ux, STM32G071K8Tx, STM32G071K8TxN, STM32G071K8Ux, STM32G071K8UxN, STM32G071KBTx, STM32G071KBTxN, STM32G071KBUx, STM32G071KBUxN, STM32G071R6Tx, STM32G071R8Tx, STM32G071RBIx, STM32G071RBTx, STM32G081CBTx, STM32G081CBUx, STM32G081EBYx, STM32G081GBUx, STM32G081GBUxN, STM32G081KBTx, STM32G081KBTxN, STM32G081KBUx, STM32G081KBUxN, STM32G081RBIx, STM32G081RBTx, STM32G431C6Tx, STM32G431C6Ux, STM32G431C8Tx, STM32G431C8Ux, STM32G431CBTx, STM32G431CBUx, STM32G431CBYx, STM32G431K6Tx, STM32G431K6Ux, STM32G431K8Tx, STM32G431K8Ux, STM32G431KBTx, STM32G431KBUx, STM32G431M6Tx, STM32G431M8Tx, STM32G431MBTx, STM32G431R6Ix, STM32G431R6Tx, STM32G431R8Ix, STM32G431R8Tx, STM32G431RBIx, STM32G431RBTx, STM32G431V6Tx, STM32G431V8Tx, STM32G431VBTx, STM32G441CBTx, STM32G441CBUx, STM32G441CBYx, STM32G441KBTx, STM32G441KBUx, STM32G441MBTx, STM32G441RBIx, STM32G441RBTx, STM32G441VBTx, STM32G471CCTx, STM32G471CCUx, STM32G471CETx, STM32G471CEUx, STM32G471MCTx, STM32G471METx, STM32G471MEYx, STM32G471QCTx, STM32G471QETx, STM32G471RCTx, STM32G471RETx, STM32G471VCHx, STM32G471VCIx, STM32G471VCTx, STM32G471VEHx, STM32G471VEIx, STM32G471VETx, STM32G473CBTx, STM32G473CBUx, STM32G473CCTx, STM32G473CCUx, STM32G473CETx, STM32G473CEUx, STM32G473MBTx, STM32G473MCTx, STM32G473METx, STM32G473MEYx, STM32G473PBIx, STM32G473PCIx, STM32G473PEIx, STM32G473QBTx, STM32G473QCTx, STM32G473QETx, STM32G473RBTx, STM32G473RCTx, STM32G473RETx, STM32G473VBHx, STM32G473VBIx, STM32G473VBTx, STM32G473VCHx, STM32G473VCIx, STM32G473VCTx, STM32G473VEHx, STM32G473VEIx, STM32G473VETx, STM32G474CBTx, STM32G474CBUx, STM32G474CCTx, STM32G474CCUx, STM32G474CETx, STM32G474CEUx, STM32G474MBTx, STM32G474MCTx, STM32G474METx, STM32G474MEYx, STM32G474PBIx, STM32G474PCIx, STM32G474PEIx, STM32G474QBTx, STM32G474QCTx, STM32G474QETx, STM32G474RBTx, STM32G474RCTx, STM32G474RETx, STM32G474VBHx, STM32G474VBIx, STM32G474VBTx, STM32G474VCHx, STM32G474VCIx, STM32G474VCTx, STM32G474VEHx, STM32G474VEIx, STM32G474VETx, STM32G483CETx, STM32G483CEUx, STM32G483METx, STM32G483MEYx, STM32G483PEIx, STM32G483QETx, STM32G483RETx, STM32G483VEHx, STM32G483VEIx, STM32G483VETx, STM32G484CETx, STM32G484CEUx, STM32G484METx, STM32G484MEYx, STM32G484PEIx, STM32G484QETx, STM32G484RETx, STM32G484VEHx, STM32G484VEIx, STM32G484VETx, STM32G491CCTx, STM32G491CCUx, STM32G491CETx, STM32G491CEUx, STM32G491KCUx, STM32G491KEUx, STM32G491MCSx, STM32G491MCTx, STM32G491MESx, STM32G491METx, STM32G491RCIx, STM32G491RCTx, STM32G491REIx, STM32G491RETx, STM32G491REYx, STM32G491VCTx, STM32G491VETx, STM32GBK1CBTx, STM32H7A3AGIxQ, STM32H7A3AIIxQ, STM32H7A3IGKx, STM32H7A3IGKxQ, STM32H7A3IGTx, STM32H7A3IGTxQ, STM32H7A3IIKx, STM32H7A3IIKxQ, STM32H7A3IITx, STM32H7A3IITxQ, STM32H7A3LGHxQ, STM32H7A3LIHxQ, STM32H7A3NGHx, STM32H7A3NIHx, STM32H7A3QIYxQ, STM32H7A3RGTx, STM32H7A3RITx, STM32H7A3VGHx, STM32H7A3VGHxQ, STM32H7A3VGTx, STM32H7A3VGTxQ, STM32H7A3VIHx, STM32H7A3VIHxQ, STM32H7A3VITx, STM32H7A3VITxQ, STM32H7A3ZGTx, STM32H7A3ZGTxQ, STM32H7A3ZITx, STM32H7A3ZITxQ, STM32H7B3AIIxQ, STM32H7B3IIKx, STM32H7B3IIKxQ, STM32H7B3IITx, STM32H7B3IITxQ, STM32H7B3LIHxQ, STM32H7B3NIHx, STM32H7B3QIYxQ, STM32H7B3RITx, STM32H7B3VIHx, STM32H7B3VIHxQ, STM32H7B3VITx, STM32H7B3VITxQ, STM32H7B3ZITx, STM32H7B3ZITxQ, STM32H7B0ABIxQ, STM32H7B0IBKxQ, STM32H7B0IBTx, STM32H7B0RBTx, STM32H7B0VBTx, STM32H7B0ZBTx, STM32H723VEHx, STM32H723VETx, STM32H723VGHx, STM32H723VGTx, STM32H723ZEIx, STM32H723ZETx, STM32H723ZGIx, STM32H723ZGTx, STM32H725AEIx, STM32H725AGIx, STM32H725IEKx, STM32H725IETx, STM32H725IGKx, STM32H725IGTx, STM32H725REVx, STM32H725RGVx, STM32H725VETx, STM32H725VGTx, STM32H725VGYx, STM32H725ZETx, STM32H725ZGTx, STM32H730ABIxQ, STM32H730IBKxQ, STM32H730IBTxQ, STM32H730VBHx, STM32H730VBTx, STM32H730ZBIx, STM32H730ZBTx, STM32H733VGHx, STM32H733VGTx, STM32H733ZGIx, STM32H733ZGTx, STM32H735AGIx, STM32H735IGKx, STM32H735IGTx, STM32H735RGVx, STM32H735VGTx, STM32H735VGYx, STM32H735ZGTx, STM32H742AGIx, STM32H742AIIx, STM32H742BGTx, STM32H742BITx, STM32H742IGKx, STM32H742IGTx, STM32H742IIKx, STM32H742IITx, STM32H742VGHx, STM32H742VGTx, STM32H742VIHx, STM32H742VITx, STM32H742XGHx, STM32H742XIHx, STM32H742ZGTx, STM32H742ZITx, STM32H743AGIx, STM32H743AIIx, STM32H743BGTx, STM32H743BITx, STM32H743IGKx, STM32H743IGTx, STM32H743IIKx, STM32H743IITx, STM32H743VGHx, STM32H743VGTx, STM32H743VIHx, STM32H743VITx, STM32H743XGHx, STM32H743XIHx, STM32H743ZGTx, STM32H743ZITx, STM32H745BGTx, STM32H745BITx, STM32H745IGKx, STM32H745IGTx, STM32H745IIKx, STM32H745IITx, STM32H745XGHx, STM32H745XIHx, STM32H745ZGTx, STM32H745ZITx, STM32H747AGIx, STM32H747AIIx, STM32H747BGTx, STM32H747BITx, STM32H747IGTx, STM32H747IITx, STM32H747XGHx, STM32H747XIHx, STM32H747ZIYx, STM32H750IBKx, STM32H750IBTx, STM32H750VBTx, STM32H750XBHx, STM32H750ZBTx, STM32H753AIIx, STM32H753BITx, STM32H753IIKx, STM32H753IITx, STM32H753VIHx, STM32H753VITx, STM32H753XIHx, STM32H753ZITx, STM32H755BITx, STM32H755IIKx, STM32H755IITx, STM32H755XIHx, STM32H755ZITx, STM32H757AIIx, STM32H757BITx, STM32H757IITx, STM32H757XIHx, STM32H757ZIYx, STM32L4A6AGIx, STM32L4A6AGIxP, STM32L4A6QGIx, STM32L4A6QGIxP, STM32L4A6RGTx, STM32L4A6RGTxP, STM32L4A6VGTx, STM32L4A6VGTxP, STM32L4A6VGYx, STM32L4A6VGYxP, STM32L4A6ZGTx, STM32L4A6ZGTxP, STM32L4P5AEIx, STM32L4P5AGIx, STM32L4P5AGIxP, STM32L4P5CETx, STM32L4P5CEUx, STM32L4P5CGTx, STM32L4P5CGTxP, STM32L4P5CGUx, STM32L4P5CGUxP, STM32L4P5QEIx, STM32L4P5QGIx, STM32L4P5QGIxP, STM32L4P5RETx, STM32L4P5RGTx, STM32L4P5RGTxP, STM32L4P5VETx, STM32L4P5VEYx, STM32L4P5VGTx, STM32L4P5VGTxP, STM32L4P5VGYx, STM32L4P5VGYxP, STM32L4P5ZETx, STM32L4P5ZGTx, STM32L4P5ZGTxP, STM32L4Q5AGIx, STM32L4Q5CGTx, STM32L4Q5CGUx, STM32L4Q5QGIx, STM32L4Q5RGTx, STM32L4Q5VGTx, STM32L4Q5VGYx, STM32L4Q5ZGTx, STM32L4R5AGIx, STM32L4R5AIIx, STM32L4R5QGIx, STM32L4R5QIIx, STM32L4R5VGTx, STM32L4R5VITx, STM32L4R5ZGTx, STM32L4R5ZGYx, STM32L4R5ZITx, STM32L4R5ZITxP, STM32L4R5ZIYx, STM32L4R7AIIx, STM32L4R7VITx, STM32L4R7ZITx, STM32L4R9AGIx, STM32L4R9AIIx, STM32L4R9VGTx, STM32L4R9VITx, STM32L4R9ZGJx, STM32L4R9ZGTx, STM32L4R9ZGYx, STM32L4R9ZIJx, STM32L4R9ZITx, STM32L4R9ZIYx, STM32L4R9ZIYxP, STM32L4S5AIIx, STM32L4S5QIIx, STM32L4S5VITx, STM32L4S5ZITx, STM32L4S5ZIYx, STM32L4S7AIIx, STM32L4S7VITx, STM32L4S7ZITx, STM32L4S9AIIx, STM32L4S9VITx, STM32L4S9ZIJx, STM32L4S9ZITx, STM32L4S9ZIYx, STM32L010C6Tx, STM32L010F4Px, STM32L010K4Tx, STM32L010K8Tx, STM32L010R8Tx, STM32L010RBTx, STM32L011D3Px, STM32L011D4Px, STM32L011E3Yx, STM32L011E4Yx, STM32L011F3Px, STM32L011F3Ux, STM32L011F4Px, STM32L011F4Ux, STM32L011G3Ux, STM32L011G4Ux, STM32L011K3Tx, STM32L011K3Ux, STM32L011K4Tx, STM32L011K4Ux, STM32L021D4Px, STM32L021F4Px, STM32L021F4Ux, STM32L021G4Ux, STM32L021K4Tx, STM32L021K4Ux, STM32L031C4Tx, STM32L031C4Ux, STM32L031C6Tx, STM32L031C6Ux, STM32L031E4Yx, STM32L031E6Yx, STM32L031F4Px, STM32L031F6Px, STM32L031G4Ux, STM32L031G6Ux, STM32L031G6UxS, STM32L031K4Tx, STM32L031K4Ux, STM32L031K6Tx, STM32L031K6Ux, STM32L041C4Tx, STM32L041C6Tx, STM32L041C6Ux, STM32L041E6Yx, STM32L041F6Px, STM32L041G6Ux, STM32L041G6UxS, STM32L041K6Tx, STM32L041K6Ux, STM32L051C6Tx, STM32L051C6Ux, STM32L051C8Tx, STM32L051C8Ux, STM32L051K6Tx, STM32L051K6Ux, STM32L051K8Tx, STM32L051K8Ux, STM32L051R6Hx, STM32L051R6Tx, STM32L051R8Hx, STM32L051R8Tx, STM32L051T6Yx, STM32L051T8Yx, STM32L052C6Tx, STM32L052C6Ux, STM32L052C8Tx, STM32L052C8Ux, STM32L052K6Tx, STM32L052K6Ux, STM32L052K8Tx, STM32L052K8Ux, STM32L052R6Hx, STM32L052R6Tx, STM32L052R8Hx, STM32L052R8Tx, STM32L052T6Yx, STM32L052T8Fx, STM32L052T8Yx, STM32L053C6Tx, STM32L053C6Ux, STM32L053C8Tx, STM32L053C8Ux, STM32L053R6Hx, STM32L053R6Tx, STM32L053R8Hx, STM32L053R8Tx, STM32L062C8Ux, STM32L062K8Tx, STM32L062K8Ux, STM32L063C8Tx, STM32L063C8Ux, STM32L063R8Tx, STM32L071C8Tx, STM32L071C8Ux, STM32L071CBTx, STM32L071CBUx, STM32L071CBYx, STM32L071CZTx, STM32L071CZUx, STM32L071CZYx, STM32L071K8Ux, STM32L071KBTx, STM32L071KBUx, STM32L071KZTx, STM32L071KZUx, STM32L071RBHx, STM32L071RBTx, STM32L071RZHx, STM32L071RZTx, STM32L071V8Ix, STM32L071V8Tx, STM32L071VBIx, STM32L071VBTx, STM32L071VZIx, STM32L071VZTx, STM32L072CBTx, STM32L072CBUx, STM32L072CBYx, STM32L072CZEx, STM32L072CZTx, STM32L072CZUx, STM32L072CZYx, STM32L072KBTx, STM32L072KBUx, STM32L072KZTx, STM32L072KZUx, STM32L072RBHx, STM32L072RBIx, STM32L072RBTx, STM32L072RZHx, STM32L072RZIx, STM32L072RZTx, STM32L072V8Ix, STM32L072V8Tx, STM32L072VBIx, STM32L072VBTx, STM32L072VZIx, STM32L072VZTx, STM32L073CBTx, STM32L073CBUx, STM32L073CZTx, STM32L073CZUx, STM32L073RBHx, STM32L073RBTx, STM32L073RZHx, STM32L073RZIx, STM32L073RZTx, STM32L073V8Ix, STM32L073V8Tx, STM32L073VBIx, STM32L073VBTx, STM32L073VZIx, STM32L073VZTx, STM32L081CBTx, STM32L081CZTx, STM32L081CZUx, STM32L081KZTx, STM32L081KZUx, STM32L082CZUx, STM32L082CZYx, STM32L082KBTx, STM32L082KBUx, STM32L082KZTx, STM32L082KZUx, STM32L083CBTx, STM32L083CZTx, STM32L083CZUx, STM32L083RBHx, STM32L083RBTx, STM32L083RZHx, STM32L083RZTx, STM32L083V8Ix, STM32L083V8Tx, STM32L083VBIx, STM32L083VBTx, STM32L083VZIx, STM32L083VZTx, STM32L100C6Ux, STM32L100C6UxA, STM32L100R8Tx, STM32L100R8TxA, STM32L100RBTx, STM32L100RBTxA, STM32L100RCTx, STM32L151C6Tx, STM32L151C6TxA, STM32L151C6Ux, STM32L151C6UxA, STM32L151C8Tx, STM32L151C8TxA, STM32L151C8Ux, STM32L151C8UxA, STM32L151CBTx, STM32L151CBTxA, STM32L151CBUx, STM32L151CBUxA, STM32L151CCTx, STM32L151CCUx, STM32L151QCHx, STM32L151QDHx, STM32L151QEHx, STM32L151R6Hx, STM32L151R6HxA, STM32L151R6Tx, STM32L151R6TxA, STM32L151R8Hx, STM32L151R8HxA, STM32L151R8Tx, STM32L151R8TxA, STM32L151RBHx, STM32L151RBHxA, STM32L151RBTx, STM32L151RBTxA, STM32L151RCTx, STM32L151RCTxA, STM32L151RCYx, STM32L151RDTx, STM32L151RDYx, STM32L151RETx, STM32L151UCYx, STM32L151V8Hx, STM32L151V8HxA, STM32L151V8Tx, STM32L151V8TxA, STM32L151VBHx, STM32L151VBHxA, STM32L151VBTx, STM32L151VBTxA, STM32L151VCHx, STM32L151VCTx, STM32L151VCTxA, STM32L151VDTx, STM32L151VDTxX, STM32L151VDYxX, STM32L151VETx, STM32L151VEYx, STM32L151ZCTx, STM32L151ZDTx, STM32L151ZETx, STM32L152C6Tx, STM32L152C6TxA, STM32L152C6Ux, STM32L152C6UxA, STM32L152C8Tx, STM32L152C8TxA, STM32L152C8Ux, STM32L152C8UxA, STM32L152CBTx, STM32L152CBTxA, STM32L152CBUx, STM32L152CBUxA, STM32L152CCTx, STM32L152CCUx, STM32L152QCHx, STM32L152QDHx, STM32L152QEHx, STM32L152R6Hx, STM32L152R6HxA, STM32L152R6Tx, STM32L152R6TxA, STM32L152R8Hx, STM32L152R8HxA, STM32L152R8Tx, STM32L152R8TxA, STM32L152RBHx, STM32L152RBHxA, STM32L152RBTx, STM32L152RBTxA, STM32L152RCTx, STM32L152RCTxA, STM32L152RDTx, STM32L152RDYx, STM32L152RETx, STM32L152UCYx, STM32L152V8Hx, STM32L152V8HxA, STM32L152V8Tx, STM32L152V8TxA, STM32L152VBHx, STM32L152VBHxA, STM32L152VBTx, STM32L152VBTxA, STM32L152VCHx, STM32L152VCTx, STM32L152VCTxA, STM32L152VDTx, STM32L152VDTxX, STM32L152VETx, STM32L152VEYx, STM32L152ZCTx, STM32L152ZDTx, STM32L152ZETx, STM32L162QCHx, STM32L162QDHx, STM32L162RCTx, STM32L162RCTxA, STM32L162RDTx, STM32L162RDYx, STM32L162RETx, STM32L162VCHx, STM32L162VCTx, STM32L162VCTxA, STM32L162VDTx, STM32L162VDYxX, STM32L162VETx, STM32L162VEYx, STM32L162ZCTx, STM32L162ZDTx, STM32L162ZETx, STM32L412C8Tx, STM32L412C8Ux, STM32L412CBTx, STM32L412CBTxP, STM32L412CBUx, STM32L412CBUxP, STM32L412K8Tx, STM32L412K8Ux, STM32L412KBTx, STM32L412KBUx, STM32L412R8Ix, STM32L412R8Tx, STM32L412RBIx, STM32L412RBIxP, STM32L412RBTx, STM32L412RBTxP, STM32L412T8Yx, STM32L412TBYx, STM32L412TBYxP, STM32L422CBTx, STM32L422CBUx, STM32L422KBTx, STM32L422KBUx, STM32L422RBIx, STM32L422RBTx, STM32L422TBYx, STM32L431CBTx, STM32L431CBUx, STM32L431CBYx, STM32L431CCTx, STM32L431CCUx, STM32L431CCYx, STM32L431KBUx, STM32L431KCUx, STM32L431RBIx, STM32L431RBTx, STM32L431RBYx, STM32L431RCIx, STM32L431RCTx, STM32L431RCYx, STM32L431VCIx, STM32L431VCTx, STM32L432KBUx, STM32L432KCUx, STM32L433CBTx, STM32L433CBUx, STM32L433CBYx, STM32L433CCTx, STM32L433CCUx, STM32L433CCYx, STM32L433RBIx, STM32L433RBTx, STM32L433RBYx, STM32L433RCIx, STM32L433RCTx, STM32L433RCTxP, STM32L433RCYx, STM32L433VCIx, STM32L433VCTx, STM32L442KCUx, STM32L443CCTx, STM32L443CCUx, STM32L443CCYx, STM32L443RCIx, STM32L443RCTx, STM32L443RCYx, STM32L443VCIx, STM32L443VCTx, STM32L451CCUx, STM32L451CEUx, STM32L451RCIx, STM32L451RCTx, STM32L451RCYx, STM32L451REIx, STM32L451RETx, STM32L451REYx, STM32L451VCIx, STM32L451VCTx, STM32L451VEIx, STM32L451VETx, STM32L452CCUx, STM32L452CEUx, STM32L452RCIx, STM32L452RCTx, STM32L452RCYx, STM32L452REIx, STM32L452RETx, STM32L452RETxP, STM32L452REYx, STM32L452VCIx, STM32L452VCTx, STM32L452VEIx, STM32L452VETx, STM32L462CEUx, STM32L462REIx, STM32L462RETx, STM32L462REYx, STM32L462VEIx, STM32L462VETx, STM32L471QEIx, STM32L471QGIx, STM32L471RETx, STM32L471RGTx, STM32L471VETx, STM32L471VGTx, STM32L471ZEJx, STM32L471ZETx, STM32L471ZGJx, STM32L471ZGTx, STM32L475RCTx, STM32L475RETx, STM32L475RGTx, STM32L475VCTx, STM32L475VETx, STM32L475VGTx, STM32L476JEYx, STM32L476JGYx, STM32L476JGYxP, STM32L476MEYx, STM32L476MGYx, STM32L476QEIx, STM32L476QGIx, STM32L476RCTx, STM32L476RETx, STM32L476RGTx, STM32L476VCTx, STM32L476VETx, STM32L476VGTx, STM32L476ZETx, STM32L476ZGJx, STM32L476ZGTx, STM32L476ZGTxP, STM32L485JCYx, STM32L485JEYx, STM32L486JGYx, STM32L486QGIx, STM32L486RGTx, STM32L486VGTx, STM32L486ZGTx, STM32L496AEIx, STM32L496AGIx, STM32L496AGIxP, STM32L496QEIx, STM32L496QGIx, STM32L496QGIxP, STM32L496RETx, STM32L496RGTx, STM32L496RGTxP, STM32L496VETx, STM32L496VGTx, STM32L496VGTxP, STM32L496VGYx, STM32L496VGYxP, STM32L496WGYxP, STM32L496ZETx, STM32L496ZGTx, STM32L496ZGTxP, STM32L552CCTx, STM32L552CCUx, STM32L552CETx, STM32L552CETxP, STM32L552CEUx, STM32L552CEUxP, STM32L552MEYxP, STM32L552MEYxQ, STM32L552QCIxQ, STM32L552QEIx, STM32L552QEIxP, STM32L552QEIxQ, STM32L552RCTx, STM32L552RETx, STM32L552RETxP, STM32L552RETxQ, STM32L552VCTxQ, STM32L552VETx, STM32L552VETxQ, STM32L552ZCTxQ, STM32L552ZETx, STM32L552ZETxQ, STM32L562CETx, STM32L562CETxP, STM32L562CEUx, STM32L562CEUxP, STM32L562MEYxP, STM32L562MEYxQ, STM32L562QEIx, STM32L562QEIxP, STM32L562QEIxQ, STM32L562RETx, STM32L562RETxP, STM32L562RETxQ, STM32L562VETx, STM32L562VETxQ, STM32L562ZETx, STM32L562ZETxQ, STM32MP151AAAx, STM32MP151AABx, STM32MP151AACx, STM32MP151AADx, STM32MP151CAAx, STM32MP151CABx, STM32MP151CACx, STM32MP151CADx, STM32MP151DAAx, STM32MP151DABx, STM32MP151DACx, STM32MP151DADx, STM32MP151FAAx, STM32MP151FABx, STM32MP151FACx, STM32MP151FADx, STM32MP153AAAx, STM32MP153AABx, STM32MP153AACx, STM32MP153AADx, STM32MP153CAAx, STM32MP153CABx, STM32MP153CACx, STM32MP153CADx, STM32MP153DAAx, STM32MP153DABx, STM32MP153DACx, STM32MP153DADx, STM32MP153FAAx, STM32MP153FABx, STM32MP153FACx, STM32MP153FADx, STM32MP157AAAx, STM32MP157AABx, STM32MP157AACx, STM32MP157AADx, STM32MP157CAAx, STM32MP157CABx, STM32MP157CACx, STM32MP157CADx, STM32MP157DAAx, STM32MP157DABx, STM32MP157DACx, STM32MP157DADx, STM32MP157FAAx, STM32MP157FABx, STM32MP157FACx, STM32MP157FADx, STM32WB5MMGHx, STM32WB30CEUx, STM32WB35CCUx, STM32WB35CEUx, STM32WB50CGUx, STM32WB55CCUx, STM32WB55CEUx, STM32WB55CGUx, STM32WB55RCVx, STM32WB55REVx, STM32WB55RGVx, STM32WB55VCQx, STM32WB55VCYx, STM32WB55VEQx, STM32WB55VEYx, STM32WB55VGQx, STM32WB55VGYx, STM32WB55VYYx] -No map found for id: -No map found for id: -No map found for id: -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported -No map found for id: org.eclipse.cdt.managedbuilder.ui.rcbs -No map found for id: org.eclipse.cdt.managedbuilder.ui.rcbs -Unknown value type "" for id gnu.cpp.compiler.option.preprocessor.def.symbols on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler -No map found for id: gnu.cpp.debugging.level.max -Unknown value type "" for id gnu.c.link.option.libs on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker -Unknown value type "" for id gnu.c.link.option.paths on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker -Unknown value type "" for id gnu.c.link.option.other on tool fr.ac6.managedbuild.tool.gnu.cross.c.linker -Unknown value type "" for id gnu.cpp.link.option.libs on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker -Unknown value type "" for id gnu.cpp.link.option.paths on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker -Unknown value type "" for id gnu.cpp.link.option.other on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.linker -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported -Value type err, id: gnu.cpp.link.option.flags -Unknown value type "" for id gnu.both.asm.option.include.paths on tool fr.ac6.managedbuild.tool.gnu.cross.assembler.exe.release -Unknown value type "" for id fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level on tool fr.ac6.managedbuild.tool.gnu.cross.c.compiler -Unknown value type "" for id fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level on tool fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.noexceptions is no longer supported -Option fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.nortti is no longer supported diff --git a/KugleFirmware/Libraries/Applications/BalanceController/BalanceController.cpp b/KugleFirmware/Libraries/Applications/BalanceController/BalanceController.cpp index e2c7717..ff269d7 100644 --- a/KugleFirmware/Libraries/Applications/BalanceController/BalanceController.cpp +++ b/KugleFirmware/Libraries/Applications/BalanceController/BalanceController.cpp @@ -204,7 +204,7 @@ void BalanceController::Thread(void * pvParameters) FirstOrderLPF& Motor2_LPF = *(new FirstOrderLPF(1.0f/params.controller.SampleRate, params.controller.TorqueLPFtau)); FirstOrderLPF& Motor3_LPF = *(new FirstOrderLPF(1.0f/params.controller.SampleRate, params.controller.TorqueLPFtau)); -#if 1 // UNIT TESTS DISABLED +#if 0 // UNIT TESTS DISABLED if (!fbl.UnitTest()) { ERROR("FBL Unit test failed!"); } From cea2907e7647f19ce5112362b32bd15298df4e15 Mon Sep 17 00:00:00 2001 From: VBorjaDD Date: Tue, 1 Dec 2020 11:01:54 +0100 Subject: [PATCH 7/8] Auto generated --- KugleFirmware/.cproject | 1 + KugleFirmware/KugleFirmware.xml | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/KugleFirmware/.cproject b/KugleFirmware/.cproject index 85f518e..988385a 100644 --- a/KugleFirmware/.cproject +++ b/KugleFirmware/.cproject @@ -140,6 +140,7 @@ +