diff --git a/Examples/MAX32690/OWM/.cproject b/Examples/MAX32690/OWM/.cproject
new file mode 100644
index 00000000000..6ed58f43b76
--- /dev/null
+++ b/Examples/MAX32690/OWM/.cproject
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Examples/MAX32690/OWM/.project b/Examples/MAX32690/OWM/.project
new file mode 100644
index 00000000000..b4a0c4ebe06
--- /dev/null
+++ b/Examples/MAX32690/OWM/.project
@@ -0,0 +1,26 @@
+
+
+ OWM
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ org.eclipse.cdt.core.cnature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
diff --git a/Examples/MAX32690/OWM/.settings/language.settings.xml b/Examples/MAX32690/OWM/.settings/language.settings.xml
new file mode 100644
index 00000000000..d32717b6f37
--- /dev/null
+++ b/Examples/MAX32690/OWM/.settings/language.settings.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Examples/MAX32690/OWM/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/OWM/.settings/org.eclipse.cdt.codan.core.prefs
new file mode 100644
index 00000000000..59c0b37ba75
--- /dev/null
+++ b/Examples/MAX32690/OWM/.settings/org.eclipse.cdt.codan.core.prefs
@@ -0,0 +1,93 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.codan.checkers.errnoreturn=Warning
+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=Error
+org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"}
+org.eclipse.cdt.codan.checkers.nocommentinside=-Error
+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=-Error
+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=Error
+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=Error
+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=Error
+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=Warning
+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=Error
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"}
+org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"}
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning
+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=Warning
+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=Error
+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=Warning
+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=Error
+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=Error
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"}
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error
+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=Error
+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=Error
+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=Error
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"}
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error
+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=Error
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"}
+org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"}
+org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false}
+org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"}
+org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"}
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning
+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=Error
+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=Error
+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=Error
+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=-Warning
+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=-Warning
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"}
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning
+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=Warning
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false}
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error
+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=Warning
+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=Warning
+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=Warning
+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=Error
+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\\")"}
+org.eclipse.cdt.qt.core.qtproblem=Warning
+org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
diff --git a/Examples/MAX32690/OWM/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/OWM/.settings/org.eclipse.cdt.core.prefs
new file mode 100644
index 00000000000..3ae76056734
--- /dev/null
+++ b/Examples/MAX32690/OWM/.settings/org.eclipse.cdt.core.prefs
@@ -0,0 +1,15 @@
+eclipse.preferences.version=1
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=;
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=;
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi-
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=;
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=Coremark
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=;
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX32690
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true
+environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true
diff --git a/Examples/MAX32690/OWM/.vscode/c_cpp_properties.json b/Examples/MAX32690/OWM/.vscode/c_cpp_properties.json
new file mode 100644
index 00000000000..b099c505d33
--- /dev/null
+++ b/Examples/MAX32690/OWM/.vscode/c_cpp_properties.json
@@ -0,0 +1,67 @@
+{
+ "configurations": [
+ {
+ "name": "Win32",
+ "includePath": [
+ "${default}",
+ "${workspaceFolder}",
+ "${workspaceFolder}/**"
+ ],
+ "defines": [
+ "${config:cfs.project.board}",
+ "TARGET=${config:cfs.project.target}",
+ "__GNUC__"
+ ],
+ "intelliSenseMode": "gcc-arm",
+ "compilerPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gcc.exe",
+ "browse": {
+ "path": [
+ "${default}",
+ "${workspaceFolder}",
+ "${workspaceFolder}/**"
+ ]
+ }
+ },
+ {
+ "name": "Linux",
+ "includePath": [
+ "${default}"
+ ],
+ "defines": [
+ "${config:cfs.project.board}",
+ "TARGET=${config:cfs.project.target}",
+ "__GNUC__"
+ ],
+ "intelliSenseMode": "gcc-arm",
+ "compilerPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gcc",
+ "browse": {
+ "path": [
+ "${default}",
+ "${workspaceFolder}",
+ "${workspaceFolder}/**"
+ ]
+ }
+ },
+ {
+ "name": "Mac",
+ "includePath": [
+ "${default}"
+ ],
+ "defines": [
+ "${config:cfs.project.board}",
+ "TARGET=${config:cfs.project.target}",
+ "__GNUC__"
+ ],
+ "intelliSenseMode": "gcc-arm",
+ "compilerPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gcc",
+ "browse": {
+ "path": [
+ "${default}",
+ "${workspaceFolder}",
+ "${workspaceFolder}/**"
+ ]
+ }
+ }
+ ],
+ "version": 4
+}
\ No newline at end of file
diff --git a/Examples/MAX32690/OWM/.vscode/flash.gdb b/Examples/MAX32690/OWM/.vscode/flash.gdb
new file mode 100644
index 00000000000..c1ff08eb877
--- /dev/null
+++ b/Examples/MAX32690/OWM/.vscode/flash.gdb
@@ -0,0 +1,17 @@
+define flash_m4
+ set architecture armv7e-m
+ set remotetimeout 10
+ target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f $arg1 -f $arg2 -c "init; reset halt"
+ load
+ compare-sections
+ monitor reset halt
+end
+
+define flash_m4_run
+ set architecture armv7e-m
+ set remotetimeout 10
+ target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f $arg1 -f $arg2 -c "init; reset halt"
+ load
+ compare-sections
+ monitor resume
+end
diff --git a/Examples/MAX32690/OWM/.vscode/launch.json b/Examples/MAX32690/OWM/.vscode/launch.json
new file mode 100644
index 00000000000..ca94ea9af19
--- /dev/null
+++ b/Examples/MAX32690/OWM/.vscode/launch.json
@@ -0,0 +1,126 @@
+{
+ "configurations": [
+ {
+ "name": "CFS: Debug with GDB and OpenOCD (ARM Embedded)",
+ "executable": "${command:cfs.selectProgramFile}",
+ "cwd": "${command:cfs.setDebugPath}",
+ "request": "launch",
+ "type": "cortex-debug",
+ "runToEntryPoint": "main",
+ "servertype": "openocd",
+ "serverpath": "${config:cfs.openocd.path}/bin/openocd",
+ "linux": {
+ "gdbPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gdb"
+ },
+ "windows": {
+ "gdbPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gdb.exe"
+ },
+ "osx": {
+ "gdbPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gdb"
+ },
+ "svdPath": "${command:cfs.cmsis.selectSvdFile}",
+ "searchDir": [
+ "${config:cfs.openocd.path}/share/openocd/scripts"
+ ],
+ "configFiles": [
+ "${command:cfs.openocd.selectInterface}",
+ "${command:cfs.openocd.selectTarget}"
+ ],
+ "gdbTarget": "localhost:3333",
+ "preLaunchCommands": [
+ "set logging overwrite on",
+ "set logging file debug-arm.log",
+ "set logging on",
+ "tbreak abort",
+ "tbreak _exit",
+ "set remotetimeout 60"
+ ],
+ "preLaunchTask": "CFS: build"
+ },
+ {
+ "name": "CFS: Debug with JlinkGDBServer and JLink (ARM Embedded)",
+ "executable": "${command:cfs.selectProgramFile}",
+ "cwd": "${command:cfs.setDebugPath}",
+ "request": "launch",
+ "type": "cortex-debug",
+ "runToEntryPoint": "main",
+ "servertype": "jlink",
+ "linux": {
+ "serverpath": "${command:cfs.jlink.setJlinkPath}/JLinkGDBServerCLExe",
+ "gdbPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gdb"
+ },
+ "windows": {
+ "serverpath": "${command:cfs.jlink.setJlinkPath}/JLinkGDBServerCL.exe",
+ "gdbPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gdb.exe"
+ },
+ "osx": {
+ "serverpath": "${command:cfs.jlink.setJlinkPath}/JLinkGDBServerCLExe",
+ "gdbPath": "${config:cfs.toolchain.armAArch32GCC.path}/bin/arm-none-eabi-gdb"
+ },
+ "device": "${command:cfs.jlink.setDevice}",
+ "interface": "swd",
+ "svdPath": "${command:cfs.cmsis.selectSvdFile}",
+ "gdbTarget": "localhost:2331",
+ "preLaunchCommands": [
+ "set logging overwrite on",
+ "set logging file debug-arm.log",
+ "set logging on",
+ "tbreak abort",
+ "tbreak _exit",
+ "set remotetimeout 60"
+ ],
+ "preLaunchTask": "CFS: build",
+ "overrideLaunchCommands": [
+ "monitor halt",
+ "monitor reset",
+ "-target-download"
+ ],
+ "overrideResetCommands": [
+ "monitor reset"
+ ],
+ "overrideRestartCommands": [
+ "monitor reset"
+ ]
+ },
+ {
+ "name": "CFS: Debug with GDB and OpenOCD (RISC-V)",
+ "executable": "${command:cfs.selectRiscvProgramFile}",
+ "cwd": "${command:cfs.setRiscvDebugPath}",
+ "request": "attach",
+ "type": "cortex-debug",
+ "runToEntryPoint": "main",
+ "servertype": "openocd",
+ "serverpath": "${config:cfs.openocd.path}/bin/openocd",
+ "linux": {
+ "gdbPath": "${config:cfs.toolchain.riscVGCC.path}/bin/riscv-none-elf-gdb"
+ },
+ "windows": {
+ "gdbPath": "${config:cfs.toolchain.riscVGCC.path}/bin/riscv-none-elf-gdb.exe"
+ },
+ "osx": {
+ "gdbPath": "${config:cfs.toolchain.riscVGCC.path}/bin/riscv-none-elf-gdb"
+ },
+ "svdPath": "${command:cfs.cmsis.selectSvdFile}",
+ "searchDir": [
+ "${config:cfs.openocd.path}/share/openocd/scripts"
+ ],
+ "configFiles": [
+ "${command:cfs.openocd.selectRiscvInterface}",
+ "${command:cfs.openocd.selectRiscvTarget}"
+ ],
+ "gdbTarget": "localhost:3334",
+ "preAttachCommands": [
+ "set logging overwrite on",
+ "set logging file debug-riscv.log",
+ "set logging on",
+ "set remotetimeout 60",
+ "tbreak main",
+ "set $pc=Reset_Handler"
+ ],
+ "postAttachCommands": [
+ "continue"
+ ]
+ }
+ ]
+}
+
diff --git a/Examples/MAX32690/OWM/.vscode/settings.json b/Examples/MAX32690/OWM/.vscode/settings.json
new file mode 100644
index 00000000000..79fac53cdc6
--- /dev/null
+++ b/Examples/MAX32690/OWM/.vscode/settings.json
@@ -0,0 +1,15 @@
+{
+ "C_Cpp.default.forcedInclude": [
+ "${workspaceFolder}/build/project_defines.h"
+ ],
+ "cfs.project.target": "MAX32690",
+ "cfs.jlink.device": "MAX32690",
+ "cfs.project.board": "EvKit_V1",
+ "cfs.programFile": "${workspaceFolder}/build/${workspaceFolderBasename}.elf",
+ "cfs.configureWorkspace": "Yes",
+ "cfs.project.firmwarePlatform": "MSDK",
+ "cfs.openocd.target": "target/max32690.cfg",
+ "cfs.openocd.interface": "interface/cmsis-dap.cfg",
+ "cfs.openocd.riscvTarget": "target/max32690_riscv.cfg",
+ "cfs.openocd.riscvInterface": "interface/ftdi/olimex-arm-usb-ocd-h.cfg"
+}
\ No newline at end of file
diff --git a/Examples/MAX32690/OWM/Makefile b/Examples/MAX32690/OWM/Makefile
new file mode 100644
index 00000000000..4fbb9a75d5d
--- /dev/null
+++ b/Examples/MAX32690/OWM/Makefile
@@ -0,0 +1,382 @@
+###############################################################################
+ #
+ # Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
+ # Analog Devices, Inc.),
+ # Copyright (C) 2023-2024 Analog Devices, Inc.
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ # http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ #
+ ##############################################################################
+
+# ** Readme! **
+# Don't edit this file! This is the core Makefile for a MaximSDK
+# project. The available configuration options can be overridden
+# in "project.mk", on the command-line, or with system environment
+# variables.
+
+# See https://analogdevicesinc.github.io/msdk/USERGUIDE/#build-system
+# for more detailed instructions on how to use this system.
+
+# The detailed instructions mentioned above are easier to read than
+# this file, but the comments found in this file also outline the
+# available configuration variables. This file is organized into
+# sub-sections, some of which expose config variables.
+
+
+# *******************************************************************************
+# Set the target microcontroller and board to compile for.
+
+# Every TARGET microcontroller has some Board Support Packages (BSPs) that are
+# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP
+# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD.
+
+# Configuration Variables:
+# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000
+# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA
+
+
+ifeq "$(TARGET)" ""
+# Default target microcontroller
+TARGET := MAX32690
+TARGET_UC := MAX32690
+TARGET_LC := max32690
+else
+# "TARGET" has been overridden in the environment or on the command-line.
+# We need to calculate an upper and lowercase version of the part number,
+# because paths on Linux and MacOS are case-sensitive.
+TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET))))
+TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET))))
+endif
+
+# Default board.
+BOARD ?= EvKit_V1
+
+# *******************************************************************************
+# Locate the MaximSDK
+
+# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable
+# should point to the root directory of the MaximSDK installation. Setting this manually
+# is usually only required if you're working on the command-line.
+
+# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK
+# and move up from this project's original location.
+
+# Configuration Variables:
+# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK
+
+
+ifneq "$(MAXIM_PATH)" ""
+# Sanitize MAXIM_PATH for backslashes
+MAXIM_PATH := $(subst \,/,$(MAXIM_PATH))
+# Locate some other useful paths...
+LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries)
+CMSIS_ROOT := $(LIBS_DIR)/CMSIS
+endif
+
+# *******************************************************************************
+# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH
+# in case project.mk needs to reference those values. However, we also include
+# this as early as possible in the Makefile so that it can append to or override
+# the variables below.
+
+
+PROJECTMK ?= $(abspath ./project.mk)
+include $(PROJECTMK)
+$(info Loaded project.mk)
+# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file
+
+# *******************************************************************************
+# Final path sanitization and re-calculation. No options here.
+
+ifeq "$(MAXIM_PATH)" ""
+# MAXIM_PATH is still not defined...
+DEPTH := ../../../
+MAXIM_PATH := $(abspath $(DEPTH))
+$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.)
+$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path)
+else
+# Sanitize MAXIM_PATH for backslashes
+MAXIM_PATH := $(subst \,/,$(MAXIM_PATH))
+endif
+
+# Final recalculation of LIBS_DIR/CMSIS_ROOT
+LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries)
+CMSIS_ROOT := $(LIBS_DIR)/CMSIS
+
+# One final UC/LC check in case user set TARGET in project.mk
+TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET))))
+TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET))))
+
+export TARGET
+export TARGET_UC
+export TARGET_LC
+export CMSIS_ROOT
+# TODO: Remove dependency on exports for these variables.
+
+# *******************************************************************************
+# Set up search paths, and auto-detect all source code on those paths.
+
+# The following paths are searched by default, where "./" is the project directory.
+# ./
+# |- *.h
+# |- *.c
+# |-include (optional)
+# |- *.h
+# |-src (optional)
+# |- *.c
+
+# Configuration Variables:
+# - VPATH : Tell this Makefile to search additional locations for source (.c) files.
+# You should use the "+=" operator with this option.
+# Ex: VPATH += your/new/path
+# - IPATH : Tell this Makefile to search additional locations for header (.h) files.
+# You should use the "+=" operator with this option.
+# Ex: VPATH += your/new/path
+# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build.
+# This is really only useful if you want to add a source file that isn't
+# on any VPATH, in which case you can add the full path to the file here.
+# You should use the "+=" operator with this option.
+# Ex: SRCS += your/specific/source/file.c
+# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on
+# VPATH and add them to the build. This is enabled by default. Set
+# to 0 to disable. If autosearch is disabled, source files must be
+# manually added to SRCS.
+# Ex: AUTOSEARCH = 0
+
+
+# Where to find source files for this project.
+VPATH += .
+VPATH += src
+VPATH := $(VPATH)
+
+# Where to find header files for this project
+IPATH += .
+IPATH += include
+IPATH := $(IPATH)
+
+AUTOSEARCH ?= 1
+ifeq ($(AUTOSEARCH), 1)
+# Auto-detect all C/C++ source files on VPATH
+SRCS += $(wildcard $(addsuffix /*.c, $(VPATH)))
+SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH)))
+endif
+
+# Collapse SRCS before passing them on to the next stage
+SRCS := $(SRCS)
+
+# *******************************************************************************
+# Set the output filename
+
+# Configuration Variables:
+# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject
+
+
+# The default value creates a file named after the target micro. Ex: MAX78000.elf
+PROJECT ?= $(TARGET_LC)
+
+# *******************************************************************************
+# Compiler options
+
+# Configuration Variables:
+# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional
+# symbols and sets -Og as the default optimization level.
+# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level.
+# Ex: MXC_OPTIMIZE_CFLAGS = -O2
+# - PROJ_CFLAGS : Add additional compiler flags to the build.
+# You should use the "+=" operator with this option.
+# Ex: PROJ_CFLAGS += -Wextra
+# - MFLOAT_ABI : Set the floating point acceleration level.
+# The only options are "hard", "soft", or "softfp".
+# Ex: MFLOAT_ABI = hard
+# - LINKERFILE : Override the default linkerfile.
+# Ex: LINKERFILE = customlinkerfile.ld
+# - LINKERPATH : Override the default search location for $(LINKERFILE)
+# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC
+# If $(LINKERFILE) cannot be found at this path, then the root project
+# directory will be used as a fallback.
+
+# Select 'GCC' or 'IAR' compiler
+ifeq "$(COMPILER)" ""
+COMPILER := GCC
+endif
+
+# Set default compiler optimization levels
+ifeq "$(MAKECMDGOALS)" "release"
+# Default optimization level for "release" builds (make release)
+MXC_OPTIMIZE_CFLAGS ?= -O2
+DEBUG = 0
+endif
+
+ifeq ($(DEBUG),1)
+# Optimizes for debugging as recommended
+# by GNU for code-edit-debug cycles
+# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options
+MXC_OPTIMIZE_CFLAGS := -Og
+endif
+
+# Default level if not building for release or explicitly for debug
+MXC_OPTIMIZE_CFLAGS ?= -Og
+
+# Set compiler flags
+PROJ_CFLAGS += -Wall # Enable warnings
+PROJ_CFLAGS += -DMXC_ASSERT_ENABLE
+
+# Set hardware floating point acceleration.
+# Options are:
+# - hard
+# - soft
+# - softfp (default if MFLOAT_ABI is not set)
+MFLOAT_ABI ?= softfp
+# MFLOAT_ABI must be exported to other Makefiles
+export MFLOAT_ABI
+
+# This path contains system-level intialization files for the target micro. Add to the build.
+VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source
+
+# *******************************************************************************
+# Secure Boot Tools (SBT)
+
+# This section integrates the Secure Boot Tools. It's intended for use with
+# microcontrollers that have a secure bootloader.
+
+# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc.
+
+# Configuration variables:
+# SBT : Toggle SBT integration. Set to 1 to enable, or 0
+# to disable
+# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to
+# Tools/SBT in the MaximSDK. The standalone SBT installer will override
+# this via an environment variable.
+# TARGET_SEC : Specify the part number to be passed into the SBT. This should match
+# the secure variant part #. The default value will depend on TARGET.
+# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and
+# the default selection happens in Tools/SBT/SBT-config.
+# However, if there are multiple secure part #s for the target
+# microcontroller this variable may need to be changed.
+
+SBT ?= 0
+ifeq ($(SBT), 1)
+MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT
+MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR))
+# ^ Must sanitize path for \ on Windows, since this may come from an environment
+# variable.
+
+export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work
+
+# SBT-config.mk and SBT-rules.mk are included further down this Makefile.
+
+endif # SBT
+
+# *******************************************************************************
+# Default goal selection. This section allows you to override the default goal
+# that will run if no targets are specified on the command-line.
+# (ie. just running 'make' instead of 'make all')
+
+# Configuration variables:
+# .DEFAULT_GOAL : Set the default goal if no targets were specified on the
+# command-line
+# ** "override" must be used with this variable. **
+# Ex: "override .DEFAULT_GOAL = mygoal"
+
+ifeq "$(.DEFAULT_GOAL)" ""
+ifeq ($(SBT),1)
+override .DEFAULT_GOAL := sla
+else
+override .DEFAULT_GOAL := all
+endif
+endif
+
+# Developer note: 'override' is used above for legacy Makefile compatibility.
+# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system
+# uses 'override' to come in over the top without breaking old projects.
+
+# It's also necessary to explicitly set MAKECMDGOALS...
+ifeq "$(MAKECMDGOALS)" ""
+MAKECMDGOALS:=$(.DEFAULT_GOAL)
+endif
+
+# Enable colors when --sync-output is used.
+# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2)
+ifneq ($(MAKE_TERMOUT),)
+PROJ_CFLAGS += -fdiagnostics-color=always
+endif
+
+ifneq ($(FORCE_COLOR),)
+PROJ_CFLAGS += -fdiagnostics-color=always
+endif
+
+# *******************************************************************************
+# Include SBT config. We need to do this here because it needs to know
+# the current MAKECMDGOAL.
+ifeq ($(SBT),1)
+include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk
+endif
+
+# *******************************************************************************
+# Libraries
+
+# This section offers "toggle switches" to include or exclude the libraries that
+# are available in the MaximSDK. Set a configuration variable to 1 to include the
+# library in the build, or 0 to exclude.
+
+# Each library may also have its own library specific configuration variables. See
+# Libraries/libs.mk for more details.
+
+# Configuration variables:
+# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default)
+# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default)
+# - LIB_CMSIS_DSP : Include the CMSIS-DSP library.
+# - LIB_CORDIO : Include the Cordio BLE library
+# - LIB_FCL : Include the Free Cryptographic Library (FCL)
+# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries
+# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library
+# - LIB_LITTLEFS : Include the "little file system" (littleFS) library
+# - LIB_LWIP : Include the lwIP library
+# - LIB_MAXUSB : Include the MAXUSB library
+# - LIB_SDHC : Include the SDHC library
+
+include $(LIBS_DIR)/libs.mk
+
+
+# *******************************************************************************
+# Rules
+
+# Include the rules for building for this target. All other makefiles should be
+# included before this one.
+include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk
+
+# Include the rules that integrate the SBTs. SBTs are a special case that must be
+# include after the core gcc rules to extend them.
+ifeq ($(SBT), 1)
+include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk
+endif
+
+
+# Get .DEFAULT_GOAL working.
+ifeq "$(MAKECMDGOALS)" ""
+MAKECMDGOALS:=$(.DEFAULT_GOAL)
+endif
+
+
+all:
+# Extend the functionality of the "all" recipe here
+ $(PREFIX)-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf
+
+libclean:
+ $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph
+
+clean:
+# Extend the functionality of the "clean" recipe here
+
+# The rule to clean out all the build products.
+distclean: clean libclean
diff --git a/Examples/MAX32690/OWM/OWM.launch b/Examples/MAX32690/OWM/OWM.launch
new file mode 100644
index 00000000000..d2b9e173c80
--- /dev/null
+++ b/Examples/MAX32690/OWM/OWM.launch
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Examples/MAX32690/OWM/README.md b/Examples/MAX32690/OWM/README.md
new file mode 100644
index 00000000000..a8f452edb03
--- /dev/null
+++ b/Examples/MAX32690/OWM/README.md
@@ -0,0 +1,37 @@
+## Description
+
+This example demonstrate how 1-Wire master can be configured and read slave ROM ID.
+
+
+## Software
+
+### Project Usage
+
+Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analogdevicesinc.github.io/msdk/USERGUIDE/)**.
+
+### Project-Specific Build Notes
+
+(None - this project builds as a standard example)
+
+## Required Connections
+
+- Connect a USB cable between the PC and the board connector.
+- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1.
+- Connect GND from EVK to the GND of DS2401
+- Connect V_AUX via a 1k Pull Up Resistor to the DATA (DQ) of DS2401
+- Connect 1-Wire pin in EVK (P0.8 for MAX32690 EVK) to the DATA (DQ) of DS2401
+
+## Expected Output
+
+```
+***** 1-Wire ROM (DS2401) Example *****
+This example reads ROM ID of 1-Wire slave device
+Place the jumper to select V_AUX to 3.3V (JP11 in MAX32690 EVK)
+Connect GND from EVK to the GND of DS2401
+Connect V_AUX via a 1k Pull Up Resistor to the DATA (DQ) of DS2401
+Connect 1-Wire pin in EVK (P0.8 for MAX32690 EVK) to the DATA (DQ) of DS2401
+
+
+ROM ID: 01 C7 9E 14 14 00 00 D0
+Example Succeeded
+```
\ No newline at end of file
diff --git a/Examples/MAX32690/OWM/main.c b/Examples/MAX32690/OWM/main.c
new file mode 100644
index 00000000000..e4c090fc47f
--- /dev/null
+++ b/Examples/MAX32690/OWM/main.c
@@ -0,0 +1,182 @@
+/**
+ * @file main.c
+ * @brief 1-Wire Master Example Application
+ */
+
+/******************************************************************************
+ *
+ * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
+ * Analog Devices, Inc.),
+ * Copyright (C) 2023-2025 Analog Devices, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+
+/* One wire API Test, for use with DS2401 */
+
+/* **** Includes **** */
+#include
+#include
+#include "mxc_errors.h"
+#include "owm.h"
+#include "mxc_delay.h"
+
+/* **** Globals **** */
+uint8_t utilcrc8;
+static uint8_t dscrc_table[] = {
+ 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33,
+ 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28,
+ 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124,
+ 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102,
+ 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196,
+ 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166,
+ 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237,
+ 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146,
+ 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209,
+ 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207,
+ 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87,
+ 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11,
+ 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169,
+ 247, 182, 232, 10, 84, 215, 137, 107, 53
+};
+
+/**
+ * @brief Reset crc8 to the value passed in
+ * @details 'portnum' - number 0 to MAX_PORTNUM-1. This number is provided to
+ * indicate the symbolic port number.
+ * @param 'reset' - data to set crc8 to
+ *
+ */
+void setcrc8(uint8_t reset)
+{
+ utilcrc8 = reset;
+ return;
+}
+
+/**
+ * @brief Update the Dallas Semiconductor One Wire CRC (utilcrc8) from the global
+ * variable utilcrc8 and the argument.
+ * @details 'portnum' - number 0 to MAX_PORTNUM-1. This number is provided to
+ * indicate the symbolic port number.
+ * @param 'x' - data byte to calculate the 8 bit crc from
+ *
+ * @returns The updated utilcrc8.
+ */
+uint8_t docrc8(uint8_t x)
+{
+ utilcrc8 = dscrc_table[utilcrc8 ^ x];
+ return utilcrc8;
+}
+
+/**
+ * @brief Set overdrive, read ROM ID, check and do a CRC check
+ *
+ * @param od overdrive command
+ *
+ * @returns 0 if no error, otherwise a negative number indicating error
+ *
+ */
+
+int32_t ow_romid_test(uint8_t od)
+{
+ uint8_t buffer[8];
+ uint8_t crc8;
+ int i;
+
+ /* Set 1-Wire to standard speed */
+ MXC_OWM_SetOverdrive(0);
+
+ /* Error if presence pulse not detected. */
+ if (MXC_OWM_Reset() == 1) {
+ //printf("OK: 1-wire devices reponded during the presence pulse\n");
+ } else {
+ return -2;
+ }
+
+ if (od) {
+ /* Send the overdrive command */
+ buffer[0] = OD_SKIP_ROM_COMMAND;
+ MXC_OWM_Write(buffer, 1);
+ MXC_OWM_SetOverdrive(1);
+
+ /* Error if presence pulse not detected. */
+ if (MXC_OWM_Reset() == 1) {
+ //printf("OK: 1-wire devices reponded during the presence pulse after Overdrive\n");
+ } else {
+ return -4;
+ }
+ }
+
+ /* Send read ROMID command */
+ buffer[0] = READ_ROM_COMMAND;
+ MXC_OWM_Write(buffer, 1);
+ /* Read the ROM ID */
+ memset(buffer, 0, sizeof(buffer));
+ if (MXC_OWM_Read(buffer, 8) < 0) {
+ return -5;
+ }
+
+ printf("ROM ID: ");
+ for (i = 0; i < 8; i++) {
+ printf("%02X ", buffer[i]);
+ }
+ printf("\n");
+ /* Check for zero family code in ROM ID */
+ if (buffer[0] == 0) {
+ return -6;
+ }
+
+ /* Check CRC8 of received ROM ID */
+ setcrc8(0);
+ for (i = 0; i < 8; i++) {
+ crc8 = docrc8(buffer[i]);
+ }
+
+ if (crc8 != 0x00) {
+ return -7;
+ }
+
+ return 0;
+}
+
+/* ************************************************************************** */
+int main(void)
+{
+ int retval = 0;
+ printf("***** 1-Wire ROM (DS2401) Example *****\n");
+ printf("This example reads ROM ID of 1-Wire slave device\n");
+ printf("Place the jumper to select V_AUX to 3.3V (JP11 in MAX32690 EVK)\n");
+ printf("Connect GND from EVK to the GND of DS2401\n");
+ printf("Connect V_AUX via a 1k Pull Up Resistor to the DATA (DQ) of DS2401\n");
+ printf("Connect 1-Wire pin in EVK (P0.8 for MAX32690 EVK) to the DATA (DQ) of DS2401\n");
+ printf("\n\n");
+
+ mxc_owm_cfg_t owm_cfg;
+ owm_cfg.int_pu_en = 1;
+ owm_cfg.ext_pu_mode = MXC_OWM_EXT_PU_ACT_HIGH;
+ owm_cfg.long_line_mode = 0;
+ MXC_OWM_Init(&owm_cfg);
+
+ /* Test overdrive */
+ retval = ow_romid_test(1);
+ //retval = ow_romid_test(0);
+ if (retval != 0) {
+ printf("Overdrive results: %d; %08x; %08x \n", retval, MXC_OWM->cfg, MXC_OWM->intfl);
+ printf("Example Failed\n");
+ return E_FAIL;
+ }
+
+ printf("Example Succeeded\n");
+ return E_NO_ERROR;
+}
diff --git a/Examples/MAX32690/OWM/project.mk b/Examples/MAX32690/OWM/project.mk
new file mode 100644
index 00000000000..b59b7d67740
--- /dev/null
+++ b/Examples/MAX32690/OWM/project.mk
@@ -0,0 +1,40 @@
+###############################################################################
+ #
+ # Copyright (C) 2024-2025 Analog Devices, Inc.
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ # http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ #
+ ##############################################################################
+# This file can be used to set build configuration
+# variables. These variables are defined in a file called
+# "Makefile" that is located next to this one.
+
+# For instructions on how to use this system, see
+# https://analogdevicesinc.github.io/msdk/USERGUIDE/#build-system
+
+# **********************************************************
+
+# Add your config here!
+
+# If you have secure version of MCU, set SBT=1 to generate signed binary
+# For more information on how sing process works, see
+# https://www.analog.com/en/education/education-library/videos/6313214207112.html
+SBT=0
+
+
+
+
+
+
+
+