diff --git a/fw/.cproject b/fw/.cproject
index 3f03a16..457c53a 100644
--- a/fw/.cproject
+++ b/fw/.cproject
@@ -25,11 +25,11 @@
-
-
+
-
-
+
+
diff --git a/fw/.settings/org.eclipse.cdt.codan.core.prefs b/fw/.settings/org.eclipse.cdt.codan.core.prefs
new file mode 100644
index 0000000..2e279ce
--- /dev/null
+++ b/fw/.settings/org.eclipse.cdt.codan.core.prefs
@@ -0,0 +1,74 @@
+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.localvarreturn=-Warning
+org.eclipse.cdt.codan.checkers.localvarreturn.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(\\"Returning the address of a local variable\\")"}
+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.BlacklistProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.BlacklistProblem.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 or method is blacklisted\\")",blacklist\=>()}
+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\\")",checkMacro\=>true}
+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.FloatCompareProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem.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(\\"Direct float comparison\\")"}
+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.MagicNumberProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem.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(\\"Avoid magic numbers\\")",checkArray\=>true,checkOperatorParen\=>true,exceptions\=>(1,0,-1,2,1.0,0.0,-1.0)}
+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.MultipleDeclarationsProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem.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(\\"Multiple variable declaration\\")"}
+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.NoDiscardProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem.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 value not evaluated\\")",macro\=>true}
+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.ShallowCopyProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem.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(\\"Miss copy constructor or assignment operator\\")",onlynew\=>false}
+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.StaticVariableInHeaderProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem.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(\\"Static variable in header file\\")"}
+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.SymbolShadowingProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem.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 shadowing\\")",paramFuncParameters\=>true}
+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/fw/.settings/org.eclipse.cdt.core.prefs b/fw/.settings/org.eclipse.cdt.core.prefs
new file mode 100644
index 0000000..c8ec5df
--- /dev/null
+++ b/fw/.settings/org.eclipse.cdt.core.prefs
@@ -0,0 +1,6 @@
+doxygen/doxygen_new_line_after_brief=true
+doxygen/doxygen_use_brief_tag=false
+doxygen/doxygen_use_javadoc_tags=true
+doxygen/doxygen_use_pre_tag=false
+doxygen/doxygen_use_structural_commands=false
+eclipse.preferences.version=1
diff --git a/fw/Core/Inc/config.h b/fw/Core/Inc/config.h
index 9f9b66c..4a4ab36 100644
--- a/fw/Core/Inc/config.h
+++ b/fw/Core/Inc/config.h
@@ -49,23 +49,17 @@ config_read(&config);
* Device description data can be accessed using direct readout from the memory
* Device configuration data can be accessed using config_t struct.
*/
-#define CONFIG_DEFAULT_LED_ON 1
-#define CONFIG_DEFAULT_LED_BRIGHTNESS 100
-#define CONFIG_DEFAULT_LED_ALERT1_LIMIT 1500
-#define CONFIG_DEFAULT_LED_ALERT2_LIMIT 3000
-#define CONFIG_DEFAULT_LED_SMOOTH 1
-#define CONFIG_DEFAULT_SCD4x_T_OFFSET 0
+
#define CONFIG_DEFAULT_BAUDRATE_INDEX 0
+#define CONFIG_SERIAL_NUMBER_1_LENGTH 2
+#define CONFIG_SERIAL_NUMBER_2_LENGTH 2
#define CONFIG_MODBUS_ADDR_LENGTH 2
+#define CONFIG_LTR329_GAIN_LENGHT 2
+#define CONFIG_LTR329_MODE_LENGTH 2
+#define CONFIG_LTR329_INTEG_TIME_LENGTH 2
+#define CONFIG_LTR329_MEAS_RATE_LENGTH 2
#define CONFIG_BAUDRATE_INDEX_LENGTH 2
-#define CONFIG_LED_ON_LENGTH 2
-#define CONFIG_LED_BRIGHTNESS_LENGTH 2
-#define CONFIG_LED_SMOOTH_LENGTH 2
-#define CONFIG_LED_ALERT1_LENGTH 2
-#define CONFIG_LED_ALERT2_LENGTH 2
-#define CONFIG_LED_ALERT2_LENGTH 2
-#define CONFIG_SCD4x_T_OFFSET_LENGTH 2
#define VENDOR_NAME_LENGTH 64
#define PRODUCT_CODE_LENGTH 64
#define PRODUCT_NAME_LENGTH 64
@@ -77,16 +71,16 @@ config_read(&config);
#define EEPROM_ADDR_START ((uint32_t)0x08080000)
#define EEPROM_ADDR_END ((uint32_t)0x080803FF)
-#define CONFIG_EEPROM_ADDR_MODBUS_ADDR EEPROM_ADDR_START
+#define CONFIG_EEPROM_ADDR_SERIAL_NUMBER_1 (EEPROM_ADDR_START)
+#define CONFIG_EEPROM_ADDR_SERIAL_NUMBER_2 (CONFIG_EEPROM_ADDR_SERIAL_NUMBER_1 + CONFIG_SERIAL_NUMBER_1_LENGTH)
+#define CONFIG_EEPROM_ADDR_MODBUS_ADDR (CONFIG_EEPROM_ADDR_SERIAL_NUMBER_2 + CONFIG_SERIAL_NUMBER_2_LENGTH)
#define CONFIG_EEPROM_ADDR_BAUDRATE_INDEX (CONFIG_EEPROM_ADDR_MODBUS_ADDR + CONFIG_MODBUS_ADDR_LENGTH)
-#define CONFIG_EEPROM_ADDR_LED_ON (CONFIG_EEPROM_ADDR_BAUDRATE_INDEX + CONFIG_BAUDRATE_INDEX_LENGTH)
-#define CONFIG_EEPROM_ADDR_LED_BRIGHTNESS (CONFIG_EEPROM_ADDR_LED_ON + CONFIG_LED_ON_LENGTH)
-#define CONFIG_EEPROM_ADDR_LED_SMOOTH (CONFIG_EEPROM_ADDR_LED_BRIGHTNESS + CONFIG_LED_BRIGHTNESS_LENGTH)
-#define CONFIG_EEPROM_ADDR_LED_ALERT1 (CONFIG_EEPROM_ADDR_LED_SMOOTH + CONFIG_LED_SMOOTH_LENGTH)
-#define CONFIG_EEPROM_ADDR_LED_ALERT2 (CONFIG_EEPROM_ADDR_LED_ALERT1 + CONFIG_LED_ALERT1_LENGTH)
-#define CONFIG_EEPROM_ADDR_SCD4x_T_OFFSET (CONFIG_EEPROM_ADDR_LED_ALERT2 + CONFIG_LED_ALERT2_LENGTH)
+#define CONFIG_EEPROM_ADDR_LTR329_GAIN (CONFIG_EEPROM_ADDR_BAUDRATE_INDEX + CONFIG_BAUDRATE_INDEX_LENGTH)
+#define CONFIG_EEPROM_ADDR_LTR329_MODE (CONFIG_EEPROM_ADDR_LTR329_GAIN + CONFIG_LTR329_GAIN_LENGHT)
+#define CONFIG_EEPROM_ADDR_LTR329_INTEG_TIME (CONFIG_EEPROM_ADDR_LTR329_MODE + CONFIG_LTR329_MODE_LENGTH)
+#define CONFIG_EEPROM_ADDR_LTR329_MEAS_RATE (CONFIG_EEPROM_ADDR_LTR329_INTEG_TIME + CONFIG_LTR329_INTEG_TIME_LENGTH)
-#define CONFIG_EEPROM_ADDR_VENDOR_NAME (CONFIG_EEPROM_ADDR_SCD4x_T_OFFSET + CONFIG_SCD4x_T_OFFSET_LENGTH)
+#define CONFIG_EEPROM_ADDR_VENDOR_NAME (CONFIG_EEPROM_ADDR_LTR329_MEAS_RATE + CONFIG_LTR329_MEAS_RATE_LENGTH)
#define CONFIG_EEPROM_ADDR_PRODUCT_CODE (CONFIG_EEPROM_ADDR_VENDOR_NAME + VENDOR_NAME_LENGTH)
#define CONFIG_EEPROM_ADDR_PRODUCT_NAME (CONFIG_EEPROM_ADDR_PRODUCT_CODE + PRODUCT_CODE_LENGTH)
#define CONFIG_EEPROM_ADDR_REVISION (CONFIG_EEPROM_ADDR_PRODUCT_NAME + PRODUCT_NAME_LENGTH)
diff --git a/fw/Core/Inc/main.h b/fw/Core/Inc/main.h
index 8413ac1..5067f94 100644
--- a/fw/Core/Inc/main.h
+++ b/fw/Core/Inc/main.h
@@ -53,6 +53,7 @@ extern "C" {
#include "sht4x.h"
#include "ltr329.h"
#include "modbus.h"
+#include "crc8.h"
#include "config.h"
/* USER CODE END Includes */
diff --git a/fw/Core/Src/main.c b/fw/Core/Src/main.c
index 135a623..43cb8f8 100644
--- a/fw/Core/Src/main.c
+++ b/fw/Core/Src/main.c
@@ -79,7 +79,8 @@ enum
REGISTER_NUM_RH = 30005, /* %, from SHT4x */
REGISTER_NUM_LIGHT_INTENSITY_0 = 30006, /* ticks, from LTR329 */ /*TODO: Find out what it is */
REGISTER_NUM_LIGHT_INTENSITY_1 = 30007, /* ticks, from LTR329 */ /*TODO: Find out what it is */
- /* VOC Index has initial blackout beriod, when the data is not ready. VOC index is 0 during this period */
+ REGISTER_NUM_ERROR_T_RH = 30008, /* 0 = OK, 1 I2C = ERROR, 2 = CRC ERROR */
+ REGISTER_NUM_ERROR_LIGHT = 30009 /* 0 = OK, 1 = I2C ERROR */
} data_registers_numbers;
enum
@@ -99,7 +100,7 @@ enum
int16_t T_SHT4x, TF_SHT4x;
uint16_t RH_SHT4x;
uint16_t light_ch0, light_ch1;
-
+uint16_t error_sht, error_ltr;
/* Struct to store the sensor config */
config_t sensor_config;
/* Device ID struct */
@@ -108,7 +109,6 @@ uint8_t sensor_config_pending_write = 0;
uint8_t baudrate_changed = 0;
uint8_t ltr329_config_changed = 0;
uint8_t modbus_address_changed = 0;
-uint8_t co2_valid = 0;
/* USER CODE END PV */
@@ -267,8 +267,6 @@ int main(void)
/* Initiualize LTR329 */
int8_t ltr_ret;
- uint8_t ltr_cont_reg_val;
- uint8_t ltr_rate_reg_val;
do
{
ltr_ret = ltr329_write_settings(LTR329_GAIN_48X, LTR329_MODE_ACTIVE, LTR329_INTEGRATION_100MS, LTR329_MEAS_RATE_100MS);
@@ -285,7 +283,7 @@ int main(void)
sensor_config.ltr329_integ_time = ltr329_int_time;
sensor_config.ltr329_meas_rate = ltr329_meas_rate;
- static uint32_t new_baud;
+ /*static uint32_t new_baud;*/
/* Enter the main loop */
while (1)
{
@@ -329,34 +327,70 @@ int main(void)
{
while (!LL_USART_IsActiveFlag_TXE(USART2));
uart_disable_interrupts();
-
- LL_USART_SetBaudRate(USART2, SYSTICK_FREQ_HZ, LL_USART_OVERSAMPLING_16, config_baudrates[sensor_config.baudrate_index]);
- uart_enable_interrupts();
+ LL_USART_SetBaudRate(USART2, SYSTICK_FREQ_HZ, LL_USART_OVERSAMPLING_16,
+ config_baudrates[sensor_config.baudrate_index]);
LL_USART_EnableDirectionRx(USART2);
LL_USART_EnableDirectionTx(USART2);
baudrate_changed = 0;
+ ltr329_config_changed = 0;
+ uart_enable_interrupts();
- new_baud = LL_USART_GetBaudRate(USART2, SYSTICK_FREQ_HZ, LL_USART_OVERSAMPLING_16);
+ /*new_baud = LL_USART_GetBaudRate(USART2, SYSTICK_FREQ_HZ, LL_USART_OVERSAMPLING_16);*/
}
if(ltr329_config_changed)
{
- ltr329_write_settings(sensor_config.ltr329_gain, sensor_config.ltr329_mode, sensor_config.ltr329_integ_time, sensor_config.ltr329_meas_rate);
+ uart_disable_interrupts();
+ ltr329_write_settings(sensor_config.ltr329_gain,
+ sensor_config.ltr329_mode,
+ sensor_config.ltr329_integ_time,
+ sensor_config.ltr329_meas_rate);
ltr329_config_changed = 0;
+ uart_enable_interrupts();
}
/* It is time for measurement */
if (tim21_elapsed_period == 1)
{
/* TODO: Check the data */
/* Read SHT4x data (always connected) */
- sht4x_measure(&T_SHT4x, &RH_SHT4x);
+ int8_t sht_read_ret = sht4x_measure(&T_SHT4x, &RH_SHT4x);
TF_SHT4x = CELSIUS_TO_FAHRENHEIT(T_SHT4x);
+ if (sht_read_ret == SHT4X_OK)
+ {
+ error_sht = 0;
+ } else
+ {
+ /* TODO: Do something */
+ if (sht_read_ret == SHT4X_ERROR)
+ {
+ error_sht = 1;
+ } else if (sht_read_ret == SHT4X_CRC8_ERROR)
+ {
+ error_sht = 2;
+ }
+ }
/* Red LTR329 values */
uint8_t data_valid, new_data;
ltr329_gain_t set_gain;
ltr_ret = ltr329_read_status_register(&data_valid, &new_data, &set_gain);
/* TODO: Do something with the flags */
- ltr_ret = ltr329_measure(&light_ch0, &light_ch1);
+ if (ltr_ret == LTR329_OK)
+ {
+ if (new_data == 1)
+ {
+ ltr_ret = ltr329_measure(&light_ch0, &light_ch1);
+ if (ltr_ret == LTR329_OK)
+ {
+ error_ltr = 0;
+ } else
+ {
+ error_ltr = 1;
+ }
+ }
+ } else
+ {
+ error_ltr = 1;
+ }
/* Reset the TIM21 Elapsed Period Flag */
tim21_elapsed_period = 0;
@@ -705,6 +739,12 @@ int8_t modbus_slave_callback(modbus_transaction_t *transaction)
case REGISTER_NUM_LIGHT_INTENSITY_1:
transaction->input_registers[i] = (uint16_t)light_ch1;
break;
+ case REGISTER_NUM_ERROR_T_RH:
+ transaction->input_registers[i] = (uint16_t)error_sht;
+ break;
+ case REGISTER_NUM_ERROR_LIGHT:
+ transaction->input_registers[i] = (uint16_t)error_ltr;
+ break;
default:
return MODBUS_ERROR_FUNCTION_NOT_IMPLEMENTED;
}
@@ -723,19 +763,15 @@ int8_t modbus_slave_callback(modbus_transaction_t *transaction)
break;
case REGISTER_NUM_LTR329_GAIN:
transaction->holding_registers[i] = (uint16_t)(sensor_config.ltr329_gain);
- /* TODO : IMPLEMENT */
break;
case REGISTER_NUM_LTR329_INTEGRATION_TIME:
transaction->holding_registers[i] = (uint16_t)(sensor_config.ltr329_integ_time);
- /* TODO : IMPLEMENT */
break;
case REGISTER_NUM_LTR329_MEAS_RATE:
transaction->holding_registers[i] = (uint16_t)(sensor_config.ltr329_meas_rate);
- /* TODO : IMPLEMENT */
break;
case REGISTER_NUM_LTR329_MODE:
transaction->holding_registers[i] = (uint16_t)(sensor_config.ltr329_mode);
- /* TODO : IMPLEMENT */
break;
default:
return MODBUS_ERROR_FUNCTION_NOT_IMPLEMENTED;
diff --git a/fw/Debug/Core/Src/config.d b/fw/Debug/Core/Src/config.d
index cad1526..3ab1ba4 100644
--- a/fw/Debug/Core/Src/config.d
+++ b/fw/Debug/Core/Src/config.d
@@ -6,7 +6,7 @@ Core/Src/config.o: ../Core/Src/config.c ../Core/Inc/config.h \
../Drivers/CMSIS/Include/cmsis_compiler.h \
../Drivers/CMSIS/Include/cmsis_gcc.h \
../Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h \
- /home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329/ltr329.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329/ltr329.h \
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_i2c.h \
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_utils.h \
../Core/Inc/i2c.h
@@ -27,7 +27,7 @@ Core/Src/config.o: ../Core/Src/config.c ../Core/Inc/config.h \
../Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h:
-/home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329/ltr329.h:
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329/ltr329.h:
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_i2c.h:
diff --git a/fw/Debug/Core/Src/config.o b/fw/Debug/Core/Src/config.o
index 15fb6a7..b257403 100644
Binary files a/fw/Debug/Core/Src/config.o and b/fw/Debug/Core/Src/config.o differ
diff --git a/fw/Debug/Core/Src/i2c.o b/fw/Debug/Core/Src/i2c.o
index 087eb2e..fa343c3 100644
Binary files a/fw/Debug/Core/Src/i2c.o and b/fw/Debug/Core/Src/i2c.o differ
diff --git a/fw/Debug/Core/Src/main.d b/fw/Debug/Core/Src/main.d
index 78d7757..507808f 100644
--- a/fw/Debug/Core/Src/main.d
+++ b/fw/Debug/Core/Src/main.d
@@ -21,10 +21,11 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_usart.h \
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_gpio.h \
../Core/Inc/i2c.h \
- /home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x/sht4x.h \
- /home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329/ltr329.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x/sht4x.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329/ltr329.h \
../Core/Inc/i2c.h \
- /home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus/modbus.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus/modbus.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8/crc8.h \
../Core/Inc/config.h
../Core/Inc/main.h:
@@ -73,12 +74,14 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
../Core/Inc/i2c.h:
-/home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x/sht4x.h:
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x/sht4x.h:
-/home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329/ltr329.h:
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329/ltr329.h:
../Core/Inc/i2c.h:
-/home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus/modbus.h:
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus/modbus.h:
+
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8/crc8.h:
../Core/Inc/config.h:
diff --git a/fw/Debug/Core/Src/main.o b/fw/Debug/Core/Src/main.o
index ba203b7..7dbcde7 100644
Binary files a/fw/Debug/Core/Src/main.o and b/fw/Debug/Core/Src/main.o differ
diff --git a/fw/Debug/Core/Src/main.su b/fw/Debug/Core/Src/main.su
index 82a0f3f..2962ce5 100644
--- a/fw/Debug/Core/Src/main.su
+++ b/fw/Debug/Core/Src/main.su
@@ -45,7 +45,6 @@ stm32l0xx_ll_usart.h:550:22:LL_USART_Disable 16 static
stm32l0xx_ll_usart.h:649:22:LL_USART_EnableDirectionRx 32 static,ignoring_inline_asm
stm32l0xx_ll_usart.h:671:22:LL_USART_EnableDirectionTx 32 static,ignoring_inline_asm
stm32l0xx_ll_usart.h:1608:22:LL_USART_SetBaudRate 32 static
-stm32l0xx_ll_usart.h:1640:26:LL_USART_GetBaudRate 32 static
stm32l0xx_ll_usart.h:2140:22:LL_USART_SetDEDeassertionTime 16 static
stm32l0xx_ll_usart.h:2167:22:LL_USART_SetDEAssertionTime 16 static
stm32l0xx_ll_usart.h:2193:22:LL_USART_EnableDEMode 16 static
@@ -68,15 +67,15 @@ main.c:164:8:ltr329_disable_interrupts 8 static
main.c:169:8:ltr329_enable_interrupts 8 static
main.c:174:6:delay_ms 16 static
main.c:184:5:main 32 static
-main.c:375:6:SystemClock_Config 8 static
-main.c:428:13:MX_I2C1_Init 72 static
-main.c:491:13:MX_IWDG_Init 8 static
-main.c:521:13:MX_TIM21_Init 24 static
-main.c:560:13:MX_USART2_UART_Init 72 static
-main.c:645:13:MX_GPIO_Init 8 static
-main.c:654:6:USART2_TX_Buffer 24 static,ignoring_inline_asm
-main.c:665:8:uart_disable_interrupts 8 static
-main.c:674:8:uart_enable_interrupts 8 static
-main.c:683:8:modbus_slave_callback 32 static
-main.c:840:8:modbus_transmit_function 16 static
-main.c:852:6:Error_Handler 8 static,ignoring_inline_asm
+main.c:409:6:SystemClock_Config 8 static
+main.c:462:13:MX_I2C1_Init 72 static
+main.c:525:13:MX_IWDG_Init 8 static
+main.c:555:13:MX_TIM21_Init 24 static
+main.c:594:13:MX_USART2_UART_Init 72 static
+main.c:679:13:MX_GPIO_Init 8 static
+main.c:688:6:USART2_TX_Buffer 24 static,ignoring_inline_asm
+main.c:699:8:uart_disable_interrupts 8 static
+main.c:708:8:uart_enable_interrupts 8 static
+main.c:717:8:modbus_slave_callback 32 static
+main.c:876:8:modbus_transmit_function 16 static
+main.c:888:6:Error_Handler 8 static,ignoring_inline_asm
diff --git a/fw/Debug/Core/Src/stm32l0xx_it.d b/fw/Debug/Core/Src/stm32l0xx_it.d
index e41573a..667cbd5 100644
--- a/fw/Debug/Core/Src/stm32l0xx_it.d
+++ b/fw/Debug/Core/Src/stm32l0xx_it.d
@@ -21,10 +21,11 @@ Core/Src/stm32l0xx_it.o: ../Core/Src/stm32l0xx_it.c ../Core/Inc/main.h \
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_usart.h \
../Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_gpio.h \
../Core/Inc/i2c.h \
- /home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x/sht4x.h \
- /home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329/ltr329.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x/sht4x.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329/ltr329.h \
../Core/Inc/i2c.h \
- /home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus/modbus.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus/modbus.h \
+ /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8/crc8.h \
../Core/Inc/config.h ../Core/Inc/stm32l0xx_it.h
../Core/Inc/main.h:
@@ -73,13 +74,15 @@ Core/Src/stm32l0xx_it.o: ../Core/Src/stm32l0xx_it.c ../Core/Inc/main.h \
../Core/Inc/i2c.h:
-/home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x/sht4x.h:
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x/sht4x.h:
-/home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329/ltr329.h:
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329/ltr329.h:
../Core/Inc/i2c.h:
-/home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus/modbus.h:
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus/modbus.h:
+
+/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8/crc8.h:
../Core/Inc/config.h:
diff --git a/fw/Debug/Core/Src/stm32l0xx_it.o b/fw/Debug/Core/Src/stm32l0xx_it.o
index 87ca590..50f9d69 100644
Binary files a/fw/Debug/Core/Src/stm32l0xx_it.o and b/fw/Debug/Core/Src/stm32l0xx_it.o differ
diff --git a/fw/Debug/Core/Src/subdir.mk b/fw/Debug/Core/Src/subdir.mk
index 4dbca5b..3ddb7ea 100644
--- a/fw/Debug/Core/Src/subdir.mk
+++ b/fw/Debug/Core/Src/subdir.mk
@@ -34,7 +34,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Core/Src/%.o: ../Core/Src/%.c Core/Src/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/crc8" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
clean: clean-Core-2f-Src
diff --git a/fw/Debug/Core/Src/syscalls.o b/fw/Debug/Core/Src/syscalls.o
index 35c51de..5f0ccd5 100644
Binary files a/fw/Debug/Core/Src/syscalls.o and b/fw/Debug/Core/Src/syscalls.o differ
diff --git a/fw/Debug/Core/Src/sysmem.o b/fw/Debug/Core/Src/sysmem.o
index 08ad8e4..8302a3e 100644
Binary files a/fw/Debug/Core/Src/sysmem.o and b/fw/Debug/Core/Src/sysmem.o differ
diff --git a/fw/Debug/Core/Src/system_stm32l0xx.o b/fw/Debug/Core/Src/system_stm32l0xx.o
index a8b0e8f..0b3a1dd 100644
Binary files a/fw/Debug/Core/Src/system_stm32l0xx.o and b/fw/Debug/Core/Src/system_stm32l0xx.o differ
diff --git a/fw/Debug/Core/Startup/startup_stm32l031g6ux.o b/fw/Debug/Core/Startup/startup_stm32l031g6ux.o
index 6346957..743527d 100644
Binary files a/fw/Debug/Core/Startup/startup_stm32l031g6ux.o and b/fw/Debug/Core/Startup/startup_stm32l031g6ux.o differ
diff --git a/fw/Debug/Core/Startup/subdir.mk b/fw/Debug/Core/Startup/subdir.mk
index 3157e5e..5f70a32 100644
--- a/fw/Debug/Core/Startup/subdir.mk
+++ b/fw/Debug/Core/Startup/subdir.mk
@@ -16,7 +16,7 @@ S_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk
- arm-none-eabi-gcc -mcpu=cortex-m0plus -g3 -DDEBUG -c -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/crc8" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x" -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" "$<"
+ arm-none-eabi-gcc -mcpu=cortex-m0plus -g3 -DDEBUG -c -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x" -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" "$<"
clean: clean-Core-2f-Startup
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o
index edee53c..a5cd319 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o
index c18abf9..c23bd40 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o
index 7a68888..a7b1b6c 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o
index e2ec0d4..776584a 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o
index c2f918b..9439806 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o
index 5d04881..3dc7edf 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.o
index 67c10da..e89301c 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_usart.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_usart.o
index 0adb160..65af6d8 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_usart.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_usart.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o
index 9de46cf..b0ae5f5 100644
Binary files a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o and b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.o differ
diff --git a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk
index c05b913..a9ce77a 100644
--- a/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk
+++ b/fw/Debug/Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk
@@ -40,7 +40,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Drivers/STM32L0xx_HAL_Driver/Src/%.o: ../Drivers/STM32L0xx_HAL_Driver/Src/%.c Drivers/STM32L0xx_HAL_Driver/Src/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/crc8" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
clean: clean-Drivers-2f-STM32L0xx_HAL_Driver-2f-Src
diff --git a/fw/Debug/Libs/crc8/crc8.o b/fw/Debug/Libs/crc8/crc8.o
index 3c85d66..772726d 100644
Binary files a/fw/Debug/Libs/crc8/crc8.o and b/fw/Debug/Libs/crc8/crc8.o differ
diff --git a/fw/Debug/Libs/crc8/subdir.mk b/fw/Debug/Libs/crc8/subdir.mk
index 9a1b009..5cc402f 100644
--- a/fw/Debug/Libs/crc8/subdir.mk
+++ b/fw/Debug/Libs/crc8/subdir.mk
@@ -16,7 +16,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Libs/crc8/%.o: ../Libs/crc8/%.c Libs/crc8/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/crc8" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
clean: clean-Libs-2f-crc8
diff --git a/fw/Debug/Libs/ltr329/ltr329.o b/fw/Debug/Libs/ltr329/ltr329.o
index ed029cd..bc35716 100644
Binary files a/fw/Debug/Libs/ltr329/ltr329.o and b/fw/Debug/Libs/ltr329/ltr329.o differ
diff --git a/fw/Debug/Libs/ltr329/ltr329.su b/fw/Debug/Libs/ltr329/ltr329.su
index 39157f3..6a79d78 100644
--- a/fw/Debug/Libs/ltr329/ltr329.su
+++ b/fw/Debug/Libs/ltr329/ltr329.su
@@ -1,8 +1,8 @@
-ltr329.c:22:15:ltr329_read_register 40 static
-ltr329.c:50:15:ltr329_write_register 32 static
-ltr329.c:68:8:ltr329_write_settings 32 static
-ltr329.c:87:8:ltr329_read_settings 48 static
-ltr329.c:120:8:ltr329_sw_reset 24 static
-ltr329.c:132:8:ltr329_measure 24 static
-ltr329.c:162:8:ltr329_read_status_register 40 static
-ltr329.c:200:8:ltr329_read_device_info 32 static
+ltr329.c:25:15:ltr329_read_register 40 static
+ltr329.c:53:15:ltr329_write_register 32 static
+ltr329.c:71:8:ltr329_write_settings 32 static
+ltr329.c:90:8:ltr329_read_settings 48 static
+ltr329.c:123:8:ltr329_sw_reset 24 static
+ltr329.c:135:8:ltr329_measure 24 static
+ltr329.c:165:8:ltr329_read_status_register 40 static
+ltr329.c:203:8:ltr329_read_device_info 32 static
diff --git a/fw/Debug/Libs/ltr329/subdir.mk b/fw/Debug/Libs/ltr329/subdir.mk
index f7ed346..ff9ecf5 100644
--- a/fw/Debug/Libs/ltr329/subdir.mk
+++ b/fw/Debug/Libs/ltr329/subdir.mk
@@ -16,7 +16,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Libs/ltr329/%.o: ../Libs/ltr329/%.c Libs/ltr329/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/crc8" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
clean: clean-Libs-2f-ltr329
diff --git a/fw/Debug/Libs/modbus/modbus.o b/fw/Debug/Libs/modbus/modbus.o
index ad4720a..1acb1fb 100644
Binary files a/fw/Debug/Libs/modbus/modbus.o and b/fw/Debug/Libs/modbus/modbus.o differ
diff --git a/fw/Debug/Libs/modbus/subdir.mk b/fw/Debug/Libs/modbus/subdir.mk
index c86d040..0823590 100644
--- a/fw/Debug/Libs/modbus/subdir.mk
+++ b/fw/Debug/Libs/modbus/subdir.mk
@@ -16,7 +16,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Libs/modbus/%.o: ../Libs/modbus/%.c Libs/modbus/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/crc8" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
clean: clean-Libs-2f-modbus
diff --git a/fw/Debug/Libs/sht4x/sht4x.o b/fw/Debug/Libs/sht4x/sht4x.o
index 6ebbaf7..83f46ed 100644
Binary files a/fw/Debug/Libs/sht4x/sht4x.o and b/fw/Debug/Libs/sht4x/sht4x.o differ
diff --git a/fw/Debug/Libs/sht4x/subdir.mk b/fw/Debug/Libs/sht4x/subdir.mk
index 930dfd3..baa0309 100644
--- a/fw/Debug/Libs/sht4x/subdir.mk
+++ b/fw/Debug/Libs/sht4x/subdir.mk
@@ -16,7 +16,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Libs/sht4x/%.o: ../Libs/sht4x/%.c Libs/sht4x/subdir.mk
- arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/crc8" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/ltr329" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/modbus" -I"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m0plus -std=gnu11 -g3 -DDEBUG -DSTM32L031xx -DUSE_FULL_LL_DRIVER -DHSE_VALUE=8000000 -DHSE_STARTUP_TIMEOUT=100 -DLSE_STARTUP_TIMEOUT=5000 -DLSE_VALUE=32768 -DMSI_VALUE=2097000 -DHSI_VALUE=16000000 -DLSI_VALUE=37000 -DVDD_VALUE=3300 -DPREFETCH_ENABLE=0 -DINSTRUCTION_CACHE_ENABLE=1 -DDATA_CACHE_ENABLE=1 -c -I../Core/Inc -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/crc8" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/ltr329" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/modbus" -I"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/Libs/sht4x" -I../Drivers/STM32L0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32L0xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
clean: clean-Libs-2f-sht4x
diff --git a/fw/Debug/makefile b/fw/Debug/makefile
index c140656..70109bf 100644
--- a/fw/Debug/makefile
+++ b/fw/Debug/makefile
@@ -64,8 +64,8 @@ all: main-build
main-build: rht_wired_sensor.elf secondary-outputs
# Tool invocations
-rht_wired_sensor.elf: $(OBJS) $(USER_OBJS) /home/david/VelesLabs/Smart\ Household/wired_sensors/RHT_Wired_Sensor/fw/STM32L031G6UX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
- arm-none-eabi-gcc -o "rht_wired_sensor.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m0plus -T"/home/david/VelesLabs/Smart Household/wired_sensors/RHT_Wired_Sensor/fw/STM32L031G6UX_FLASH.ld" --specs=nosys.specs -Wl,-Map="rht_wired_sensor.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
+rht_wired_sensor.elf: $(OBJS) $(USER_OBJS) /home/david/VelesLabs/smart_household/rht_sensor_wired/fw/STM32L031G6UX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
+ arm-none-eabi-gcc -o "rht_wired_sensor.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m0plus -T"/home/david/VelesLabs/smart_household/rht_sensor_wired/fw/STM32L031G6UX_FLASH.ld" --specs=nosys.specs -Wl,-Map="rht_wired_sensor.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
@echo 'Finished building target: $@'
@echo ' '
diff --git a/fw/Debug/rht_wired_sensor.bin b/fw/Debug/rht_wired_sensor.bin
index 72866c4..a4fc903 100755
Binary files a/fw/Debug/rht_wired_sensor.bin and b/fw/Debug/rht_wired_sensor.bin differ
diff --git a/fw/Debug/rht_wired_sensor.elf b/fw/Debug/rht_wired_sensor.elf
index ea87e0c..4ad8f51 100755
Binary files a/fw/Debug/rht_wired_sensor.elf and b/fw/Debug/rht_wired_sensor.elf differ
diff --git a/fw/Debug/rht_wired_sensor.list b/fw/Debug/rht_wired_sensor.list
index 339ca75..336044f 100644
--- a/fw/Debug/rht_wired_sensor.list
+++ b/fw/Debug/rht_wired_sensor.list
@@ -5,45 +5,45 @@ Sections:
Idx Name Size VMA LMA File off Algn
0 .isr_vector 000000c0 08000000 08000000 00010000 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 1 .text 00003e98 080000c0 080000c0 000100c0 2**2
+ 1 .text 00003ec8 080000c0 080000c0 000100c0 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 00000138 08003f58 08003f58 00013f58 2**2
+ 2 .rodata 00000140 08003f88 08003f88 00013f88 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 3 .ARM.extab 00000000 08004090 08004090 00020008 2**0
+ 3 .ARM.extab 00000000 080040c8 080040c8 00020008 2**0
CONTENTS
- 4 .ARM 00000000 08004090 08004090 00020008 2**0
+ 4 .ARM 00000000 080040c8 080040c8 00020008 2**0
CONTENTS
- 5 .preinit_array 00000000 08004090 08004090 00020008 2**0
+ 5 .preinit_array 00000000 080040c8 080040c8 00020008 2**0
CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 08004090 08004090 00014090 2**2
+ 6 .init_array 00000004 080040c8 080040c8 000140c8 2**2
CONTENTS, ALLOC, LOAD, DATA
- 7 .fini_array 00000004 08004094 08004094 00014094 2**2
+ 7 .fini_array 00000004 080040cc 080040cc 000140cc 2**2
CONTENTS, ALLOC, LOAD, DATA
- 8 .data 00000008 20000000 08004098 00020000 2**2
+ 8 .data 00000008 20000000 080040d0 00020000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 9 .bss 00000174 20000008 080040a0 00020008 2**2
+ 9 .bss 00000170 20000008 080040d8 00020008 2**2
ALLOC
- 10 ._user_heap_stack 00000604 2000017c 080040a0 0002017c 2**0
+ 10 ._user_heap_stack 00000600 20000178 080040d8 00020178 2**0
ALLOC
11 .ARM.attributes 00000028 00000000 00000000 00020008 2**0
CONTENTS, READONLY
- 12 .debug_info 0000963d 00000000 00000000 00020030 2**0
+ 12 .debug_info 000095c6 00000000 00000000 00020030 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 13 .debug_abbrev 00001d62 00000000 00000000 0002966d 2**0
+ 13 .debug_abbrev 00001d2e 00000000 00000000 000295f6 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_aranges 000009d8 00000000 00000000 0002b3d0 2**3
+ 14 .debug_aranges 000009d0 00000000 00000000 0002b328 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_ranges 000008e0 00000000 00000000 0002bda8 2**3
+ 15 .debug_ranges 000008d8 00000000 00000000 0002bcf8 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .debug_macro 0000d7a8 00000000 00000000 0002c688 2**0
+ 16 .debug_macro 0000d77c 00000000 00000000 0002c5d0 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 17 .debug_line 000079e5 00000000 00000000 00039e30 2**0
+ 17 .debug_line 00007a1b 00000000 00000000 00039d4c 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 18 .debug_str 00044d45 00000000 00000000 00041815 2**0
+ 18 .debug_str 00044ccb 00000000 00000000 00041767 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 19 .comment 00000053 00000000 00000000 0008655a 2**0
+ 19 .comment 00000053 00000000 00000000 00086432 2**0
CONTENTS, READONLY
- 20 .debug_frame 00002214 00000000 00000000 000865b0 2**2
+ 20 .debug_frame 000021f4 00000000 00000000 00086488 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
Disassembly of section .text:
@@ -65,7 +65,7 @@ Disassembly of section .text:
80000da: bd10 pop {r4, pc}
80000dc: 20000008 .word 0x20000008
80000e0: 00000000 .word 0x00000000
- 80000e4: 08003f40 .word 0x08003f40
+ 80000e4: 08003f70 .word 0x08003f70
080000e8 :
80000e8: 4b04 ldr r3, [pc, #16] ; (80000fc )
@@ -80,7 +80,7 @@ Disassembly of section .text:
80000fa: 46c0 nop ; (mov r8, r8)
80000fc: 00000000 .word 0x00000000
8000100: 2000000c .word 0x2000000c
- 8000104: 08003f40 .word 0x08003f40
+ 8000104: 08003f70 .word 0x08003f70
08000108 :
8000108: 2300 movs r3, #0
@@ -519,8 +519,8 @@ int8_t config_read(config_t *config)
8000432: b002 add sp, #8
8000434: bd80 pop {r7, pc}
8000436: 46c0 nop ; (mov r8, r8)
- 8000438: 08080000 .word 0x08080000
- 800043c: 08080002 .word 0x08080002
+ 8000438: 08080004 .word 0x08080004
+ 800043c: 08080006 .word 0x08080006
08000440 :
@@ -605,8 +605,8 @@ int8_t config_write(config_t *config)
80004aa: bd80 pop {r7, pc}
80004ac: 40022000 .word 0x40022000
80004b0: fffffdef .word 0xfffffdef
- 80004b4: 08080000 .word 0x08080000
- 80004b8: 08080002 .word 0x08080002
+ 80004b4: 08080004 .word 0x08080004
+ 80004b8: 08080006 .word 0x08080006
080004bc :
@@ -2790,284 +2790,278 @@ __STATIC_INLINE void LL_USART_SetBaudRate(USART_TypeDef *USARTx, uint32_t Periph
800107e: bd80 pop {r7, pc}
8001080: 0000fff0 .word 0x0000fff0
-08001084 :
- * @arg @ref LL_USART_OVERSAMPLING_16
- * @arg @ref LL_USART_OVERSAMPLING_8
- * @retval Baud Rate
- */
-__STATIC_INLINE uint32_t LL_USART_GetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling)
-{
- 8001084: b580 push {r7, lr}
- 8001086: b086 sub sp, #24
- 8001088: af00 add r7, sp, #0
- 800108a: 60f8 str r0, [r7, #12]
- 800108c: 60b9 str r1, [r7, #8]
- 800108e: 607a str r2, [r7, #4]
- uint32_t usartdiv;
- uint32_t brrresult = 0x0U;
- 8001090: 2300 movs r3, #0
- 8001092: 617b str r3, [r7, #20]
-
- usartdiv = USARTx->BRR;
- 8001094: 68fb ldr r3, [r7, #12]
- 8001096: 68db ldr r3, [r3, #12]
- 8001098: 613b str r3, [r7, #16]
-
- if (usartdiv == 0U)
- 800109a: 693b ldr r3, [r7, #16]
- 800109c: 2b00 cmp r3, #0
- 800109e: d029 beq.n 80010f4
- {
- /* Do not perform a division by 0 */
- }
- else if (OverSampling == LL_USART_OVERSAMPLING_8)
- 80010a0: 687a ldr r2, [r7, #4]
- 80010a2: 2380 movs r3, #128 ; 0x80
- 80010a4: 021b lsls r3, r3, #8
- 80010a6: 429a cmp r2, r3
- 80010a8: d11a bne.n 80010e0
- {
- usartdiv = (uint16_t)((usartdiv & 0xFFF0U) | ((usartdiv & 0x0007U) << 1U)) ;
- 80010aa: 693b ldr r3, [r7, #16]
- 80010ac: b29b uxth r3, r3
- 80010ae: 220f movs r2, #15
- 80010b0: 4393 bics r3, r2
- 80010b2: b29a uxth r2, r3
- 80010b4: 693b ldr r3, [r7, #16]
- 80010b6: b29b uxth r3, r3
- 80010b8: 18db adds r3, r3, r3
- 80010ba: b29b uxth r3, r3
- 80010bc: 210e movs r1, #14
- 80010be: 400b ands r3, r1
- 80010c0: b29b uxth r3, r3
- 80010c2: 4313 orrs r3, r2
- 80010c4: b29b uxth r3, r3
- 80010c6: 613b str r3, [r7, #16]
- if (usartdiv != 0U)
- 80010c8: 693b ldr r3, [r7, #16]
- 80010ca: 2b00 cmp r3, #0
- 80010cc: d012 beq.n 80010f4
- {
- brrresult = (PeriphClk * 2U) / usartdiv;
- 80010ce: 68bb ldr r3, [r7, #8]
- 80010d0: 005b lsls r3, r3, #1
- 80010d2: 6939 ldr r1, [r7, #16]
- 80010d4: 0018 movs r0, r3
- 80010d6: f7ff f81f bl 8000118 <__udivsi3>
- 80010da: 0003 movs r3, r0
- 80010dc: 617b str r3, [r7, #20]
- 80010de: e009 b.n 80010f4
- }
- }
- else
- {
- if ((usartdiv & 0xFFFFU) != 0U)
- 80010e0: 693b ldr r3, [r7, #16]
- 80010e2: 041b lsls r3, r3, #16
- 80010e4: 0c1b lsrs r3, r3, #16
- 80010e6: d005 beq.n 80010f4
- {
- brrresult = PeriphClk / usartdiv;
- 80010e8: 6939 ldr r1, [r7, #16]
- 80010ea: 68b8 ldr r0, [r7, #8]
- 80010ec: f7ff f814 bl 8000118 <__udivsi3>
- 80010f0: 0003 movs r3, r0
- 80010f2: 617b str r3, [r7, #20]
- }
- }
- return (brrresult);
- 80010f4: 697b ldr r3, [r7, #20]
-}
- 80010f6: 0018 movs r0, r3
- 80010f8: 46bd mov sp, r7
- 80010fa: b006 add sp, #24
- 80010fc: bd80 pop {r7, pc}
- ...
-
-08001100 :
+08001084 :
* @param USARTx USART Instance
* @param Time Value between Min_Data=0 and Max_Data=31
* @retval None
*/
__STATIC_INLINE void LL_USART_SetDEDeassertionTime(USART_TypeDef *USARTx, uint32_t Time)
{
- 8001100: b580 push {r7, lr}
- 8001102: b082 sub sp, #8
- 8001104: af00 add r7, sp, #0
- 8001106: 6078 str r0, [r7, #4]
- 8001108: 6039 str r1, [r7, #0]
+ 8001084: b580 push {r7, lr}
+ 8001086: b082 sub sp, #8
+ 8001088: af00 add r7, sp, #0
+ 800108a: 6078 str r0, [r7, #4]
+ 800108c: 6039 str r1, [r7, #0]
MODIFY_REG(USARTx->CR1, USART_CR1_DEDT, Time << USART_CR1_DEDT_Pos);
- 800110a: 687b ldr r3, [r7, #4]
- 800110c: 681b ldr r3, [r3, #0]
- 800110e: 4a05 ldr r2, [pc, #20] ; (8001124 )
- 8001110: 401a ands r2, r3
- 8001112: 683b ldr r3, [r7, #0]
- 8001114: 041b lsls r3, r3, #16
- 8001116: 431a orrs r2, r3
- 8001118: 687b ldr r3, [r7, #4]
- 800111a: 601a str r2, [r3, #0]
+ 800108e: 687b ldr r3, [r7, #4]
+ 8001090: 681b ldr r3, [r3, #0]
+ 8001092: 4a05 ldr r2, [pc, #20] ; (80010a8 )
+ 8001094: 401a ands r2, r3
+ 8001096: 683b ldr r3, [r7, #0]
+ 8001098: 041b lsls r3, r3, #16
+ 800109a: 431a orrs r2, r3
+ 800109c: 687b ldr r3, [r7, #4]
+ 800109e: 601a str r2, [r3, #0]
}
- 800111c: 46c0 nop ; (mov r8, r8)
- 800111e: 46bd mov sp, r7
- 8001120: b002 add sp, #8
- 8001122: bd80 pop {r7, pc}
- 8001124: ffe0ffff .word 0xffe0ffff
+ 80010a0: 46c0 nop ; (mov r8, r8)
+ 80010a2: 46bd mov sp, r7
+ 80010a4: b002 add sp, #8
+ 80010a6: bd80 pop {r7, pc}
+ 80010a8: ffe0ffff .word 0xffe0ffff
-08001128 :
+080010ac :
* @param USARTx USART Instance
* @param Time Value between Min_Data=0 and Max_Data=31
* @retval None
*/
__STATIC_INLINE void LL_USART_SetDEAssertionTime(USART_TypeDef *USARTx, uint32_t Time)
{
- 8001128: b580 push {r7, lr}
- 800112a: b082 sub sp, #8
- 800112c: af00 add r7, sp, #0
- 800112e: 6078 str r0, [r7, #4]
- 8001130: 6039 str r1, [r7, #0]
+ 80010ac: b580 push {r7, lr}
+ 80010ae: b082 sub sp, #8
+ 80010b0: af00 add r7, sp, #0
+ 80010b2: 6078 str r0, [r7, #4]
+ 80010b4: 6039 str r1, [r7, #0]
MODIFY_REG(USARTx->CR1, USART_CR1_DEAT, Time << USART_CR1_DEAT_Pos);
- 8001132: 687b ldr r3, [r7, #4]
- 8001134: 681b ldr r3, [r3, #0]
- 8001136: 4a05 ldr r2, [pc, #20] ; (800114c )
- 8001138: 401a ands r2, r3
- 800113a: 683b ldr r3, [r7, #0]
- 800113c: 055b lsls r3, r3, #21
- 800113e: 431a orrs r2, r3
- 8001140: 687b ldr r3, [r7, #4]
- 8001142: 601a str r2, [r3, #0]
+ 80010b6: 687b ldr r3, [r7, #4]
+ 80010b8: 681b ldr r3, [r3, #0]
+ 80010ba: 4a05 ldr r2, [pc, #20] ; (80010d0 )
+ 80010bc: 401a ands r2, r3
+ 80010be: 683b ldr r3, [r7, #0]
+ 80010c0: 055b lsls r3, r3, #21
+ 80010c2: 431a orrs r2, r3
+ 80010c4: 687b ldr r3, [r7, #4]
+ 80010c6: 601a str r2, [r3, #0]
}
- 8001144: 46c0 nop ; (mov r8, r8)
- 8001146: 46bd mov sp, r7
- 8001148: b002 add sp, #8
- 800114a: bd80 pop {r7, pc}
- 800114c: fc1fffff .word 0xfc1fffff
+ 80010c8: 46c0 nop ; (mov r8, r8)
+ 80010ca: 46bd mov sp, r7
+ 80010cc: b002 add sp, #8
+ 80010ce: bd80 pop {r7, pc}
+ 80010d0: fc1fffff .word 0xfc1fffff
-08001150 :
+080010d4 :
* @rmtoll CR3 DEM LL_USART_EnableDEMode
* @param USARTx USART Instance
* @retval None
*/
__STATIC_INLINE void LL_USART_EnableDEMode(USART_TypeDef *USARTx)
{
- 8001150: b580 push {r7, lr}
- 8001152: b082 sub sp, #8
- 8001154: af00 add r7, sp, #0
- 8001156: 6078 str r0, [r7, #4]
+ 80010d4: b580 push {r7, lr}
+ 80010d6: b082 sub sp, #8
+ 80010d8: af00 add r7, sp, #0
+ 80010da: 6078 str r0, [r7, #4]
SET_BIT(USARTx->CR3, USART_CR3_DEM);
- 8001158: 687b ldr r3, [r7, #4]
- 800115a: 689b ldr r3, [r3, #8]
- 800115c: 2280 movs r2, #128 ; 0x80
- 800115e: 01d2 lsls r2, r2, #7
- 8001160: 431a orrs r2, r3
- 8001162: 687b ldr r3, [r7, #4]
- 8001164: 609a str r2, [r3, #8]
+ 80010dc: 687b ldr r3, [r7, #4]
+ 80010de: 689b ldr r3, [r3, #8]
+ 80010e0: 2280 movs r2, #128 ; 0x80
+ 80010e2: 01d2 lsls r2, r2, #7
+ 80010e4: 431a orrs r2, r3
+ 80010e6: 687b ldr r3, [r7, #4]
+ 80010e8: 609a str r2, [r3, #8]
}
- 8001166: 46c0 nop ; (mov r8, r8)
- 8001168: 46bd mov sp, r7
- 800116a: b002 add sp, #8
- 800116c: bd80 pop {r7, pc}
+ 80010ea: 46c0 nop ; (mov r8, r8)
+ 80010ec: 46bd mov sp, r7
+ 80010ee: b002 add sp, #8
+ 80010f0: bd80 pop {r7, pc}
...
-08001170 :
+080010f4 :
* @arg @ref LL_USART_DE_POLARITY_HIGH
* @arg @ref LL_USART_DE_POLARITY_LOW
* @retval None
*/
__STATIC_INLINE void LL_USART_SetDESignalPolarity(USART_TypeDef *USARTx, uint32_t Polarity)
{
- 8001170: b580 push {r7, lr}
- 8001172: b082 sub sp, #8
- 8001174: af00 add r7, sp, #0
- 8001176: 6078 str r0, [r7, #4]
- 8001178: 6039 str r1, [r7, #0]
+ 80010f4: b580 push {r7, lr}
+ 80010f6: b082 sub sp, #8
+ 80010f8: af00 add r7, sp, #0
+ 80010fa: 6078 str r0, [r7, #4]
+ 80010fc: 6039 str r1, [r7, #0]
MODIFY_REG(USARTx->CR3, USART_CR3_DEP, Polarity);
- 800117a: 687b ldr r3, [r7, #4]
- 800117c: 689b ldr r3, [r3, #8]
- 800117e: 4a05 ldr r2, [pc, #20] ; (8001194 )
- 8001180: 401a ands r2, r3
- 8001182: 683b ldr r3, [r7, #0]
- 8001184: 431a orrs r2, r3
- 8001186: 687b ldr r3, [r7, #4]
- 8001188: 609a str r2, [r3, #8]
+ 80010fe: 687b ldr r3, [r7, #4]
+ 8001100: 689b ldr r3, [r3, #8]
+ 8001102: 4a05 ldr r2, [pc, #20] ; (8001118 )
+ 8001104: 401a ands r2, r3
+ 8001106: 683b ldr r3, [r7, #0]
+ 8001108: 431a orrs r2, r3
+ 800110a: 687b ldr r3, [r7, #4]
+ 800110c: 609a str r2, [r3, #8]
}
- 800118a: 46c0 nop ; (mov r8, r8)
- 800118c: 46bd mov sp, r7
- 800118e: b002 add sp, #8
- 8001190: bd80 pop {r7, pc}
- 8001192: 46c0 nop ; (mov r8, r8)
- 8001194: ffff7fff .word 0xffff7fff
+ 800110e: 46c0 nop ; (mov r8, r8)
+ 8001110: 46bd mov sp, r7
+ 8001112: b002 add sp, #8
+ 8001114: bd80 pop {r7, pc}
+ 8001116: 46c0 nop ; (mov r8, r8)
+ 8001118: ffff7fff .word 0xffff7fff
-08001198 :
+0800111c :
* CR3 HDSEL LL_USART_ConfigAsyncMode
* @param USARTx USART Instance
* @retval None
*/
__STATIC_INLINE void LL_USART_ConfigAsyncMode(USART_TypeDef *USARTx)
{
- 8001198: b580 push {r7, lr}
- 800119a: b082 sub sp, #8
- 800119c: af00 add r7, sp, #0
- 800119e: 6078 str r0, [r7, #4]
+ 800111c: b580 push {r7, lr}
+ 800111e: b082 sub sp, #8
+ 8001120: af00 add r7, sp, #0
+ 8001122: 6078 str r0, [r7, #4]
/* In Asynchronous mode, the following bits must be kept cleared:
- LINEN, CLKEN bits in the USART_CR2 register,
- SCEN, IREN and HDSEL bits in the USART_CR3 register.
*/
CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
- 80011a0: 687b ldr r3, [r7, #4]
- 80011a2: 685b ldr r3, [r3, #4]
- 80011a4: 4a07 ldr r2, [pc, #28] ; (80011c4 )
- 80011a6: 401a ands r2, r3
- 80011a8: 687b ldr r3, [r7, #4]
- 80011aa: 605a str r2, [r3, #4]
+ 8001124: 687b ldr r3, [r7, #4]
+ 8001126: 685b ldr r3, [r3, #4]
+ 8001128: 4a07 ldr r2, [pc, #28] ; (8001148 )
+ 800112a: 401a ands r2, r3
+ 800112c: 687b ldr r3, [r7, #4]
+ 800112e: 605a str r2, [r3, #4]
CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN | USART_CR3_HDSEL));
- 80011ac: 687b ldr r3, [r7, #4]
- 80011ae: 689b ldr r3, [r3, #8]
- 80011b0: 222a movs r2, #42 ; 0x2a
- 80011b2: 4393 bics r3, r2
- 80011b4: 001a movs r2, r3
- 80011b6: 687b ldr r3, [r7, #4]
- 80011b8: 609a str r2, [r3, #8]
+ 8001130: 687b ldr r3, [r7, #4]
+ 8001132: 689b ldr r3, [r3, #8]
+ 8001134: 222a movs r2, #42 ; 0x2a
+ 8001136: 4393 bics r3, r2
+ 8001138: 001a movs r2, r3
+ 800113a: 687b ldr r3, [r7, #4]
+ 800113c: 609a str r2, [r3, #8]
}
- 80011ba: 46c0 nop ; (mov r8, r8)
- 80011bc: 46bd mov sp, r7
- 80011be: b002 add sp, #8
- 80011c0: bd80 pop {r7, pc}
- 80011c2: 46c0 nop ; (mov r8, r8)
- 80011c4: ffffb7ff .word 0xffffb7ff
+ 800113e: 46c0 nop ; (mov r8, r8)
+ 8001140: 46bd mov sp, r7
+ 8001142: b002 add sp, #8
+ 8001144: bd80 pop {r7, pc}
+ 8001146: 46c0 nop ; (mov r8, r8)
+ 8001148: ffffb7ff .word 0xffffb7ff
-080011c8 :
+0800114c :
* @rmtoll ISR TXE LL_USART_IsActiveFlag_TXE
* @param USARTx USART Instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXE(USART_TypeDef *USARTx)
{
- 80011c8: b580 push {r7, lr}
- 80011ca: b082 sub sp, #8
- 80011cc: af00 add r7, sp, #0
- 80011ce: 6078 str r0, [r7, #4]
+ 800114c: b580 push {r7, lr}
+ 800114e: b082 sub sp, #8
+ 8001150: af00 add r7, sp, #0
+ 8001152: 6078 str r0, [r7, #4]
return ((READ_BIT(USARTx->ISR, USART_ISR_TXE) == (USART_ISR_TXE)) ? 1UL : 0UL);
- 80011d0: 687b ldr r3, [r7, #4]
- 80011d2: 69db ldr r3, [r3, #28]
- 80011d4: 2280 movs r2, #128 ; 0x80
- 80011d6: 4013 ands r3, r2
- 80011d8: 2b80 cmp r3, #128 ; 0x80
- 80011da: d101 bne.n 80011e0
- 80011dc: 2301 movs r3, #1
- 80011de: e000 b.n 80011e2
- 80011e0: 2300 movs r3, #0
+ 8001154: 687b ldr r3, [r7, #4]
+ 8001156: 69db ldr r3, [r3, #28]
+ 8001158: 2280 movs r2, #128 ; 0x80
+ 800115a: 4013 ands r3, r2
+ 800115c: 2b80 cmp r3, #128 ; 0x80
+ 800115e: d101 bne.n 8001164
+ 8001160: 2301 movs r3, #1
+ 8001162: e000 b.n 8001166
+ 8001164: 2300 movs r3, #0
}
- 80011e2: 0018 movs r0, r3
- 80011e4: 46bd mov sp, r7
- 80011e6: b002 add sp, #8
- 80011e8: bd80 pop {r7, pc}
+ 8001166: 0018 movs r0, r3
+ 8001168: 46bd mov sp, r7
+ 800116a: b002 add sp, #8
+ 800116c: bd80 pop {r7, pc}
-080011ea :
+0800116e :
* @rmtoll CR1 IDLEIE LL_USART_EnableIT_IDLE
* @param USARTx USART Instance
* @retval None
*/
__STATIC_INLINE void LL_USART_EnableIT_IDLE(USART_TypeDef *USARTx)
+{
+ 800116e: b580 push {r7, lr}
+ 8001170: b086 sub sp, #24
+ 8001172: af00 add r7, sp, #0
+ 8001174: 6078 str r0, [r7, #4]
+ __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8001176: f3ef 8310 mrs r3, PRIMASK
+ 800117a: 60bb str r3, [r7, #8]
+ return(result);
+ 800117c: 68bb ldr r3, [r7, #8]
+ ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_IDLEIE);
+ 800117e: 617b str r3, [r7, #20]
+ 8001180: 2301 movs r3, #1
+ 8001182: 60fb str r3, [r7, #12]
+ __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8001184: 68fb ldr r3, [r7, #12]
+ 8001186: f383 8810 msr PRIMASK, r3
+}
+ 800118a: 46c0 nop ; (mov r8, r8)
+ 800118c: 687b ldr r3, [r7, #4]
+ 800118e: 681b ldr r3, [r3, #0]
+ 8001190: 2210 movs r2, #16
+ 8001192: 431a orrs r2, r3
+ 8001194: 687b ldr r3, [r7, #4]
+ 8001196: 601a str r2, [r3, #0]
+ 8001198: 697b ldr r3, [r7, #20]
+ 800119a: 613b str r3, [r7, #16]
+ __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 800119c: 693b ldr r3, [r7, #16]
+ 800119e: f383 8810 msr PRIMASK, r3
+}
+ 80011a2: 46c0 nop ; (mov r8, r8)
+}
+ 80011a4: 46c0 nop ; (mov r8, r8)
+ 80011a6: 46bd mov sp, r7
+ 80011a8: b006 add sp, #24
+ 80011aa: bd80 pop {r7, pc}
+
+080011ac :
+ * @rmtoll CR1 RXNEIE LL_USART_EnableIT_RXNE
+ * @param USARTx USART Instance
+ * @retval None
+ */
+__STATIC_INLINE void LL_USART_EnableIT_RXNE(USART_TypeDef *USARTx)
+{
+ 80011ac: b580 push {r7, lr}
+ 80011ae: b086 sub sp, #24
+ 80011b0: af00 add r7, sp, #0
+ 80011b2: 6078 str r0, [r7, #4]
+ __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 80011b4: f3ef 8310 mrs r3, PRIMASK
+ 80011b8: 60bb str r3, [r7, #8]
+ return(result);
+ 80011ba: 68bb ldr r3, [r7, #8]
+ ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_RXNEIE);
+ 80011bc: 617b str r3, [r7, #20]
+ 80011be: 2301 movs r3, #1
+ 80011c0: 60fb str r3, [r7, #12]
+ __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 80011c2: 68fb ldr r3, [r7, #12]
+ 80011c4: f383 8810 msr PRIMASK, r3
+}
+ 80011c8: 46c0 nop ; (mov r8, r8)
+ 80011ca: 687b ldr r3, [r7, #4]
+ 80011cc: 681b ldr r3, [r3, #0]
+ 80011ce: 2220 movs r2, #32
+ 80011d0: 431a orrs r2, r3
+ 80011d2: 687b ldr r3, [r7, #4]
+ 80011d4: 601a str r2, [r3, #0]
+ 80011d6: 697b ldr r3, [r7, #20]
+ 80011d8: 613b str r3, [r7, #16]
+ __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 80011da: 693b ldr r3, [r7, #16]
+ 80011dc: f383 8810 msr PRIMASK, r3
+}
+ 80011e0: 46c0 nop ; (mov r8, r8)
+}
+ 80011e2: 46c0 nop ; (mov r8, r8)
+ 80011e4: 46bd mov sp, r7
+ 80011e6: b006 add sp, #24
+ 80011e8: bd80 pop {r7, pc}
+
+080011ea :
+ * @rmtoll CR1 IDLEIE LL_USART_DisableIT_IDLE
+ * @param USARTx USART Instance
+ * @retval None
+ */
+__STATIC_INLINE void LL_USART_DisableIT_IDLE(USART_TypeDef *USARTx)
{
80011ea: b580 push {r7, lr}
80011ec: b086 sub sp, #24
@@ -3078,7 +3072,7 @@ __STATIC_INLINE void LL_USART_EnableIT_IDLE(USART_TypeDef *USARTx)
80011f6: 60bb str r3, [r7, #8]
return(result);
80011f8: 68bb ldr r3, [r7, #8]
- ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_IDLEIE);
+ ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_IDLEIE);
80011fa: 617b str r3, [r7, #20]
80011fc: 2301 movs r3, #1
80011fe: 60fb str r3, [r7, #12]
@@ -3090,3589 +3084,3593 @@ __STATIC_INLINE void LL_USART_EnableIT_IDLE(USART_TypeDef *USARTx)
8001208: 687b ldr r3, [r7, #4]
800120a: 681b ldr r3, [r3, #0]
800120c: 2210 movs r2, #16
- 800120e: 431a orrs r2, r3
- 8001210: 687b ldr r3, [r7, #4]
- 8001212: 601a str r2, [r3, #0]
- 8001214: 697b ldr r3, [r7, #20]
- 8001216: 613b str r3, [r7, #16]
+ 800120e: 4393 bics r3, r2
+ 8001210: 001a movs r2, r3
+ 8001212: 687b ldr r3, [r7, #4]
+ 8001214: 601a str r2, [r3, #0]
+ 8001216: 697b ldr r3, [r7, #20]
+ 8001218: 613b str r3, [r7, #16]
__ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
- 8001218: 693b ldr r3, [r7, #16]
- 800121a: f383 8810 msr PRIMASK, r3
-}
- 800121e: 46c0 nop ; (mov r8, r8)
+ 800121a: 693b ldr r3, [r7, #16]
+ 800121c: f383 8810 msr PRIMASK, r3
}
8001220: 46c0 nop ; (mov r8, r8)
- 8001222: 46bd mov sp, r7
- 8001224: b006 add sp, #24
- 8001226: bd80 pop {r7, pc}
+}
+ 8001222: 46c0 nop ; (mov r8, r8)
+ 8001224: 46bd mov sp, r7
+ 8001226: b006 add sp, #24
+ 8001228: bd80 pop {r7, pc}
-08001228 :
- * @rmtoll CR1 RXNEIE LL_USART_EnableIT_RXNE
- * @param USARTx USART Instance
- * @retval None
- */
-__STATIC_INLINE void LL_USART_EnableIT_RXNE(USART_TypeDef *USARTx)
-{
- 8001228: b580 push {r7, lr}
- 800122a: b086 sub sp, #24
- 800122c: af00 add r7, sp, #0
- 800122e: 6078 str r0, [r7, #4]
- __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
- 8001230: f3ef 8310 mrs r3, PRIMASK
- 8001234: 60bb str r3, [r7, #8]
- return(result);
- 8001236: 68bb ldr r3, [r7, #8]
- ATOMIC_SET_BIT(USARTx->CR1, USART_CR1_RXNEIE);
- 8001238: 617b str r3, [r7, #20]
- 800123a: 2301 movs r3, #1
- 800123c: 60fb str r3, [r7, #12]
- __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
- 800123e: 68fb ldr r3, [r7, #12]
- 8001240: f383 8810 msr PRIMASK, r3
-}
- 8001244: 46c0 nop ; (mov r8, r8)
- 8001246: 687b ldr r3, [r7, #4]
- 8001248: 681b ldr r3, [r3, #0]
- 800124a: 2220 movs r2, #32
- 800124c: 431a orrs r2, r3
- 800124e: 687b ldr r3, [r7, #4]
- 8001250: 601a str r2, [r3, #0]
- 8001252: 697b ldr r3, [r7, #20]
- 8001254: 613b str r3, [r7, #16]
- __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
- 8001256: 693b ldr r3, [r7, #16]
- 8001258: f383 8810 msr PRIMASK, r3
-}
- 800125c: 46c0 nop ; (mov r8, r8)
-}
- 800125e: 46c0 nop ; (mov r8, r8)
- 8001260: 46bd mov sp, r7
- 8001262: b006 add sp, #24
- 8001264: bd80 pop {r7, pc}
-
-08001266 :
- * @rmtoll CR1 IDLEIE LL_USART_DisableIT_IDLE
- * @param USARTx USART Instance
- * @retval None
- */
-__STATIC_INLINE void LL_USART_DisableIT_IDLE(USART_TypeDef *USARTx)
-{
- 8001266: b580 push {r7, lr}
- 8001268: b086 sub sp, #24
- 800126a: af00 add r7, sp, #0
- 800126c: 6078 str r0, [r7, #4]
- __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
- 800126e: f3ef 8310 mrs r3, PRIMASK
- 8001272: 60bb str r3, [r7, #8]
- return(result);
- 8001274: 68bb ldr r3, [r7, #8]
- ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_IDLEIE);
- 8001276: 617b str r3, [r7, #20]
- 8001278: 2301 movs r3, #1
- 800127a: 60fb str r3, [r7, #12]
- __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
- 800127c: 68fb ldr r3, [r7, #12]
- 800127e: f383 8810 msr PRIMASK, r3
-}
- 8001282: 46c0 nop ; (mov r8, r8)
- 8001284: 687b ldr r3, [r7, #4]
- 8001286: 681b ldr r3, [r3, #0]
- 8001288: 2210 movs r2, #16
- 800128a: 4393 bics r3, r2
- 800128c: 001a movs r2, r3
- 800128e: 687b ldr r3, [r7, #4]
- 8001290: 601a str r2, [r3, #0]
- 8001292: 697b ldr r3, [r7, #20]
- 8001294: 613b str r3, [r7, #16]
- __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
- 8001296: 693b ldr r3, [r7, #16]
- 8001298: f383 8810 msr PRIMASK, r3
-}
- 800129c: 46c0 nop ; (mov r8, r8)
-}
- 800129e: 46c0 nop ; (mov r8, r8)
- 80012a0: 46bd mov sp, r7
- 80012a2: b006 add sp, #24
- 80012a4: bd80 pop {r7, pc}
-
-080012a6 :
+0800122a :
* @rmtoll CR1 RXNEIE LL_USART_DisableIT_RXNE
* @param USARTx USART Instance
* @retval None
*/
__STATIC_INLINE void LL_USART_DisableIT_RXNE(USART_TypeDef *USARTx)
{
- 80012a6: b580 push {r7, lr}
- 80012a8: b086 sub sp, #24
- 80012aa: af00 add r7, sp, #0
- 80012ac: 6078 str r0, [r7, #4]
+ 800122a: b580 push {r7, lr}
+ 800122c: b086 sub sp, #24
+ 800122e: af00 add r7, sp, #0
+ 8001230: 6078 str r0, [r7, #4]
__ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
- 80012ae: f3ef 8310 mrs r3, PRIMASK
- 80012b2: 60bb str r3, [r7, #8]
+ 8001232: f3ef 8310 mrs r3, PRIMASK
+ 8001236: 60bb str r3, [r7, #8]
return(result);
- 80012b4: 68bb ldr r3, [r7, #8]
+ 8001238: 68bb ldr r3, [r7, #8]
ATOMIC_CLEAR_BIT(USARTx->CR1, USART_CR1_RXNEIE);
- 80012b6: 617b str r3, [r7, #20]
- 80012b8: 2301 movs r3, #1
- 80012ba: 60fb str r3, [r7, #12]
+ 800123a: 617b str r3, [r7, #20]
+ 800123c: 2301 movs r3, #1
+ 800123e: 60fb str r3, [r7, #12]
__ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
- 80012bc: 68fb ldr r3, [r7, #12]
- 80012be: f383 8810 msr PRIMASK, r3
+ 8001240: 68fb ldr r3, [r7, #12]
+ 8001242: f383 8810 msr PRIMASK, r3
}
- 80012c2: 46c0 nop ; (mov r8, r8)
- 80012c4: 687b ldr r3, [r7, #4]
- 80012c6: 681b ldr r3, [r3, #0]
- 80012c8: 2220 movs r2, #32
- 80012ca: 4393 bics r3, r2
- 80012cc: 001a movs r2, r3
- 80012ce: 687b ldr r3, [r7, #4]
- 80012d0: 601a str r2, [r3, #0]
- 80012d2: 697b ldr r3, [r7, #20]
- 80012d4: 613b str r3, [r7, #16]
+ 8001246: 46c0 nop ; (mov r8, r8)
+ 8001248: 687b ldr r3, [r7, #4]
+ 800124a: 681b ldr r3, [r3, #0]
+ 800124c: 2220 movs r2, #32
+ 800124e: 4393 bics r3, r2
+ 8001250: 001a movs r2, r3
+ 8001252: 687b ldr r3, [r7, #4]
+ 8001254: 601a str r2, [r3, #0]
+ 8001256: 697b ldr r3, [r7, #20]
+ 8001258: 613b str r3, [r7, #16]
__ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
- 80012d6: 693b ldr r3, [r7, #16]
- 80012d8: f383 8810 msr PRIMASK, r3
+ 800125a: 693b ldr r3, [r7, #16]
+ 800125c: f383 8810 msr PRIMASK, r3
}
- 80012dc: 46c0 nop ; (mov r8, r8)
+ 8001260: 46c0 nop ; (mov r8, r8)
}
- 80012de: 46c0 nop ; (mov r8, r8)
- 80012e0: 46bd mov sp, r7
- 80012e2: b006 add sp, #24
- 80012e4: bd80 pop {r7, pc}
+ 8001262: 46c0 nop ; (mov r8, r8)
+ 8001264: 46bd mov sp, r7
+ 8001266: b006 add sp, #24
+ 8001268: bd80 pop {r7, pc}
-080012e6 :
+0800126a :
* @param USARTx USART Instance
* @param Value between Min_Data=0x00 and Max_Data=0x1FF
* @retval None
*/
__STATIC_INLINE void LL_USART_TransmitData9(USART_TypeDef *USARTx, uint16_t Value)
{
- 80012e6: b580 push {r7, lr}
- 80012e8: b082 sub sp, #8
- 80012ea: af00 add r7, sp, #0
- 80012ec: 6078 str r0, [r7, #4]
- 80012ee: 000a movs r2, r1
- 80012f0: 1cbb adds r3, r7, #2
- 80012f2: 801a strh r2, [r3, #0]
+ 800126a: b580 push {r7, lr}
+ 800126c: b082 sub sp, #8
+ 800126e: af00 add r7, sp, #0
+ 8001270: 6078 str r0, [r7, #4]
+ 8001272: 000a movs r2, r1
+ 8001274: 1cbb adds r3, r7, #2
+ 8001276: 801a strh r2, [r3, #0]
USARTx->TDR = (uint16_t)(Value & 0x1FFUL);
- 80012f4: 1cbb adds r3, r7, #2
- 80012f6: 881b ldrh r3, [r3, #0]
- 80012f8: 05db lsls r3, r3, #23
- 80012fa: 0dda lsrs r2, r3, #23
- 80012fc: 687b ldr r3, [r7, #4]
- 80012fe: 629a str r2, [r3, #40] ; 0x28
+ 8001278: 1cbb adds r3, r7, #2
+ 800127a: 881b ldrh r3, [r3, #0]
+ 800127c: 05db lsls r3, r3, #23
+ 800127e: 0dda lsrs r2, r3, #23
+ 8001280: 687b ldr r3, [r7, #4]
+ 8001282: 629a str r2, [r3, #40] ; 0x28
}
- 8001300: 46c0 nop ; (mov r8, r8)
- 8001302: 46bd mov sp, r7
- 8001304: b002 add sp, #8
- 8001306: bd80 pop {r7, pc}
+ 8001284: 46c0 nop ; (mov r8, r8)
+ 8001286: 46bd mov sp, r7
+ 8001288: b002 add sp, #8
+ 800128a: bd80 pop {r7, pc}
-08001308 :
+0800128c :
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
int8_t sht4x_i2c_transmit(uint8_t address, uint8_t *buffer, int len)
{
- 8001308: b590 push {r4, r7, lr}
- 800130a: b085 sub sp, #20
- 800130c: af00 add r7, sp, #0
- 800130e: 60b9 str r1, [r7, #8]
- 8001310: 607a str r2, [r7, #4]
- 8001312: 240f movs r4, #15
- 8001314: 193b adds r3, r7, r4
- 8001316: 1c02 adds r2, r0, #0
- 8001318: 701a strb r2, [r3, #0]
+ 800128c: b590 push {r4, r7, lr}
+ 800128e: b085 sub sp, #20
+ 8001290: af00 add r7, sp, #0
+ 8001292: 60b9 str r1, [r7, #8]
+ 8001294: 607a str r2, [r7, #4]
+ 8001296: 240f movs r4, #15
+ 8001298: 193b adds r3, r7, r4
+ 800129a: 1c02 adds r2, r0, #0
+ 800129c: 701a strb r2, [r3, #0]
return i2c_transmit(address, buffer, len);
- 800131a: 687a ldr r2, [r7, #4]
- 800131c: 68b9 ldr r1, [r7, #8]
- 800131e: 193b adds r3, r7, r4
- 8001320: 781b ldrb r3, [r3, #0]
- 8001322: 0018 movs r0, r3
- 8001324: f7ff fa16 bl 8000754
- 8001328: 0003 movs r3, r0
+ 800129e: 687a ldr r2, [r7, #4]
+ 80012a0: 68b9 ldr r1, [r7, #8]
+ 80012a2: 193b adds r3, r7, r4
+ 80012a4: 781b ldrb r3, [r3, #0]
+ 80012a6: 0018 movs r0, r3
+ 80012a8: f7ff fa54 bl 8000754
+ 80012ac: 0003 movs r3, r0
}
- 800132a: 0018 movs r0, r3
- 800132c: 46bd mov sp, r7
- 800132e: b005 add sp, #20
- 8001330: bd90 pop {r4, r7, pc}
+ 80012ae: 0018 movs r0, r3
+ 80012b0: 46bd mov sp, r7
+ 80012b2: b005 add sp, #20
+ 80012b4: bd90 pop {r4, r7, pc}
-08001332 :
+080012b6 :
int8_t sht4x_i2c_receive(uint8_t address, uint8_t *buffer, int len)
{
- 8001332: b590 push {r4, r7, lr}
- 8001334: b085 sub sp, #20
- 8001336: af00 add r7, sp, #0
- 8001338: 60b9 str r1, [r7, #8]
- 800133a: 607a str r2, [r7, #4]
- 800133c: 240f movs r4, #15
- 800133e: 193b adds r3, r7, r4
- 8001340: 1c02 adds r2, r0, #0
- 8001342: 701a strb r2, [r3, #0]
+ 80012b6: b590 push {r4, r7, lr}
+ 80012b8: b085 sub sp, #20
+ 80012ba: af00 add r7, sp, #0
+ 80012bc: 60b9 str r1, [r7, #8]
+ 80012be: 607a str r2, [r7, #4]
+ 80012c0: 240f movs r4, #15
+ 80012c2: 193b adds r3, r7, r4
+ 80012c4: 1c02 adds r2, r0, #0
+ 80012c6: 701a strb r2, [r3, #0]
return i2c_receive(address, buffer, len);
- 8001344: 687a ldr r2, [r7, #4]
- 8001346: 68b9 ldr r1, [r7, #8]
- 8001348: 193b adds r3, r7, r4
- 800134a: 781b ldrb r3, [r3, #0]
- 800134c: 0018 movs r0, r3
- 800134e: f7ff fa59 bl 8000804
- 8001352: 0003 movs r3, r0
+ 80012c8: 687a ldr r2, [r7, #4]
+ 80012ca: 68b9 ldr r1, [r7, #8]
+ 80012cc: 193b adds r3, r7, r4
+ 80012ce: 781b ldrb r3, [r3, #0]
+ 80012d0: 0018 movs r0, r3
+ 80012d2: f7ff fa97 bl 8000804
+ 80012d6: 0003 movs r3, r0
}
- 8001354: 0018 movs r0, r3
- 8001356: 46bd mov sp, r7
- 8001358: b005 add sp, #20
- 800135a: bd90 pop {r4, r7, pc}
+ 80012d8: 0018 movs r0, r3
+ 80012da: 46bd mov sp, r7
+ 80012dc: b005 add sp, #20
+ 80012de: bd90 pop {r4, r7, pc}
-0800135c :
+080012e0 :
uint8_t sensirion_crc8_calculate(const uint8_t *data, uint16_t count)
{
- 800135c: b580 push {r7, lr}
- 800135e: b082 sub sp, #8
- 8001360: af00 add r7, sp, #0
- 8001362: 6078 str r0, [r7, #4]
- 8001364: 000a movs r2, r1
- 8001366: 1cbb adds r3, r7, #2
- 8001368: 801a strh r2, [r3, #0]
+ 80012e0: b580 push {r7, lr}
+ 80012e2: b082 sub sp, #8
+ 80012e4: af00 add r7, sp, #0
+ 80012e6: 6078 str r0, [r7, #4]
+ 80012e8: 000a movs r2, r1
+ 80012ea: 1cbb adds r3, r7, #2
+ 80012ec: 801a strh r2, [r3, #0]
return crc8_calculate(data, count);
- 800136a: 1cbb adds r3, r7, #2
- 800136c: 881a ldrh r2, [r3, #0]
- 800136e: 687b ldr r3, [r7, #4]
- 8001370: 0011 movs r1, r2
- 8001372: 0018 movs r0, r3
- 8001374: f001 fd60 bl 8002e38
- 8001378: 0003 movs r3, r0
- 800137a: b2db uxtb r3, r3
+ 80012ee: 1cbb adds r3, r7, #2
+ 80012f0: 881a ldrh r2, [r3, #0]
+ 80012f2: 687b ldr r3, [r7, #4]
+ 80012f4: 0011 movs r1, r2
+ 80012f6: 0018 movs r0, r3
+ 80012f8: f001 fdb6 bl 8002e68
+ 80012fc: 0003 movs r3, r0
}
- 800137c: 0018 movs r0, r3
- 800137e: 46bd mov sp, r7
- 8001380: b002 add sp, #8
- 8001382: bd80 pop {r7, pc}
+ 80012fe: 0018 movs r0, r3
+ 8001300: 46bd mov sp, r7
+ 8001302: b002 add sp, #8
+ 8001304: bd80 pop {r7, pc}
-08001384 :
+08001306 :
int8_t sht4x_disable_interrupts(void)
{
- 8001384: b580 push {r7, lr}
- 8001386: af00 add r7, sp, #0
+ 8001306: b580 push {r7, lr}
+ 8001308: af00 add r7, sp, #0
return uart_disable_interrupts();
- 8001388: f000 fc22 bl 8001bd0
- 800138c: 0003 movs r3, r0
+ 800130a: f000 fc5d bl 8001bc8
+ 800130e: 0003 movs r3, r0
}
- 800138e: 0018 movs r0, r3
- 8001390: 46bd mov sp, r7
- 8001392: bd80 pop {r7, pc}
+ 8001310: 0018 movs r0, r3
+ 8001312: 46bd mov sp, r7
+ 8001314: bd80 pop {r7, pc}
-08001394 :
+08001316 :
int8_t sht4x_enable_interrupts(void)
{
- 8001394: b580 push {r7, lr}
- 8001396: af00 add r7, sp, #0
+ 8001316: b580 push {r7, lr}
+ 8001318: af00 add r7, sp, #0
return uart_enable_interrupts();
- 8001398: f000 fc2e bl 8001bf8
- 800139c: 0003 movs r3, r0
+ 800131a: f000 fc69 bl 8001bf0
+ 800131e: 0003 movs r3, r0
}
- 800139e: 0018 movs r0, r3
- 80013a0: 46bd mov sp, r7
- 80013a2: bd80 pop {r7, pc}
+ 8001320: 0018 movs r0, r3
+ 8001322: 46bd mov sp, r7
+ 8001324: bd80 pop {r7, pc}
-080013a4 :
+08001326 :
int8_t ltr329_i2c_transmit(uint8_t address, uint8_t *buffer, int len)
{
- 80013a4: b590 push {r4, r7, lr}
- 80013a6: b085 sub sp, #20
- 80013a8: af00 add r7, sp, #0
- 80013aa: 60b9 str r1, [r7, #8]
- 80013ac: 607a str r2, [r7, #4]
- 80013ae: 240f movs r4, #15
- 80013b0: 193b adds r3, r7, r4
- 80013b2: 1c02 adds r2, r0, #0
- 80013b4: 701a strb r2, [r3, #0]
+ 8001326: b590 push {r4, r7, lr}
+ 8001328: b085 sub sp, #20
+ 800132a: af00 add r7, sp, #0
+ 800132c: 60b9 str r1, [r7, #8]
+ 800132e: 607a str r2, [r7, #4]
+ 8001330: 240f movs r4, #15
+ 8001332: 193b adds r3, r7, r4
+ 8001334: 1c02 adds r2, r0, #0
+ 8001336: 701a strb r2, [r3, #0]
return i2c_transmit(address, buffer, len);
- 80013b6: 687a ldr r2, [r7, #4]
- 80013b8: 68b9 ldr r1, [r7, #8]
- 80013ba: 193b adds r3, r7, r4
- 80013bc: 781b ldrb r3, [r3, #0]
- 80013be: 0018 movs r0, r3
- 80013c0: f7ff f9c8 bl 8000754
- 80013c4: 0003 movs r3, r0
+ 8001338: 687a ldr r2, [r7, #4]
+ 800133a: 68b9 ldr r1, [r7, #8]
+ 800133c: 193b adds r3, r7, r4
+ 800133e: 781b ldrb r3, [r3, #0]
+ 8001340: 0018 movs r0, r3
+ 8001342: f7ff fa07 bl 8000754
+ 8001346: 0003 movs r3, r0
}
- 80013c6: 0018 movs r0, r3
- 80013c8: 46bd mov sp, r7
- 80013ca: b005 add sp, #20
- 80013cc: bd90 pop {r4, r7, pc}
+ 8001348: 0018 movs r0, r3
+ 800134a: 46bd mov sp, r7
+ 800134c: b005 add sp, #20
+ 800134e: bd90 pop {r4, r7, pc}
-080013ce :
+08001350 :
int8_t ltr329_i2c_receive(uint8_t address, uint8_t *buffer, int len)
{
- 80013ce: b590 push {r4, r7, lr}
- 80013d0: b085 sub sp, #20
- 80013d2: af00 add r7, sp, #0
- 80013d4: 60b9 str r1, [r7, #8]
- 80013d6: 607a str r2, [r7, #4]
- 80013d8: 240f movs r4, #15
- 80013da: 193b adds r3, r7, r4
- 80013dc: 1c02 adds r2, r0, #0
- 80013de: 701a strb r2, [r3, #0]
+ 8001350: b590 push {r4, r7, lr}
+ 8001352: b085 sub sp, #20
+ 8001354: af00 add r7, sp, #0
+ 8001356: 60b9 str r1, [r7, #8]
+ 8001358: 607a str r2, [r7, #4]
+ 800135a: 240f movs r4, #15
+ 800135c: 193b adds r3, r7, r4
+ 800135e: 1c02 adds r2, r0, #0
+ 8001360: 701a strb r2, [r3, #0]
return i2c_receive(address, buffer, len);
- 80013e0: 687a ldr r2, [r7, #4]
- 80013e2: 68b9 ldr r1, [r7, #8]
- 80013e4: 193b adds r3, r7, r4
- 80013e6: 781b ldrb r3, [r3, #0]
- 80013e8: 0018 movs r0, r3
- 80013ea: f7ff fa0b bl 8000804
- 80013ee: 0003 movs r3, r0
+ 8001362: 687a ldr r2, [r7, #4]
+ 8001364: 68b9 ldr r1, [r7, #8]
+ 8001366: 193b adds r3, r7, r4
+ 8001368: 781b ldrb r3, [r3, #0]
+ 800136a: 0018 movs r0, r3
+ 800136c: f7ff fa4a bl 8000804
+ 8001370: 0003 movs r3, r0
}
- 80013f0: 0018 movs r0, r3
- 80013f2: 46bd mov sp, r7
- 80013f4: b005 add sp, #20
- 80013f6: bd90 pop {r4, r7, pc}
+ 8001372: 0018 movs r0, r3
+ 8001374: 46bd mov sp, r7
+ 8001376: b005 add sp, #20
+ 8001378: bd90 pop {r4, r7, pc}
-080013f8 :
+0800137a :
int8_t ltr329_disable_interrupts(void)
{
- 80013f8: b580 push {r7, lr}
- 80013fa: af00 add r7, sp, #0
+ 800137a: b580 push {r7, lr}
+ 800137c: af00 add r7, sp, #0
return uart_disable_interrupts();
- 80013fc: f000 fbe8 bl 8001bd0
- 8001400: 0003 movs r3, r0
+ 800137e: f000 fc23 bl 8001bc8
+ 8001382: 0003 movs r3, r0
}
- 8001402: 0018 movs r0, r3
- 8001404: 46bd mov sp, r7
- 8001406: bd80 pop {r7, pc}
+ 8001384: 0018 movs r0, r3
+ 8001386: 46bd mov sp, r7
+ 8001388: bd80 pop {r7, pc}
-08001408 :
+0800138a :
int8_t ltr329_enable_interrupts(void)
{
- 8001408: b580 push {r7, lr}
- 800140a: af00 add r7, sp, #0
+ 800138a: b580 push {r7, lr}
+ 800138c: af00 add r7, sp, #0
return uart_enable_interrupts();
- 800140c: f000 fbf4 bl 8001bf8
- 8001410: 0003 movs r3, r0
+ 800138e: f000 fc2f bl 8001bf0
+ 8001392: 0003 movs r3, r0
}
- 8001412: 0018 movs r0, r3
- 8001414: 46bd mov sp, r7
- 8001416: bd80 pop {r7, pc}
+ 8001394: 0018 movs r0, r3
+ 8001396: 46bd mov sp, r7
+ 8001398: bd80 pop {r7, pc}
-08001418 :
+0800139a :
void delay_ms(int delay_ms)
{
- 8001418: b580 push {r7, lr}
- 800141a: b082 sub sp, #8
- 800141c: af00 add r7, sp, #0
- 800141e: 6078 str r0, [r7, #4]
+ 800139a: b580 push {r7, lr}
+ 800139c: b082 sub sp, #8
+ 800139e: af00 add r7, sp, #0
+ 80013a0: 6078 str r0, [r7, #4]
LL_mDelay(delay_ms);
- 8001420: 687b ldr r3, [r7, #4]
- 8001422: 0018 movs r0, r3
- 8001424: f001 fcd8 bl 8002dd8
+ 80013a2: 687b ldr r3, [r7, #4]
+ 80013a4: 0018 movs r0, r3
+ 80013a6: f001 fd2f bl 8002e08
}
- 8001428: 46c0 nop ; (mov r8, r8)
- 800142a: 46bd mov sp, r7
- 800142c: b002 add sp, #8
- 800142e: bd80 pop {r7, pc}
+ 80013aa: 46c0 nop ; (mov r8, r8)
+ 80013ac: 46bd mov sp, r7
+ 80013ae: b002 add sp, #8
+ 80013b0: bd80 pop {r7, pc}
+ ...
-08001430 :
+080013b4 :
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
- 8001430: b5b0 push {r4, r5, r7, lr}
- 8001432: b084 sub sp, #16
- 8001434: af00 add r7, sp, #0
+ 80013b4: b5b0 push {r4, r5, r7, lr}
+ 80013b6: b084 sub sp, #16
+ 80013b8: af00 add r7, sp, #0
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
- 8001436: 2001 movs r0, #1
- 8001438: f7ff fccc bl 8000dd4
+ 80013ba: 2001 movs r0, #1
+ 80013bc: f7ff fd0a bl 8000dd4
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR);
- 800143c: 2380 movs r3, #128 ; 0x80
- 800143e: 055b lsls r3, r3, #21
- 8001440: 0018 movs r0, r3
- 8001442: f7ff fcb1 bl 8000da8
+ 80013c0: 2380 movs r3, #128 ; 0x80
+ 80013c2: 055b lsls r3, r3, #21
+ 80013c4: 0018 movs r0, r3
+ 80013c6: f7ff fcef bl 8000da8
/* System interrupt init*/
/* SysTick_IRQn interrupt configuration */
NVIC_SetPriority(SysTick_IRQn, 3);
- 8001446: 2301 movs r3, #1
- 8001448: 425b negs r3, r3
- 800144a: 2103 movs r1, #3
- 800144c: 0018 movs r0, r3
- 800144e: f7ff fa4d bl 80008ec <__NVIC_SetPriority>
+ 80013ca: 2301 movs r3, #1
+ 80013cc: 425b negs r3, r3
+ 80013ce: 2103 movs r1, #3
+ 80013d0: 0018 movs r0, r3
+ 80013d2: f7ff fa8b bl 80008ec <__NVIC_SetPriority>
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
- 8001452: f000 f969 bl 8001728
+ 80013d6: f000 f9a3 bl 8001720
/* USER CODE BEGIN SysInit */
/* Read config from EEPROM - if unsuccessful, set the default values*/
int8_t config_read_status = config_read(&sensor_config);
- 8001456: 250f movs r5, #15
- 8001458: 197c adds r4, r7, r5
- 800145a: 4b96 ldr r3, [pc, #600] ; (80016b4 )
- 800145c: 0018 movs r0, r3
- 800145e: f7fe ffd1 bl 8000404
- 8001462: 0003 movs r3, r0
- 8001464: 7023 strb r3, [r4, #0]
+ 80013da: 250f movs r5, #15
+ 80013dc: 197c adds r4, r7, r5
+ 80013de: 4bb2 ldr r3, [pc, #712] ; (80016a8 )
+ 80013e0: 0018 movs r0, r3
+ 80013e2: f7ff f80f bl 8000404
+ 80013e6: 0003 movs r3, r0
+ 80013e8: 7023 strb r3, [r4, #0]
if (config_read_status != CONFIG_OK)
- 8001466: 197b adds r3, r7, r5
- 8001468: 781b ldrb r3, [r3, #0]
- 800146a: b25b sxtb r3, r3
- 800146c: 2b00 cmp r3, #0
- 800146e: d005 beq.n 800147c
+ 80013ea: 197b adds r3, r7, r5
+ 80013ec: 781b ldrb r3, [r3, #0]
+ 80013ee: b25b sxtb r3, r3
+ 80013f0: 2b00 cmp r3, #0
+ 80013f2: d005 beq.n 8001400
{
sensor_config.modbus_addr = MODBUS_DEFAULT_SLAVE_ADDRESS;
- 8001470: 4b90 ldr r3, [pc, #576] ; (80016b4 )
- 8001472: 22f7 movs r2, #247 ; 0xf7
- 8001474: 809a strh r2, [r3, #4]
+ 80013f4: 4bac ldr r3, [pc, #688] ; (80016a8 )
+ 80013f6: 22f7 movs r2, #247 ; 0xf7
+ 80013f8: 809a strh r2, [r3, #4]
sensor_config.baudrate_index = CONFIG_DEFAULT_BAUDRATE_INDEX;
- 8001476: 4b8f ldr r3, [pc, #572] ; (80016b4 )
- 8001478: 2200 movs r2, #0
- 800147a: 609a str r2, [r3, #8]
+ 80013fa: 4bab ldr r3, [pc, #684] ; (80016a8 )
+ 80013fc: 2200 movs r2, #0
+ 80013fe: 609a str r2, [r3, #8]
}
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
- 800147c: f000 fb6a bl 8001b54
+ 8001400: f000 fba4 bl 8001b4c
MX_I2C1_Init();
- 8001480: f000 f9ac bl 80017dc
+ 8001404: f000 f9e6 bl 80017d4
MX_USART2_UART_Init();
- 8001484: f000 fa9e bl 80019c4
+ 8001408: f000 fad8 bl 80019bc
MX_TIM21_Init();
- 8001488: f000 fa58 bl 800193c
+ 800140c: f000 fa92 bl 8001934
MX_IWDG_Init();
- 800148c: f000 fa2e bl 80018ec
+ 8001410: f000 fa68 bl 80018e4
// LL_GPIO_ResetOutputPin(LED_R_GPIO_Port, LED_R_Pin);
// LL_GPIO_ResetOutputPin(LED_G_GPIO_Port, LED_G_Pin);
// LL_GPIO_ResetOutputPin(LED_B_GPIO_Port, LED_B_Pin);
/* Enable I2C for sensors */
LL_I2C_Enable(I2C1);
- 8001490: 4b89 ldr r3, [pc, #548] ; (80016b8 )
- 8001492: 0018 movs r0, r3
- 8001494: f7ff faaa bl 80009ec
+ 8001414: 4ba5 ldr r3, [pc, #660] ; (80016ac )
+ 8001416: 0018 movs r0, r3
+ 8001418: f7ff fae8 bl 80009ec
/* Set the modbus address */
modbus_slave_set_address(sensor_config.modbus_addr);
- 8001498: 4b86 ldr r3, [pc, #536] ; (80016b4 )
- 800149a: 889b ldrh r3, [r3, #4]
- 800149c: b2db uxtb r3, r3
- 800149e: 0018 movs r0, r3
- 80014a0: f002 fb2a bl 8003af8
+ 800141c: 4ba2 ldr r3, [pc, #648] ; (80016a8 )
+ 800141e: 889b ldrh r3, [r3, #4]
+ 8001420: b2db uxtb r3, r3
+ 8001422: 0018 movs r0, r3
+ 8001424: f002 fb80 bl 8003b28
/* Enable UART for RS485 */
LL_USART_Enable(USART2);
- 80014a4: 4b85 ldr r3, [pc, #532] ; (80016bc )
- 80014a6: 0018 movs r0, r3
- 80014a8: f7ff fd55 bl 8000f56
+ 8001428: 4ba1 ldr r3, [pc, #644] ; (80016b0 )
+ 800142a: 0018 movs r0, r3
+ 800142c: f7ff fd93 bl 8000f56
/* Start the timer for measurement triggering */
LL_TIM_EnableCounter(TIM21);
- 80014ac: 4b84 ldr r3, [pc, #528] ; (80016c0 )
- 80014ae: 0018 movs r0, r3
- 80014b0: f7ff fcf2 bl 8000e98
+ 8001430: 4ba0 ldr r3, [pc, #640] ; (80016b4 )
+ 8001432: 0018 movs r0, r3
+ 8001434: f7ff fd30 bl 8000e98
LL_TIM_EnableIT_UPDATE(TIM21);
- 80014b4: 4b82 ldr r3, [pc, #520] ; (80016c0 )
- 80014b6: 0018 movs r0, r3
- 80014b8: f7ff fd3f bl 8000f3a
+ 8001438: 4b9e ldr r3, [pc, #632] ; (80016b4 )
+ 800143a: 0018 movs r0, r3
+ 800143c: f7ff fd7d bl 8000f3a
/* I2C context init (for SHT4x and SCD4x) */
i2c_context_t i2c_context;
i2c_context.i2c = I2C1;
- 80014bc: 4b7e ldr r3, [pc, #504] ; (80016b8 )
- 80014be: 60bb str r3, [r7, #8]
+ 8001440: 4b9a ldr r3, [pc, #616] ; (80016ac )
+ 8001442: 60bb str r3, [r7, #8]
i2c_init(&i2c_context);
- 80014c0: 2308 movs r3, #8
- 80014c2: 18fb adds r3, r7, r3
- 80014c4: 0018 movs r0, r3
- 80014c6: f7ff f931 bl 800072c
+ 8001444: 2308 movs r3, #8
+ 8001446: 18fb adds r3, r7, r3
+ 8001448: 0018 movs r0, r3
+ 800144a: f7ff f96f bl 800072c
/* Fill device ID struct */
device_id.object_name.VendorName = "Veles Labs";
- 80014ca: 4b7e ldr r3, [pc, #504] ; (80016c4 )
- 80014cc: 4a7e ldr r2, [pc, #504] ; (80016c8 )
- 80014ce: 601a str r2, [r3, #0]
+ 800144e: 4b9a ldr r3, [pc, #616] ; (80016b8 )
+ 8001450: 4a9a ldr r2, [pc, #616] ; (80016bc )
+ 8001452: 601a str r2, [r3, #0]
device_id.object_name.ProductCode = "124C41";
- 80014d0: 4b7c ldr r3, [pc, #496] ; (80016c4 )
- 80014d2: 4a7e ldr r2, [pc, #504] ; (80016cc )
- 80014d4: 605a str r2, [r3, #4]
+ 8001454: 4b98 ldr r3, [pc, #608] ; (80016b8 )
+ 8001456: 4a9a ldr r2, [pc, #616] ; (80016c0 )
+ 8001458: 605a str r2, [r3, #4]
device_id.object_name.MajorMinorRevision = "1.2";
- 80014d6: 4b7b ldr r3, [pc, #492] ; (80016c4 )
- 80014d8: 4a7d ldr r2, [pc, #500] ; (80016d0 )
- 80014da: 609a str r2, [r3, #8]
+ 800145a: 4b97 ldr r3, [pc, #604] ; (80016b8 )
+ 800145c: 4a99 ldr r2, [pc, #612] ; (80016c4 )
+ 800145e: 609a str r2, [r3, #8]
device_id.object_name.VendorUrl = "https://veles-labs.com";
- 80014dc: 4b79 ldr r3, [pc, #484] ; (80016c4 )
- 80014de: 4a7d ldr r2, [pc, #500] ; (80016d4 )
- 80014e0: 60da str r2, [r3, #12]
+ 8001460: 4b95 ldr r3, [pc, #596] ; (80016b8 )
+ 8001462: 4a99 ldr r2, [pc, #612] ; (80016c8 )
+ 8001464: 60da str r2, [r3, #12]
device_id.object_name.ProductName = "RHT_Wired";
- 80014e2: 4b78 ldr r3, [pc, #480] ; (80016c4 )
- 80014e4: 4a7c ldr r2, [pc, #496] ; (80016d8 )
- 80014e6: 611a str r2, [r3, #16]
+ 8001466: 4b94 ldr r3, [pc, #592] ; (80016b8 )
+ 8001468: 4a98 ldr r2, [pc, #608] ; (80016cc )
+ 800146a: 611a str r2, [r3, #16]
device_id.object_name.ModelName = "Hugo";
- 80014e8: 4b76 ldr r3, [pc, #472] ; (80016c4 )
- 80014ea: 4a7c ldr r2, [pc, #496] ; (80016dc )
- 80014ec: 615a str r2, [r3, #20]
+ 800146c: 4b92 ldr r3, [pc, #584] ; (80016b8 )
+ 800146e: 4a98 ldr r2, [pc, #608] ; (80016d0 )
+ 8001470: 615a str r2, [r3, #20]
modbus_slave_init_device_id(&device_id);
- 80014ee: 4b75 ldr r3, [pc, #468] ; (80016c4 )
- 80014f0: 0018 movs r0, r3
- 80014f2: f002 fbfd bl 8003cf0
+ 8001472: 4b91 ldr r3, [pc, #580] ; (80016b8 )
+ 8001474: 0018 movs r0, r3
+ 8001476: f002 fc53 bl 8003d20
/* USER CODE BEGIN WHILE */
/* Wait 1000ms for sensors initialization */
/* SHT4x Init Time: max 1 ms (datasheet pg. 8) */
/* LTR329 Init Time: max 100 ms (datasheet pg. 9) */
LL_mDelay(1000);
- 80014f6: 23fa movs r3, #250 ; 0xfa
- 80014f8: 009b lsls r3, r3, #2
- 80014fa: 0018 movs r0, r3
- 80014fc: f001 fc6c bl 8002dd8
+ 800147a: 23fa movs r3, #250 ; 0xfa
+ 800147c: 009b lsls r3, r3, #2
+ 800147e: 0018 movs r0, r3
+ 8001480: f001 fcc2 bl 8002e08
+
+ /* Initiualize LTR329 */
int8_t ltr_ret;
- uint8_t ltr_cont_reg_val;
- uint8_t ltr_rate_reg_val;
do
{
ltr_ret = ltr329_write_settings(LTR329_GAIN_48X, LTR329_MODE_ACTIVE, LTR329_INTEGRATION_100MS, LTR329_MEAS_RATE_100MS);
- 8001500: 250e movs r5, #14
- 8001502: 197c adds r4, r7, r5
- 8001504: 2301 movs r3, #1
- 8001506: 2200 movs r2, #0
- 8001508: 2101 movs r1, #1
- 800150a: 2018 movs r0, #24
- 800150c: f001 fd51 bl 8002fb2
- 8001510: 0003 movs r3, r0
- 8001512: 7023 strb r3, [r4, #0]
+ 8001484: 250e movs r5, #14
+ 8001486: 197c adds r4, r7, r5
+ 8001488: 2301 movs r3, #1
+ 800148a: 2200 movs r2, #0
+ 800148c: 2101 movs r1, #1
+ 800148e: 2018 movs r0, #24
+ 8001490: f001 fda7 bl 8002fe2
+ 8001494: 0003 movs r3, r0
+ 8001496: 7023 strb r3, [r4, #0]
/* TODO: Check register status */
} while (ltr_ret != 0);
- 8001514: 197b adds r3, r7, r5
- 8001516: 781b ldrb r3, [r3, #0]
- 8001518: b25b sxtb r3, r3
- 800151a: 2b00 cmp r3, #0
- 800151c: d1f0 bne.n 8001500
+ 8001498: 197b adds r3, r7, r5
+ 800149a: 781b ldrb r3, [r3, #0]
+ 800149c: b25b sxtb r3, r3
+ 800149e: 2b00 cmp r3, #0
+ 80014a0: d1f0 bne.n 8001484
/* LTR329 Innitialized */
ltr329_gain_t ltr329_gain;
ltr329_als_mode_t ltr329_mode;
ltr329_integration_time_t ltr329_int_time;
ltr329_measurement_rate_t ltr329_meas_rate;
ltr329_read_settings(<r329_gain, <r329_mode, <r329_int_time, <r329_meas_rate);
- 800151e: 1d3b adds r3, r7, #4
- 8001520: 1d7a adds r2, r7, #5
- 8001522: 1db9 adds r1, r7, #6
- 8001524: 1df8 adds r0, r7, #7
- 8001526: f001 fd88 bl 800303a
+ 80014a2: 1d3b adds r3, r7, #4
+ 80014a4: 1d7a adds r2, r7, #5
+ 80014a6: 1db9 adds r1, r7, #6
+ 80014a8: 1df8 adds r0, r7, #7
+ 80014aa: f001 fdde bl 800306a
sensor_config.ltr329_gain = ltr329_gain;
- 800152a: 1dfb adds r3, r7, #7
- 800152c: 781a ldrb r2, [r3, #0]
- 800152e: 4b61 ldr r3, [pc, #388] ; (80016b4 )
- 8001530: 701a strb r2, [r3, #0]
+ 80014ae: 1dfb adds r3, r7, #7
+ 80014b0: 781a ldrb r2, [r3, #0]
+ 80014b2: 4b7d ldr r3, [pc, #500] ; (80016a8 )
+ 80014b4: 701a strb r2, [r3, #0]
sensor_config.ltr329_mode = ltr329_mode;
- 8001532: 1dbb adds r3, r7, #6
- 8001534: 781a ldrb r2, [r3, #0]
- 8001536: 4b5f ldr r3, [pc, #380] ; (80016b4 )
- 8001538: 705a strb r2, [r3, #1]
+ 80014b6: 1dbb adds r3, r7, #6
+ 80014b8: 781a ldrb r2, [r3, #0]
+ 80014ba: 4b7b ldr r3, [pc, #492] ; (80016a8 )
+ 80014bc: 705a strb r2, [r3, #1]
sensor_config.ltr329_integ_time = ltr329_int_time;
- 800153a: 1d7b adds r3, r7, #5
- 800153c: 781a ldrb r2, [r3, #0]
- 800153e: 4b5d ldr r3, [pc, #372] ; (80016b4 )
- 8001540: 709a strb r2, [r3, #2]
+ 80014be: 1d7b adds r3, r7, #5
+ 80014c0: 781a ldrb r2, [r3, #0]
+ 80014c2: 4b79 ldr r3, [pc, #484] ; (80016a8 )
+ 80014c4: 709a strb r2, [r3, #2]
sensor_config.ltr329_meas_rate = ltr329_meas_rate;
- 8001542: 1d3b adds r3, r7, #4
- 8001544: 781a ldrb r2, [r3, #0]
- 8001546: 4b5b ldr r3, [pc, #364] ; (80016b4 )
- 8001548: 70da strb r2, [r3, #3]
- static uint32_t new_baud;
+ 80014c6: 1d3b adds r3, r7, #4
+ 80014c8: 781a ldrb r2, [r3, #0]
+ 80014ca: 4b77 ldr r3, [pc, #476] ; (80016a8 )
+ 80014cc: 70da strb r2, [r3, #3]
+ /*static uint32_t new_baud;*/
/* Enter the main loop */
while (1)
{
/* Watchdog is set to 28 s (37 kHz, prescaler 256, 4095 reload value) */
LL_IWDG_ReloadCounter(IWDG);
- 800154a: 4b65 ldr r3, [pc, #404] ; (80016e0 )
- 800154c: 0018 movs r0, r3
- 800154e: f7ff fabf bl 8000ad0
+ 80014ce: 4b81 ldr r3, [pc, #516] ; (80016d4 )
+ 80014d0: 0018 movs r0, r3
+ 80014d2: f7ff fafd bl 8000ad0
if (usart2_rx_done == 1)
- 8001552: 4b64 ldr r3, [pc, #400] ; (80016e4 )
- 8001554: 781b ldrb r3, [r3, #0]
- 8001556: 2b01 cmp r3, #1
- 8001558: d11d bne.n 8001596
+ 80014d6: 4b80 ldr r3, [pc, #512] ; (80016d8 )
+ 80014d8: 781b ldrb r3, [r3, #0]
+ 80014da: 2b01 cmp r3, #1
+ 80014dc: d11d bne.n 800151a
{
/* Process the message */
if (usart2_rx_message_too_long)
- 800155a: 4b63 ldr r3, [pc, #396] ; (80016e8 )
- 800155c: 781b ldrb r3, [r3, #0]
- 800155e: 2b00 cmp r3, #0
- 8001560: d003 beq.n 800156a
+ 80014de: 4b7f ldr r3, [pc, #508] ; (80016dc )
+ 80014e0: 781b ldrb r3, [r3, #0]
+ 80014e2: 2b00 cmp r3, #0
+ 80014e4: d003 beq.n 80014ee
{
/* Do nothing, just delete the buffer and set the flag back to zero*/
usart2_rx_message_too_long = 0;
- 8001562: 4b61 ldr r3, [pc, #388] ; (80016e8 )
- 8001564: 2200 movs r2, #0
- 8001566: 701a strb r2, [r3, #0]
- 8001568: e012 b.n 8001590
+ 80014e6: 4b7d ldr r3, [pc, #500] ; (80016dc )
+ 80014e8: 2200 movs r2, #0
+ 80014ea: 701a strb r2, [r3, #0]
+ 80014ec: e012 b.n 8001514
{
/* Process the message:
* message is stored in modbus_buffer[], no copying necessary;
* but we need to make sure that modbus_buffer[] will not be used while
* processing the message: this can be done by disabling RX interrupt */
LL_USART_DisableIT_RXNE(USART2);
- 800156a: 4b54 ldr r3, [pc, #336] ; (80016bc )
- 800156c: 0018 movs r0, r3
- 800156e: f7ff fe9a bl 80012a6
+ 80014ee: 4b70 ldr r3, [pc, #448] ; (80016b0 )
+ 80014f0: 0018 movs r0, r3
+ 80014f2: f7ff fe9a bl 800122a
modbus_slave_process_msg(modbus_buffer, usart2_rx_message_len);
- 8001572: 4b5e ldr r3, [pc, #376] ; (80016ec )
- 8001574: 881b ldrh r3, [r3, #0]
- 8001576: 001a movs r2, r3
- 8001578: 4b5d ldr r3, [pc, #372] ; (80016f0 )
- 800157a: 0011 movs r1, r2
- 800157c: 0018 movs r0, r3
- 800157e: f002 fad3 bl 8003b28
+ 80014f6: 4b7a ldr r3, [pc, #488] ; (80016e0 )
+ 80014f8: 881b ldrh r3, [r3, #0]
+ 80014fa: 001a movs r2, r3
+ 80014fc: 4b79 ldr r3, [pc, #484] ; (80016e4 )
+ 80014fe: 0011 movs r1, r2
+ 8001500: 0018 movs r0, r3
+ 8001502: f002 fb29 bl 8003b58
/* Reset the RX DONE flag */
usart2_rx_done = 0;
- 8001582: 4b58 ldr r3, [pc, #352] ; (80016e4 )
- 8001584: 2200 movs r2, #0
- 8001586: 701a strb r2, [r3, #0]
+ 8001506: 4b74 ldr r3, [pc, #464] ; (80016d8 )
+ 8001508: 2200 movs r2, #0
+ 800150a: 701a strb r2, [r3, #0]
LL_USART_EnableIT_RXNE(USART2);
- 8001588: 4b4c ldr r3, [pc, #304] ; (80016bc )
- 800158a: 0018 movs r0, r3
- 800158c: f7ff fe4c bl 8001228
+ 800150c: 4b68 ldr r3, [pc, #416] ; (80016b0 )
+ 800150e: 0018 movs r0, r3
+ 8001510: f7ff fe4c bl 80011ac
}
/* Reset the RX DONE flag */
usart2_rx_done = 0;
- 8001590: 4b54 ldr r3, [pc, #336] ; (80016e4 )
- 8001592: 2200 movs r2, #0
- 8001594: 701a strb r2, [r3, #0]
+ 8001514: 4b70 ldr r3, [pc, #448] ; (80016d8 )
+ 8001516: 2200 movs r2, #0
+ 8001518: 701a strb r2, [r3, #0]
}
/* if config changed (MODBUS write), reflect changes to EEPROM */
if (sensor_config_pending_write) {
- 8001596: 4b57 ldr r3, [pc, #348] ; (80016f4 )
- 8001598: 781b ldrb r3, [r3, #0]
- 800159a: 2b00 cmp r3, #0
- 800159c: d00a beq.n 80015b4
+ 800151a: 4b73 ldr r3, [pc, #460] ; (80016e8 )
+ 800151c: 781b ldrb r3, [r3, #0]
+ 800151e: 2b00 cmp r3, #0
+ 8001520: d00a beq.n 8001538
uart_disable_interrupts();
- 800159e: f000 fb17 bl 8001bd0
+ 8001522: f000 fb51 bl 8001bc8
config_write(&sensor_config);
- 80015a2: 4b44 ldr r3, [pc, #272] ; (80016b4 )
- 80015a4: 0018 movs r0, r3
- 80015a6: f7fe ff4b bl 8000440
+ 8001526: 4b60 ldr r3, [pc, #384] ; (80016a8 )
+ 8001528: 0018 movs r0, r3
+ 800152a: f7fe ff89 bl 8000440
sensor_config_pending_write = 0;
- 80015aa: 4b52 ldr r3, [pc, #328] ; (80016f4 )
- 80015ac: 2200 movs r2, #0
- 80015ae: 701a strb r2, [r3, #0]
+ 800152e: 4b6e ldr r3, [pc, #440] ; (80016e8 )
+ 8001530: 2200 movs r2, #0
+ 8001532: 701a strb r2, [r3, #0]
uart_enable_interrupts();
- 80015b0: f000 fb22 bl 8001bf8
+ 8001534: f000 fb5c bl 8001bf0
}
if (modbus_address_changed)
- 80015b4: 4b50 ldr r3, [pc, #320] ; (80016f8 )
- 80015b6: 781b ldrb r3, [r3, #0]
- 80015b8: 2b00 cmp r3, #0
- 80015ba: d008 beq.n 80015ce
+ 8001538: 4b6c ldr r3, [pc, #432] ; (80016ec )
+ 800153a: 781b ldrb r3, [r3, #0]
+ 800153c: 2b00 cmp r3, #0
+ 800153e: d008 beq.n 8001552
{
modbus_slave_set_address(sensor_config.modbus_addr);
- 80015bc: 4b3d ldr r3, [pc, #244] ; (80016b4 )
- 80015be: 889b ldrh r3, [r3, #4]
- 80015c0: b2db uxtb r3, r3
- 80015c2: 0018 movs r0, r3
- 80015c4: f002 fa98 bl 8003af8
+ 8001540: 4b59 ldr r3, [pc, #356] ; (80016a8 )
+ 8001542: 889b ldrh r3, [r3, #4]
+ 8001544: b2db uxtb r3, r3
+ 8001546: 0018 movs r0, r3
+ 8001548: f002 faee bl 8003b28
modbus_address_changed = 0;
- 80015c8: 4b4b ldr r3, [pc, #300] ; (80016f8 )
- 80015ca: 2200 movs r2, #0
- 80015cc: 701a strb r2, [r3, #0]
+ 800154c: 4b67 ldr r3, [pc, #412] ; (80016ec )
+ 800154e: 2200 movs r2, #0
+ 8001550: 701a strb r2, [r3, #0]
}
if (baudrate_changed)
- 80015ce: 4b4b ldr r3, [pc, #300] ; (80016fc )
- 80015d0: 781b ldrb r3, [r3, #0]
- 80015d2: 2b00 cmp r3, #0
- 80015d4: d028 beq.n 8001628
+ 8001552: 4b67 ldr r3, [pc, #412] ; (80016f0 )
+ 8001554: 781b ldrb r3, [r3, #0]
+ 8001556: 2b00 cmp r3, #0
+ 8001558: d022 beq.n 80015a0
{
while (!LL_USART_IsActiveFlag_TXE(USART2));
- 80015d6: 46c0 nop ; (mov r8, r8)
- 80015d8: 4b38 ldr r3, [pc, #224] ; (80016bc )
- 80015da: 0018 movs r0, r3
- 80015dc: f7ff fdf4 bl 80011c8
- 80015e0: 1e03 subs r3, r0, #0
- 80015e2: d0f9 beq.n 80015d8
+ 800155a: 46c0 nop ; (mov r8, r8)
+ 800155c: 4b54 ldr r3, [pc, #336] ; (80016b0 )
+ 800155e: 0018 movs r0, r3
+ 8001560: f7ff fdf4 bl 800114c
+ 8001564: 1e03 subs r3, r0, #0
+ 8001566: d0f9 beq.n 800155c
uart_disable_interrupts();
- 80015e4: f000 faf4 bl 8001bd0
-
- LL_USART_SetBaudRate(USART2, SYSTICK_FREQ_HZ, LL_USART_OVERSAMPLING_16, config_baudrates[sensor_config.baudrate_index]);
- 80015e8: 4b32 ldr r3, [pc, #200] ; (80016b4 )
- 80015ea: 689a ldr r2, [r3, #8]
- 80015ec: 4b44 ldr r3, [pc, #272] ; (8001700 )
- 80015ee: 0092 lsls r2, r2, #2
- 80015f0: 58d3 ldr r3, [r2, r3]
- 80015f2: 4944 ldr r1, [pc, #272] ; (8001704