diff --git a/.project b/.project index 4ba9658..47e5d3e 100644 --- a/.project +++ b/.project @@ -8,6 +8,7 @@ org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, diff --git a/.settings/ilg.gnuarmeclipse.managedbuild.cross.prefs b/.settings/ilg.gnuarmeclipse.managedbuild.cross.prefs index ba91ca5..1dd2f5f 100644 --- a/.settings/ilg.gnuarmeclipse.managedbuild.cross.prefs +++ b/.settings/ilg.gnuarmeclipse.managedbuild.cross.prefs @@ -1,3 +1,3 @@ -buildTools.path=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2\\bin +buildTools.path=D\:\\MCU\\GNU_Tools_ARM_Embedded\\6.2017-q1-update\\bin eclipse.preferences.version=1 -toolchain.path.1287942917=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2\\ +toolchain.path.1287942917=D\:\\MCU\\GNU_Tools_ARM_Embedded\\6.2017-q1-update\\ diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index baf2884..8203842 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -27,7 +27,7 @@ - + diff --git a/.settings/org.eclipse.cdt.codan.core.prefs b/.settings/org.eclipse.cdt.codan.core.prefs index 77386c2..b5248c6 100644 --- a/.settings/org.eclipse.cdt.codan.core.prefs +++ b/.settings/org.eclipse.cdt.codan.core.prefs @@ -1,67 +1,71 @@ 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},implicit\=>false} +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}} +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},implicit\=>false} +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}} +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}} +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}} +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}} +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.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},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false} +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} 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},unknown\=>false,exceptions\=>()} +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}} +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},skip\=>true} +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.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}} +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}} +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.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}} +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}} +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}} +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}} +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}} +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.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},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} +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}} +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}} +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}} +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}} +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}} +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}} +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},macro\=>true,exceptions\=>()} +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},paramNot\=>false} +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},else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=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}} +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},macro\=>true} +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},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=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},macro\=>true,exceptions\=>("@(\#)","$Id")} +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.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}} +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\\")"} diff --git a/.settings/org.eclipse.cdt.core.prefs b/.settings/org.eclipse.cdt.core.prefs index d24cd11..4fa9638 100644 --- a/.settings/org.eclipse.cdt.core.prefs +++ b/.settings/org.eclipse.cdt.core.prefs @@ -13,7 +13,7 @@ environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.18534 environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/PATH/value=${TL_PATH}\\bin;${MINGW_HOME}\\mingw64\\bin;${MINGW_HOME}\\bin;${MSYS_HOME}\\bin;${OCD_PATH};C\:/Program Files (x86)/Java/jre1.8.0_101/bin/client;C\:/Program Files (x86)/Java/jre1.8.0_101/bin;C\:/Program Files (x86)/Java/jre1.8.0_101/lib/i386;C\:\\MinGW\\mingw64\\bin;C\:\\MinGW\\msys\\1.0\\bin;C\:\\MinGW\\bin;D\:\\MCU\\STMicroelectronics\\st_toolset\\asm;C\:\\Python27;C\:\\Utils\\FarUtils;C\:\\Utils\\FarUtils\\HIEW810;C\:\\Windows;C\:\\Windows\\system32;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0;D\:\\MCU\\Microchip\\xc32\\v1.42\\bin;D\:\\MCU\\Microchip\\mplabc30\\v3.31\\bin;D\:\\MCU\\Microchip\\MPLAB C32 Suite\\bin;D\:\\MCU\\Microchip\\mplabc32\\v1.12\\bin;D\:\\MCU\\Microchip\\mcc18\\mpasm;D\:\\MCU\\Microchip\\mcc18\\bin;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\binC\:\\Program Files (x86)\\Git\\cmd;C\:\\Program Files (x86)\\Borland\\Delphi7\\Bin;C\:\\Program Files (x86)\\Borland\\Delphi7\\Projects\\Bpl\\;C\:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C\:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI;C\:\\Program Files (x86)\\Windows Live\\Shared;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files (x86)\\Windows Kits\\8.1\\Windows Performance Toolkit;C\:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn;C\:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn;C\:\\Program Files\\Microsoft DNX\\Dnvm;C\:\\Program Files\\IVI Foundation\\VISA\\Win64\\Bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\X86\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\X86\\bin;C\:\\Users\\PVV\\.dnx\\bin;C\:\\ProgramData\\chocolatey\\bin;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\Program Files (x86)\\QuickTime\\QTSystem;C\:\\Program Files\\nodejs;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\bin;C\:\\Program Files (x86)\\Git\\cmd;D\:\\MentorGraphics\\Sourcery_CodeBench_Lite_for_MIPS_ELF\\bin;C\:\\Eclipse environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/TL_PATH/delimiter=; environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/TL_PATH/operation=replace -environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2 +environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\6.2017-q1-update environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/append=true environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404.1853483235/appendContributed=true environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/MINGW_HOME/delimiter=; @@ -30,7 +30,7 @@ environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/PATH/ environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/PATH/value=${TL_PATH}\\bin;${MINGW_HOME}\\mingw64\\bin;${MINGW_HOME}\\bin;${MSYS_HOME}\\bin;${OCD_PATH};C\:/Program Files (x86)/Java/jre1.8.0_101/bin/client;C\:/Program Files (x86)/Java/jre1.8.0_101/bin;C\:/Program Files (x86)/Java/jre1.8.0_101/lib/i386;C\:\\MinGW\\mingw64\\bin;C\:\\MinGW\\msys\\1.0\\bin;C\:\\MinGW\\bin;D\:\\MCU\\STMicroelectronics\\st_toolset\\asm;C\:\\Python27;C\:\\Utils\\FarUtils;C\:\\Utils\\FarUtils\\HIEW810;C\:\\Windows;C\:\\Windows\\system32;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0;D\:\\MCU\\Microchip\\xc32\\v1.42\\bin;D\:\\MCU\\Microchip\\mplabc30\\v3.31\\bin;D\:\\MCU\\Microchip\\MPLAB C32 Suite\\bin;D\:\\MCU\\Microchip\\mplabc32\\v1.12\\bin;D\:\\MCU\\Microchip\\mcc18\\mpasm;D\:\\MCU\\Microchip\\mcc18\\bin;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\binC\:\\Program Files (x86)\\Git\\cmd;C\:\\Program Files (x86)\\Borland\\Delphi7\\Bin;C\:\\Program Files (x86)\\Borland\\Delphi7\\Projects\\Bpl\\;C\:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C\:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI;C\:\\Program Files (x86)\\Windows Live\\Shared;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files (x86)\\Windows Kits\\8.1\\Windows Performance Toolkit;C\:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn;C\:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn;C\:\\Program Files\\Microsoft DNX\\Dnvm;C\:\\Program Files\\IVI Foundation\\VISA\\Win64\\Bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\X86\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\X86\\bin;C\:\\Users\\PVV\\.dnx\\bin;C\:\\ProgramData\\chocolatey\\bin;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\Program Files (x86)\\QuickTime\\QTSystem;C\:\\Program Files\\nodejs;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\bin;C\:\\Program Files (x86)\\Git\\cmd;D\:\\MentorGraphics\\Sourcery_CodeBench_Lite_for_MIPS_ELF\\bin;C\:\\Eclipse environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/TL_PATH/delimiter=; environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/TL_PATH/operation=replace -environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2 +environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\6.2017-q1-update environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/append=true environment/project/cdt.managedbuild.config.gnu.mingw.exe.debug.1273936404/appendContributed=true environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/MINGW_HOME/delimiter=; @@ -47,6 +47,6 @@ environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/PATH environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/PATH/value=${TL_PATH}\\bin;${MINGW_HOME}\\mingw64\\bin;${MINGW_HOME}\\bin;${MSYS_HOME}\\bin;${OCD_PATH};C\:/Program Files (x86)/Java/jre1.8.0_101/bin/client;C\:/Program Files (x86)/Java/jre1.8.0_101/bin;C\:/Program Files (x86)/Java/jre1.8.0_101/lib/i386;C\:\\MinGW\\mingw64\\bin;C\:\\MinGW\\msys\\1.0\\bin;C\:\\MinGW\\bin;D\:\\MCU\\STMicroelectronics\\st_toolset\\asm;C\:\\Python27;C\:\\Utils\\FarUtils;C\:\\Utils\\FarUtils\\HIEW810;C\:\\Windows;C\:\\Windows\\system32;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0;D\:\\MCU\\Microchip\\xc32\\v1.42\\bin;D\:\\MCU\\Microchip\\mplabc30\\v3.31\\bin;D\:\\MCU\\Microchip\\MPLAB C32 Suite\\bin;D\:\\MCU\\Microchip\\mplabc32\\v1.12\\bin;D\:\\MCU\\Microchip\\mcc18\\mpasm;D\:\\MCU\\Microchip\\mcc18\\bin;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\binC\:\\Program Files (x86)\\Git\\cmd;C\:\\Program Files (x86)\\Borland\\Delphi7\\Bin;C\:\\Program Files (x86)\\Borland\\Delphi7\\Projects\\Bpl\\;C\:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C\:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI;C\:\\Program Files (x86)\\Windows Live\\Shared;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files (x86)\\Windows Kits\\8.1\\Windows Performance Toolkit;C\:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn;C\:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C\:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn;C\:\\Program Files\\Microsoft DNX\\Dnvm;C\:\\Program Files\\IVI Foundation\\VISA\\Win64\\Bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SKWorkshop\\Marco\\X86\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\HMI\\bin;D\:\\Automation\\Samcoon\\SK035AE\\SKWorkshop\\Marco\\X86\\bin;C\:\\Users\\PVV\\.dnx\\bin;C\:\\ProgramData\\chocolatey\\bin;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\Program Files (x86)\\QuickTime\\QTSystem;C\:\\Program Files\\nodejs;D\:\\WRK\\TortoiseGit\\bin;C\:\\Utils\\TortoiseSVN\\bin;C\:\\Program Files (x86)\\Git\\cmd;D\:\\MentorGraphics\\Sourcery_CodeBench_Lite_for_MIPS_ELF\\bin;C\:\\Eclipse environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/TL_PATH/delimiter=; environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/TL_PATH/operation=replace -environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\5.4_2016q2 +environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/TL_PATH/value=D\:\\MCU\\GNU_Tools_ARM_Embedded\\6.2017-q1-update environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/append=true environment/project/cdt.managedbuild.config.gnu.mingw.exe.release.510381534/appendContributed=true diff --git a/USDK/component/common/api/at_cmd/atcmd_sys.c b/USDK/component/common/api/at_cmd/atcmd_sys.c index 4400517..01ea88c 100644 --- a/USDK/component/common/api/at_cmd/atcmd_sys.c +++ b/USDK/component/common/api/at_cmd/atcmd_sys.c @@ -707,14 +707,14 @@ void fATSP(void *arg) { switch (argv[1][0]) { case 'a': // acquire { - pmu_acquire_wakelock(WAKELOCK_OS); + acquire_wakelock(WAKELOCK_OS); //at_printf("\r\n[ATSP] wakelock:0x%08x", get_wakelock_status()); break; } case 'r': // release { - pmu_release_wakelock(WAKELOCK_OS); + release_wakelock(WAKELOCK_OS); //at_printf("\r\n[ATSP] wakelock:0x%08x", get_wakelock_status()); break; } @@ -1110,7 +1110,7 @@ void fATSL(void *arg) { { if (argc == 3) { lock_id = strtoul(argv[2], NULL, 16); - pmu_acquire_wakelock(lock_id); + acquire_wakelock(lock_id); } AT_DBG_MSG(AT_FLAG_OS, AT_DBG_ALWAYS, "[ATSL] wakelock:0x%08x", pmu_get_wakelock_status()); @@ -1121,7 +1121,7 @@ void fATSL(void *arg) { { if (argc == 3) { lock_id = strtoul(argv[2], NULL, 16); - pmu_release_wakelock(lock_id); + release_wakelock(lock_id); } AT_DBG_MSG(AT_FLAG_OS, AT_DBG_ALWAYS, "[ATSL] wakelock:0x%08x", pmu_get_wakelock_status()); diff --git a/USDK/component/common/api/at_cmd/log_service.c b/USDK/component/common/api/at_cmd/log_service.c index 9da3a3a..eb93820 100644 --- a/USDK/component/common/api/at_cmd/log_service.c +++ b/USDK/component/common/api/at_cmd/log_service.c @@ -427,7 +427,7 @@ void log_service(void *param) log_service_unlock(); #endif #if defined(configUSE_WAKELOCK_PMU) && (configUSE_WAKELOCK_PMU == 1) - pmu_release_wakelock(WAKELOCK_LOGUART); + release_wakelock(WAKELOCK_LOGUART); #endif } } diff --git a/USDK/component/common/api/wifi/wifi_util.c b/USDK/component/common/api/wifi/wifi_util.c index 00b860a..f9ae17a 100644 --- a/USDK/component/common/api/wifi/wifi_util.c +++ b/USDK/component/common/api/wifi/wifi_util.c @@ -13,7 +13,12 @@ #endif #include +#include "sdk_ver.h" +#if SDK_VER_NUM < 0x4000 #define USE_WIFI_ADAPTER 1 // использовать прямое обращение в тело драйвера WiFi +#else +#define USE_WIFI_ADAPTER 0 // не использовать прямое обращение в тело драйвера WiFi (ещё не согласована struct adapter) +#endif int iw_ioctl(const char * ifname, unsigned long request, struct iwreq * pwrq) { memcpy(pwrq->ifr_name, ifname, 5); @@ -32,7 +37,7 @@ int iw_ioctl(const char * ifname, unsigned long request, struct iwreq * pwrq) { return ret; } -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER extern Rltk_wlan_t rltk_wlan_info[2]; // in wrapper.h LOCAL _adapter * get_padapter(const char *ifname) { if(ifname[4] == '0') { @@ -46,7 +51,7 @@ LOCAL _adapter * get_padapter(const char *ifname) { /* ssid = NULL -> not connected */ int wext_get_ssid(const char *ifname, __u8 *ssid) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); rtw_result_t ret = RTW_ERROR; if(pad != NULL && (pad->mlmepriv.fw_state & 0x41) != 0) { @@ -250,7 +255,7 @@ int wext_get_mac_address(const char *ifname, char * mac) #endif int wext_enable_powersave(const char *ifname, __u8 ips_mode, __u8 lps_mode) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); rtw_result_t ret = RTW_ERROR; if(pad) { @@ -303,7 +308,7 @@ int wext_disable_powersave(const char *ifname) { int wext_set_tdma_param(const char *ifname, __u8 slot_period, __u8 rfon_period_len_1, __u8 rfon_period_len_2, __u8 rfon_period_len_3) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); rtw_result_t ret = RTW_ERROR; if(pad) { @@ -336,7 +341,7 @@ int wext_set_tdma_param(const char *ifname, __u8 slot_period, } int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); rtw_result_t ret = RTW_ERROR; if(pad) { @@ -365,7 +370,7 @@ int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim) { } int wext_get_lps_dtim(const char *ifname, __u8 *lps_dtim) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); rtw_result_t ret = RTW_ERROR; if(pad) { @@ -506,7 +511,7 @@ int wext_get_ap_info(const char *ifname, rtw_bss_info_t * ap_info, #endif int wext_set_mode(const char *ifname, int mode) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); int nwm; if(rtw_pwr_wakeup(pad) && pad->hw_init_completed) { @@ -540,7 +545,7 @@ int wext_set_mode(const char *ifname, int mode) { } int wext_get_mode(const char *ifname, int *mode) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); rtw_result_t ret = RTW_ERROR; if(pad) { @@ -563,7 +568,7 @@ int wext_get_mode(const char *ifname, int *mode) { } int wext_set_ap_ssid(const char *ifname, const __u8 *ssid, __u16 ssid_len) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER struct net_device * pdev = rltk_wlan_info[0].dev; if(ifname[4] != '0') pdev = rltk_wlan_info[1].dev; @@ -593,7 +598,7 @@ int wext_set_country(const char *ifname, rtw_country_code_t country_code) { } int wext_get_rssi(const char *ifname, int *rssi) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); rtw_result_t ret = RTW_ERROR; if(pad) { @@ -671,7 +676,7 @@ int wext_set_channel(const char *ifname, __u8 ch) { } int wext_get_channel(const char *ifname, __u8 *ch) { -#ifdef USE_WIFI_ADAPTER +#if USE_WIFI_ADAPTER _adapter * pad = get_padapter(ifname); rtw_result_t ret = RTW_ERROR; if(pad) { diff --git a/USDK/component/common/api/wifi_api.c b/USDK/component/common/api/wifi_api.c index ca5909b..73b68b4 100644 --- a/USDK/component/common/api/wifi_api.c +++ b/USDK/component/common/api/wifi_api.c @@ -248,16 +248,16 @@ LOCAL uint8 chk_ap_netif_num(void) extern Rltk_wlan_t rltk_wlan_info[2]; // in wrapper.h -/*LOCAL _adapter * get_padapter(int num) { +/*LOCAL _adapter * get_padaptern(int num) { if(rltk_wlan_info[num].enable) { return *(_adapter **)((rltk_wlan_info[0].dev)->priv); } return NULL; };*/ -#define get_padapter(num) (*(_adapter **)((rltk_wlan_info[num].dev)->priv)); +#define get_padaptern(num) (*(_adapter **)((rltk_wlan_info[num].dev)->priv)); -LOCAL rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim ) { - _adapter * pad = get_padapter(adapter_num); +rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim ) { + _adapter * pad = get_padaptern(adapter_num); rtw_result_t ret = RTW_ERROR; if(pad) { ret = rtw_pm_set_lps_dtim(pad, lps_dtim); @@ -265,8 +265,13 @@ LOCAL rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim ) { return ret; } -LOCAL rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8 lps_mode) { - _adapter * pad = get_padapter(adapter_num); +int _wext_get_lps_dtim(int adapter_num) { + _adapter * pad = get_padaptern(adapter_num); + return rtw_pm_get_lps_dtim(pad); +} + +rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8 lps_mode) { + _adapter * pad = get_padaptern(adapter_num); rtw_result_t ret = RTW_ERROR; if(pad) { ret = rtw_pm_set_ips(pad, ips_mode); // 2 режима 1,2 ! @@ -280,7 +285,7 @@ LOCAL rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8 LOCAL int _wext_cmp_ssid(int adapter_num, uint8 *ssid) { - _adapter * pad = get_padapter(adapter_num); + _adapter * pad = get_padaptern(adapter_num); int ret = 0; if((pad != NULL) && (pad->mlmepriv.fw_state & 0x41) != 0) { int len = pad->mlmepriv.cur_network.network.Ssid.SsidLength; @@ -295,7 +300,7 @@ LOCAL int _wext_cmp_ssid(int adapter_num, uint8 *ssid) #ifdef NOT_USE_CALLS LOCAL rtw_result_t _wext_get_mode(int adapter_num, int *mode) { - _adapter * pad = get_padapter(adapter_num); + _adapter * pad = get_padaptern(adapter_num); rtw_result_t ret = RTW_ERROR; if(pad) { uint16 f = pad->mlmepriv.fw_state; @@ -310,7 +315,7 @@ LOCAL rtw_result_t _wext_get_mode(int adapter_num, int *mode) { LOCAL rtw_result_t _wext_get_channel(int adapter_num, uint8 *ch) { - _adapter * pad = get_padapter(adapter_num); + _adapter * pad = get_padaptern(adapter_num); rtw_result_t ret = RTW_ERROR; if(pad) { if(pad->mlmepriv.fw_state & 1) { diff --git a/USDK/component/common/api/wifi_api.h b/USDK/component/common/api/wifi_api.h index 156ac93..f52821e 100644 --- a/USDK/component/common/api/wifi_api.h +++ b/USDK/component/common/api/wifi_api.h @@ -185,4 +185,8 @@ rtw_result_t api_wifi_scan(api_scan_result_handler_t scan_result_cb); void wifi_close_scan(void); +rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim); +int _wext_get_lps_dtim(int adapter_num); +rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8 lps_mode); + #endif // _WIFI_API_H_ diff --git a/USDK/component/common/drivers/wlan/realtek/include/wifi_lib.h b/USDK/component/common/drivers/wlan/realtek/include/wifi_lib.h index 2ecfeee..f92608d 100644 --- a/USDK/component/common/drivers/wlan/realtek/include/wifi_lib.h +++ b/USDK/component/common/drivers/wlan/realtek/include/wifi_lib.h @@ -1977,6 +1977,53 @@ struct hal_ops { uint8_t (*hal_get_tx_buff_rsvd_page_num)(_adapter *, bool); }; + /* 138 */ +typedef enum _P2P_ROLE // : __int32 +{ + P2P_ROLE_DISABLE = 0x0, + P2P_ROLE_DEVICE = 0x1, + P2P_ROLE_CLIENT = 0x2, + P2P_ROLE_GO = 0x3, +} P2P_ROLE; + +typedef enum P2P_STATE // : __int32 +{ + P2P_STATE_NONE = 0x0, + P2P_STATE_IDLE = 0x1, + P2P_STATE_LISTEN = 0x2, + P2P_STATE_SCAN = 0x3, + P2P_STATE_FIND_PHASE_LISTEN = 0x4, + P2P_STATE_FIND_PHASE_SEARCH = 0x5, + P2P_STATE_TX_PROVISION_DIS_REQ = 0x6, + P2P_STATE_RX_PROVISION_DIS_RSP = 0x7, + P2P_STATE_RX_PROVISION_DIS_REQ = 0x8, + P2P_STATE_GONEGO_ING = 0x9, + P2P_STATE_GONEGO_OK = 0xA, + P2P_STATE_GONEGO_FAIL = 0xB, + P2P_STATE_RECV_INVITE_REQ_MATCH = 0xC, + P2P_STATE_PROVISIONING_ING = 0xD, + P2P_STATE_PROVISIONING_DONE = 0xE, + P2P_STATE_TX_INVITE_REQ = 0xF, + P2P_STATE_RX_INVITE_RESP = 0x10, + P2P_STATE_RECV_INVITE_REQ_DISMATCH = 0x11, + P2P_STATE_RECV_INVITE_REQ_GO = 0x12, + P2P_STATE_RECV_INVITE_REQ_JOIN = 0x13, + P2P_STATE_FORMATION_COMPLETE = 0x14, + P2P_STATE_CONNECTED = 0x15, +} P2P_STATE; + + +struct wifidirect_info +{ + P2P_ROLE role; + P2P_STATE p2p_state; + uint8_t baction_tx_pending; + uint8_t pending_peer[6]; + struct xmit_frame *pending_action; + _timer pre_tx_scan_timer; +}; + + struct _atr_aligned4_ _ADAPTER { uint16_t HardwareType; uint16_t interface_type; //+2 @@ -1994,6 +2041,9 @@ struct _atr_aligned4_ _ADAPTER { struct registry_priv registrypriv; struct pwrctrl_priv pwrctrlpriv; // pwrctrlpriv.bInternalAutoSuspend //+5061 struct eeprom_priv eeprompriv; + + struct wifidirect_info wdinfo; + PVOID HalData; uint32_t hal_data_sz; struct hal_ops HalFunc; @@ -2024,14 +2074,22 @@ struct _atr_aligned4_ _ADAPTER { uint8_t bRxRSSIDisplay; _adapter *pbuddy_adapter; //+6056 _mutex *hw_init_mutex; //+6060 + +_mutex *ph2c_fwcmd_mutex; + uint8_t isprimary; //+6064 uint8_t adapter_type; //+6065 uint8_t iface_type; //+6056 - _mutex *ph2c_fwcmd_mutex; //+6068 +// _mutex *ph2c_fwcmd_mutex; //+6068 _mutex *psetch_mutex; //+6072 _mutex *psetbw_mutex; //+6076 struct co_data_priv *pcodatapriv; //+6080 uint8_t fix_rate; //+6084 + + uint8_t ra_mask_user_en; + uint32_t ra_mask_define; + uint8_t auto_rate_fallback_user_en; + }; // [6088] (!) typedef struct _ADAPTER *PADAPTER; // if sizeof(struct _ADAPTER) != 6088 #error "Check aligned struct!" ! diff --git a/USDK/component/common/drivers/wlan/realtek/include/wlan_lib.h b/USDK/component/common/drivers/wlan/realtek/include/wlan_lib.h index 33364c2..4711ae8 100644 --- a/USDK/component/common/drivers/wlan/realtek/include/wlan_lib.h +++ b/USDK/component/common/drivers/wlan/realtek/include/wlan_lib.h @@ -1287,8 +1287,10 @@ extern void LPS_Enter(PADAPTER padapter); extern void LPS_Leave(PADAPTER padapter); extern void LeaveAllPowerSaveMode(PADAPTER Adapter); extern void rtw_init_pwrctrl_priv(PADAPTER padapter); -extern void rtw_free_pwrctrl_priv(PADAPTER adapter); -extern int rtw_pwr_wakeup(_adapter *padapter, uint32_t ips_deffer_ms, const char *caller); +extern void rtw_free_pwrctrl_priv(PADAPTER adapter); +extern int _rtw_pwr_wakeup(_adapter *padapter, uint32_t ips_deffer_ms, const char *caller); +#define RTW_PWR_STATE_CHK_INTERVAL 2000 +#define rtw_pwr_wakeup(adapter) _rtw_pwr_wakeup(adapter, RTW_PWR_STATE_CHK_INTERVAL, __FUNCTION__) extern int rtw_pm_set_lps(_adapter *padapter, int mode); extern int rtw_pm_set_ips(_adapter *padapter, int mode); extern int rtw_pm_set_tdma_param(_adapter *padapter, uint8_t tdma_slot_period, uint8_t tdma_rfon_period_len_1, uint8_t tdma_rfon_period_len_2, uint8_t tdma_rfon_period_len_3); diff --git a/USDK/component/common/mbed/hal_ext/sys_api.h b/USDK/component/common/mbed/hal_ext/sys_api.h index 46fbabb..9ae2785 100644 --- a/USDK/component/common/mbed/hal_ext/sys_api.h +++ b/USDK/component/common/mbed/hal_ext/sys_api.h @@ -34,8 +34,13 @@ void sys_recover_ota_signature(void); void sys_log_uart_on(void); void sys_log_uart_off(void); void sys_adc_calibration(u8 write, u16 *offset, u16 *gain); -u8 sys_is_sdram_power_on(void); +#ifdef CONFIG_SDR_EN void sys_sdram_off(void); +u8 sys_is_sdram_power_on(void); +#else +#define sys_sdram_off() +#define sys_is_sdram_power_on() (0) +#endif /** * @brief system software reset diff --git a/USDK/component/common/mbed/targets/hal/rtl8195a/sys_api.c b/USDK/component/common/mbed/targets/hal/rtl8195a/sys_api.c index 85b152a..a9416b3 100644 --- a/USDK/component/common/mbed/targets/hal/rtl8195a/sys_api.c +++ b/USDK/component/common/mbed/targets/hal/rtl8195a/sys_api.c @@ -203,28 +203,16 @@ void sys_reset(void) (1 << 2)); // SYSRESETREQ } +#ifdef CONFIG_SDR_EN u8 sys_is_sdram_power_on(void) { -#ifdef CONFIG_SDR_EN -// u8 ison = 0; - -//#if defined ( __ICCARM__ ) return IsSdrPowerOn(); -//#endif - -// return ison; -#else - return 0; -#endif } void sys_sdram_off(void) { -#ifdef CONFIG_SDR_EN -//#if defined ( __ICCARM__ ) if (IsSdrPowerOn()) { SdrPowerOff(); } -//#endif -#endif } +#endif diff --git a/USDK/component/os/freertos/freertos_pmu.c b/USDK/component/os/freertos/freertos_pmu.c deleted file mode 100644 index ad81e00..0000000 --- a/USDK/component/os/freertos/freertos_pmu.c +++ /dev/null @@ -1,298 +0,0 @@ -/* -* SDK ver 3.5.2 ! -*/ -#include "FreeRTOS.h" - -#include "freertos_pmu.h" - -#include - -#include "platform_autoconf.h" -#include "sys_api.h" -#include "sleep_ex_api.h" -#include "gpio_api.h" -#include "us_ticker_api.h" - -#include "task.h" - -#ifndef portNVIC_SYSTICK_CURRENT_VALUE_REG -#define portNVIC_SYSTICK_CURRENT_VALUE_REG ( * ( ( volatile uint32_t * ) 0xe000e018 ) ) -#endif - -uint32_t missing_tick = 0; - -#define FREERTOS_PMU_DISABLE_LOGUART_IN_TICKLESS (0) - -static uint32_t wakelock = DEFAULT_WAKELOCK; -static uint32_t wakeup_event = DEFAULT_WAKEUP_EVENT; - -freertos_sleep_callback pre_sleep_callback[32] = {NULL}; -freertos_sleep_callback post_sleep_callback[32] = {NULL}; - -#if (configGENERATE_RUN_TIME_STATS == 1) -static u8 last_wakelock_state[32] = { - DEFAULT_WAKELOCK & 0x01, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 -}; -static u32 last_acquire_wakelock_time[32] = {0}; -static u32 hold_wakelock_time[32] = {0}; -static u32 base_sys_time = 0; -static u32 sys_sleep_time = 0; -#endif - -#if defined(FREERTOS_PMU_TICKLESS_PLL_RESERVED) && (FREERTOS_PMU_TICKLESS_PLL_RESERVED==1) -unsigned char reserve_pll = 1; -#else -unsigned char reserve_pll = 0; -#endif - - -/* ++++++++ FreeRTOS macro implementation ++++++++ */ - -/* - * It is called in idle task. - * - * @return true : System is ready to check conditions that if it can enter sleep. - * false : System keep awake. - **/ -int freertos_ready_to_sleep() { - return wakelock == 0; -} - -/* - * It is called when freertos is going to sleep. - * At this moment, all sleep conditons are satisfied. All freertos' sleep pre-processing are done. - * - * @param expected_idle_time : The time that FreeRTOS expect to sleep. - * If we set this value to 0 then FreeRTOS will do nothing in its sleep function. - **/ -void freertos_pre_sleep_processing(unsigned int *expected_idle_time) { - -#ifdef CONFIG_SOC_PS_MODULE - - uint32_t i; - uint32_t stime; - uint32_t tick_before_sleep; - uint32_t tick_after_sleep; - uint32_t tick_passed; - uint32_t backup_systick_reg; - -#if (configGENERATE_RUN_TIME_STATS == 1) - uint32_t kernel_tick_before_sleep; - uint32_t kernel_tick_after_sleep; -#endif - - /* To disable freertos sleep function and use our sleep function, - * we can set original expected idle time to 0. */ - stime = *expected_idle_time; - *expected_idle_time = 0; - - for (i=0; i<32; i++) { - if ( pre_sleep_callback[i] != NULL) { - pre_sleep_callback[i]( stime ); - } - } - -#if (configGENERATE_RUN_TIME_STATS == 1) - kernel_tick_before_sleep = osKernelSysTick(); -#endif - - // Store gtimer timestamp before sleep - tick_before_sleep = us_ticker_read(); - -#if (FREERTOS_PMU_DISABLE_LOGUART_IN_TICKLESS) - // config gpio on log uart tx for pull ctrl - HAL_GPIO_PIN gpio_log_uart_tx; - gpio_log_uart_tx.pin_name = gpio_set(PB_0); - gpio_log_uart_tx.pin_mode = DOUT_PUSH_PULL; - HAL_GPIO_Init(&gpio_log_uart_tx); - GpioFunctionChk(PB_0, ENABLE); - - sys_log_uart_off(); - HAL_GPIO_WritePin(&gpio_log_uart_tx, 1); // pull up log uart tx to avoid power lekage -#endif - - backup_systick_reg = portNVIC_SYSTICK_CURRENT_VALUE_REG; - -#ifdef CONFIG_SDR_EN - // sleep -#if defined(FREERTOS_PMU_TICKLESS_SUSPEND_SDRAM) && (FREERTOS_PMU_TICKLESS_SUSPEND_SDRAM!=0) - sleep_ex_selective(wakeup_event, stime, reserve_pll, IsSdrPowerOn()); -#else - sleep_ex_selective(wakeup_event, stime, reserve_pll, 0); -#endif -#else - sleep_ex_selective(wakeup_event, stime, reserve_pll, 0); -#endif // CONFIG_SDR_EN - - portNVIC_SYSTICK_CURRENT_VALUE_REG = backup_systick_reg; - -#if (FREERTOS_PMU_DISABLE_LOGUART_IN_TICKLESS) - sys_log_uart_off(); - sys_log_uart_on(); -#endif - - // update kernel tick by calculating passed tick from gtimer - { - // get current gtimer timestamp - tick_after_sleep = us_ticker_read(); - - // calculated passed time - if (tick_after_sleep > tick_before_sleep) { - tick_passed = tick_after_sleep - tick_before_sleep; - } else { - // overflow - tick_passed = (0xffffffff - tick_before_sleep) + tick_after_sleep; - } - - /* If there is a rapid interrupt (<1ms), it makes tick_passed less than 1ms. - * The tick_passed would be rounded and make OS can't step tick. - * We collect the rounded tick_passed into missing_tick and step tick properly. - * */ - tick_passed += missing_tick; - if (tick_passed > stime * 1000) { - missing_tick = tick_passed - stime * 1000; - tick_passed = stime * 1000; - } else { - missing_tick = tick_passed % 1000; - } - - // update kernel tick - vTaskStepTick( tick_passed/1000 ); - } - -#if (configGENERATE_RUN_TIME_STATS == 1) - kernel_tick_after_sleep = osKernelSysTick(); - sys_sleep_time += (kernel_tick_after_sleep - kernel_tick_before_sleep); -#endif - - for (i=0; i<32; i++) { - if ( post_sleep_callback[i] != NULL) { - post_sleep_callback[i]( stime ); - } - } - -#else - // If PS is not enabled, then use freertos sleep function -#endif -} - -void freertos_post_sleep_processing(unsigned int *expected_idle_time) { -#ifndef configSYSTICK_CLOCK_HZ - *expected_idle_time = 1 + ( portNVIC_SYSTICK_CURRENT_VALUE_REG / ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) ); -#else - *expected_idle_time = 1 + ( portNVIC_SYSTICK_CURRENT_VALUE_REG / ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ ) ); -#endif -} -/* -------- FreeRTOS macro implementation -------- */ - -void acquire_wakelock(uint32_t lock_id) { - - wakelock |= lock_id; - -#if (configGENERATE_RUN_TIME_STATS == 1) - u32 i; - u32 current_timestamp = osKernelSysTick(); - for (i=0; i<32; i++) { - if ( (1< 0) { - sprintf(pcWriteBuffer, "%x\t\t%d\r\n", i, hold_wakelock_time[i]); - } - } - pcWriteBuffer += strlen( pcWriteBuffer ); - } - sprintf(pcWriteBuffer, "time passed: %d ms, system sleep %d ms\r\n", current_timestamp - base_sys_time, sys_sleep_time); -} - -void clean_wakelock_stat() { - u32 i; - base_sys_time = osKernelSysTick(); - for (i=0; i<32; i++) { - hold_wakelock_time[i] = 0; - if (last_wakelock_state[i] == 1) { - last_acquire_wakelock_time[i] = base_sys_time; - } - } - sys_sleep_time = 0; -} -#endif - -void add_wakeup_event(uint32_t event) { - wakeup_event |= event; -} - -void del_wakeup_event(uint32_t event) { - wakeup_event &= ~event; - // To fulfill tickless design, system timer is required to be wakeup event - wakeup_event |= SLEEP_WAKEUP_BY_STIMER; -} - -void register_sleep_callback_by_module( unsigned char is_pre_sleep, freertos_sleep_callback sleep_cb, uint32_t module ) { - u32 i; - for (i=0; i<32; i++) { - if ( module & BIT(i) ) { - if (is_pre_sleep) { - pre_sleep_callback[i] = sleep_cb; - } else { - post_sleep_callback[i] = sleep_cb; - } - } - } -} - -void register_pre_sleep_callback( freertos_sleep_callback pre_sleep_cb ) { - register_sleep_callback_by_module(1, pre_sleep_cb, 0x00008000); -} - -void register_post_sleep_callback( freertos_sleep_callback post_sleep_cb ) { - register_sleep_callback_by_module(0, post_sleep_cb, 0x00008000); -} - -void set_pll_reserved(unsigned char reserve) { - reserve_pll = reserve; -} diff --git a/USDK/component/os/freertos/freertos_pmu.h b/USDK/component/os/freertos/freertos_pmu.h index f8bd482..be9b067 100644 --- a/USDK/component/os/freertos/freertos_pmu.h +++ b/USDK/component/os/freertos/freertos_pmu.h @@ -41,20 +41,20 @@ typedef enum PMU_DEVICE { #ifdef CONFIG_PLATFORM_8711B typedef enum { - PMU_OS =0, + PMU_OS =0, PMU_WLAN_DEVICE =1, PMU_LOGUART_DEVICE =2, PMU_SDIO_DEVICE =3, - PMU_UART0_DEVICE =4, - PMU_UART1_DEVICE =5, + PMU_UART0_DEVICE =4, + PMU_UART1_DEVICE =5, PMU_I2C0_DEVICE =6, PMU_I2C1_DEVICE =7, PMU_USOC_DEVICE =8, PMU_DONGLE_DEVICE =9, PMU_RTC_DEVICE =10, PMU_CONSOL_DEVICE =11, - PMU_ADC_DEVICE =12, + PMU_ADC_DEVICE =12, PMU_DEV_USER_BASE =16, PMU_MAX =31 @@ -81,7 +81,9 @@ typedef uint32_t (*PSM_HOOK_FUN)( unsigned int, void* param_ptr ); * * @param nDeviceId : The bit which is attempt to add into wakelock */ -void pmu_acquire_wakelock(uint32_t nDeviceId); +//void pmu_acquire_wakelock(uint32_t nDeviceId); +void acquire_wakelock(uint32_t flg); +#define pmu_acquire_wakelock(nDeviceId) acquire_wakelock(1<<(nDeviceId)) /** Release wakelock * @@ -89,13 +91,17 @@ void pmu_acquire_wakelock(uint32_t nDeviceId); * * @param nDeviceId : The bit which is attempt to remove from wakelock */ -void pmu_release_wakelock(uint32_t nDeviceId); +//void pmu_release_wakelock(uint32_t nDeviceId); +void release_wakelock(uint32_t flg); +#define pmu_release_wakelock(nDeviceId) release_wakelock(1<<(nDeviceId)) /** Get current wakelock bit map value * * @return : the current wakelock bit map value */ -uint32_t pmu_get_wakelock_status(void); +//uint32_t pmu_get_wakelock_status(void); +uint32_t get_wakelock_status(void); +#define pmu_get_wakelock_status get_wakelock_status #if (configGENERATE_RUN_TIME_STATS == 1) diff --git a/USDK/component/os/freertos/freertos_service.c b/USDK/component/os/freertos/freertos_service.c index 235bdeb..5ea00fe 100644 --- a/USDK/component/os/freertos/freertos_service.c +++ b/USDK/component/os/freertos/freertos_service.c @@ -360,12 +360,15 @@ static void _freertos_msleep_os(int ms) #endif } +extern void wait_us(int us); // До 2.147483648 секунды! + static void _freertos_usleep_os(int us) { #if defined(STM32F2XX) || defined(STM32F4XX) || defined(STM32F10X_XL) // FreeRTOS does not provide us level delay. Use busy wait WLAN_BSP_UsLoop(us); #elif defined(CONFIG_PLATFORM_8195A) + wait_us(us); //DBG_ERR("%s: Please Implement micro-second delay\n", __FUNCTION__); #elif defined(CONFIG_PLATFORM_8711B) DelayUs(us); @@ -385,7 +388,8 @@ static void _freertos_udelay_os(int us) // FreeRTOS does not provide us level delay. Use busy wait WLAN_BSP_UsLoop(us); #elif defined(CONFIG_PLATFORM_8195A) - HalDelayUs(us); +// HalDelayUs(us); + wait_us(us); #elif defined(CONFIG_PLATFORM_8711B) DelayUs(us); #else diff --git a/USDK/component/soc/realtek/8195a/fwlib/rtl8195a/rtl8195a_uart.h b/USDK/component/soc/realtek/8195a/fwlib/rtl8195a/rtl8195a_uart.h index 6a5f25b..c0786ab 100644 --- a/USDK/component/soc/realtek/8195a/fwlib/rtl8195a/rtl8195a_uart.h +++ b/USDK/component/soc/realtek/8195a/fwlib/rtl8195a/rtl8195a_uart.h @@ -45,11 +45,11 @@ IIR[3:0]: typedef enum { RU_IIR_MODEM_STATUS = 0, //Clear to send or data set ready or ring indicator or data carrier detect. RU_IIR_NO_PENDING = 1, - RU_IIR_THR_EMPTY = 2, // TX FIFO level lower than threshold or FIFO empty - RU_IIR_RX_RDY = 4, // RX data ready - RU_IIR_RX_LINE_STATUS = 6, // Overrun/parity/framing errors or break interrupt + RU_IIR_THR_EMPTY = 2, // TX FIFO level lower than threshold or FIFO empty + RU_IIR_RX_RDY = 4, // RX data ready + RU_IIR_RX_LINE_STATUS = 6, // Overrun/parity/framing errors or break interrupt RU_IIR_BUSY = 7, - RU_IIR_CHAR_TIMEOUT = 12 // timeout: Rx data ready but no read + RU_IIR_CHAR_TIMEOUT = 12 // timeout: Rx data ready but no read } RUART_INT_ID; #define RUART_IIR_INT_PEND 0x01 #define RUART_IIR_INT_ID (0x07<<1) //011(3), 010(2), 110(6), 001(1), 000(0) @@ -57,17 +57,17 @@ typedef enum { #define RUART_FIFO_CTL_REG_OFF 0x08 //[W] // Define FIFO Control Register Bits typedef enum { - RU_FCR_FIFO_EN = BIT0, // FIFO Enable. - RU_FCR_RST_RX = BIT1, // RCVR FIFO Reset, self clear - RU_FCR_RST_TX = BIT2, // XMIT FIFO Reset, self clear - RU_FCR_TX_TRIG_EMP = 0, // TX Empty Trigger: FIFO empty - RU_FCR_TX_TRIG_2CH = BIT4, // TX Empty Trigger: 2 characters in the FIFO - RU_FCR_TX_TRIG_QF = BIT5, // TX Empty Trigger: FIFO 1/4 full - RU_FCR_TX_TRIG_HF = (BIT5|BIT4), // TX Empty Trigger: FIFO 1/2 full - RU_FCR_TX_TRIG_MASK = (BIT5|BIT4), // TX Empty Trigger Bit Mask - RU_FCR_RX_TRIG_1CH = 0, // RCVR Trigger: 1 character in the FIFO - RU_FCR_RX_TRIG_QF = BIT6, // RCVR Trigger: FIFO 1/4 full - RU_FCR_RX_TRIG_HF = BIT7, // RCVR Trigger: FIFO 1/2 full + RU_FCR_FIFO_EN = BIT0, // FIFO Enable. + RU_FCR_RST_RX = BIT1, // RCVR FIFO Reset, self clear + RU_FCR_RST_TX = BIT2, // XMIT FIFO Reset, self clear + RU_FCR_TX_TRIG_EMP = 0, // TX Empty Trigger: FIFO empty + RU_FCR_TX_TRIG_2CH = BIT4, // TX Empty Trigger: 2 characters in the FIFO + RU_FCR_TX_TRIG_QF = BIT5, // TX Empty Trigger: FIFO 1/4 full + RU_FCR_TX_TRIG_HF = (BIT5|BIT4), // TX Empty Trigger: FIFO 1/2 full + RU_FCR_TX_TRIG_MASK = (BIT5|BIT4), // TX Empty Trigger Bit Mask + RU_FCR_RX_TRIG_1CH = 0, // RCVR Trigger: 1 character in the FIFO + RU_FCR_RX_TRIG_QF = BIT6, // RCVR Trigger: FIFO 1/4 full + RU_FCR_RX_TRIG_HF = BIT7, // RCVR Trigger: FIFO 1/2 full RU_FCR_RX_TRIG_AF = (BIT7|BIT6), // RCVR Trigger: FIFO 2 less than full RU_FCR_RX_TRIG_MASK = (BIT7|BIT6) // RCVR Trigger bits Mask } RUART_FIFO_CTRL; @@ -92,7 +92,7 @@ typedef enum { #define RUART_LINE_CTL_REG_OFF 0x0C // Define Line Control Register Bits typedef enum { - RU_LCR_DLS_5B = 0, // Data Length: 5 bits + RU_LCR_DLS_5B = 0, // Data Length: 5 bits RU_LCR_DLS_6B = BIT0, // Data Length: 6 bits RU_LCR_DLS_7B = BIT1, // Data Length: 7 bits RU_LCR_DLS_8B = (BIT1|BIT0), // Data Length: 7 bits @@ -105,7 +105,7 @@ typedef enum { RU_LCR_PARITY_EVEN = (BIT4|BIT3), // Parity Enable: 1, Even Parity: 1 RU_LCR_BC = BIT6, // Break Control Bit - RU_LCR_DLAB = BIT7 // Divisor Latch Access Bit + RU_LCR_DLAB = BIT7 // Divisor Latch Access Bit } RUART_LINE_CTRL; //*BIT6 Break Control Bit (BC) //*BIT4 Even Parity Select (EPS) diff --git a/USDK/component/soc/realtek/8195a/fwlib/rtl8195a/src/rtl8195a_uart.c b/USDK/component/soc/realtek/8195a/fwlib/rtl8195a/src/rtl8195a_uart.c index bb014c6..0703ba9 100644 --- a/USDK/component/soc/realtek/8195a/fwlib/rtl8195a/src/rtl8195a_uart.c +++ b/USDK/component/soc/realtek/8195a/fwlib/rtl8195a/src/rtl8195a_uart.c @@ -18,7 +18,7 @@ HalRuartGetChipVerRtl8195a(VOID) { u8 chip_ver; - chip_ver = (HAL_READ32(SYSTEM_CTRL_BASE, 0x01F0) >> 4) & 0x0f; + chip_ver = (HAL_READ32(SYSTEM_CTRL_BASE, REG_SYS_SYSTEM_CFG0) >> 4) & 0x0f; // 0x400001F0 RTL8710AF = 0x41000220 return chip_ver; } @@ -369,7 +369,7 @@ HalRuartSetBaudRateRtl8195a( u8 chip_ver; // get chip version - chip_ver = HalRuartGetChipVerRtl8195a(); + chip_ver = HalRuartGetChipVerRtl8195a(); // RTL8710AF = 2 #endif if (pHalRuartAdapter->WordLen == RUART_WLS_8BITS) { diff --git a/USDK/component/soc/realtek/8195a/misc/driver/rtl_console_new.c b/USDK/component/soc/realtek/8195a/misc/driver/rtl_console_new.c index a5841ae..d5f9b95 100644 --- a/USDK/component/soc/realtek/8195a/misc/driver/rtl_console_new.c +++ b/USDK/component/soc/realtek/8195a/misc/driver/rtl_console_new.c @@ -241,11 +241,11 @@ MON_RAM_TEXT_SECTION void RtlConsolTaskRam(void *Data) { } if(flg) DiagPrintf("cmd: %s - nothing!\n", ArgvArray[0]); #if defined(configUSE_WAKELOCK_PMU) && (configUSE_WAKELOCK_PMU == 1) - pmu_release_wakelock(WAKELOCK_LOGUART); + release_wakelock(WAKELOCK_LOGUART); #endif } #if defined(configUSE_WAKELOCK_PMU) && (configUSE_WAKELOCK_PMU == 1) - else pmu_acquire_wakelock(WAKELOCK_LOGUART); + else acquire_wakelock(WAKELOCK_LOGUART); #endif p->pTmpLogBuf->BufCount = 0; p->pTmpLogBuf->UARTLogBuf[0] = 0; diff --git a/USDK/component/soc/realtek/8195a/misc/os/freertos_pmu_8195a.c b/USDK/component/soc/realtek/8195a/misc/os/freertos_pmu_8195a.c index 8ea7675..bf5e9b6 100644 --- a/USDK/component/soc/realtek/8195a/misc/os/freertos_pmu_8195a.c +++ b/USDK/component/soc/realtek/8195a/misc/os/freertos_pmu_8195a.c @@ -37,9 +37,12 @@ static uint8_t last_wakelock_state[32] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +#if (configGENERATE_RUN_TIME_STATS == 1) static uint32_t last_acquire_wakelock_time[32] = {0}; static uint32_t hold_wakelock_time[32] = {0}; static uint32_t base_sys_time = 0; +#endif static uint32_t sys_sleep_time = 0; @@ -164,10 +167,48 @@ int freertos_ready_to_sleep() { return wakelock == 0; } + +void acquire_wakelock(uint32_t lock_id) { + + wakelock |= lock_id; + +#if (configGENERATE_RUN_TIME_STATS == 1) + u32 i; + u32 current_timestamp = osKernelSysTick(); + for (i=0; i<32; i++) { + if ( (1< function DeepSleep(){ var dstim = parseInt(document.getElementById('ds_time').value,10); - newAJAXCommand('/web.cgi?&sys_dsleep=0x' + dstim.toString(16), null, 0); + newAJAXCommand('/web.cgi?sys_dsleep=0x' + dstim.toString(16), null, 0); } diff --git a/flasher/RTL_Reset.JLinkScript b/flasher/RTL_Reset.JLinkScript index 196d12a..3c0673f 100644 --- a/flasher/RTL_Reset.JLinkScript +++ b/flasher/RTL_Reset.JLinkScript @@ -4,6 +4,6 @@ r1 trst1 h r -w4 0x40000210,0x111157 +w4 0x40000210,0x0211157 g q \ No newline at end of file diff --git a/flasher/RTL_RunRAM.JLinkScript b/flasher/RTL_RunRAM.JLinkScript index 5991456..7632f1e 100644 --- a/flasher/RTL_RunRAM.JLinkScript +++ b/flasher/RTL_RunRAM.JLinkScript @@ -7,6 +7,6 @@ r loadbin build/bin/ram_1.r.bin 0x10000bc8 loadbin build/bin/ram_2.bin 0x10006000 r -w4 0x40000210,0x20111157 +w4 0x40000210,0x20111113 g q \ No newline at end of file diff --git a/flasher/gdb_flasher.jlink b/flasher/gdb_flasher.jlink index f3aa851..2eb169c 100644 --- a/flasher/gdb_flasher.jlink +++ b/flasher/gdb_flasher.jlink @@ -48,27 +48,27 @@ end # Boot RAM start_addr0() Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x80000000 ) define SetBootCall0 printf "SetBoot = Call0:\n" -monitor long 0x40000210 = 0x80111157 +monitor long 0x40000210 = 0x80011117 end # Boot RAM start_addr1() Run if ( v40000210 & 0x20000000 ) define SetBootCall1 printf "SetBoot = Call1:\n" -monitor long 0x40000210 = 0x20111157 +monitor long 0x40000210 = 0x20011117 end # Boot RAM start_addr2() Run if ( v40000210 & 0x10000000 ) define SetBootCall2 printf "SetBoot = Call2:\n" -monitor long 0x40000210 = 0x10111157 +monitor long 0x40000210 = 0x10011117 end # Boot RAM start_addr3() Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x8000000 ) define SetBootCall3 printf "SetBoot = Call3:\n" -monitor long 0x40000210 = 0x8111157 +monitor long 0x40000210 = 0x8011117 end # Boot RAM start_addr4() Init console, Run if ( v40000210 & 0x4000000 ) define SetBootCall4 printf "SetBoot = Call4:\n" -monitor long 0x40000210 = 0x4111157 +monitor long 0x40000210 = 0x4011117 end # CPU CLK 166 MHz? define SetClk166MHz diff --git a/flasher/gdb_rdflash.jlink b/flasher/gdb_rdflash.jlink index 674ce48..949d3e9 100644 --- a/flasher/gdb_rdflash.jlink +++ b/flasher/gdb_rdflash.jlink @@ -4,7 +4,6 @@ source -v flasher/gdb_flasher.jlink InitJlink SystemInit SPI_Init -monitor speed 12000 #FlashInfo # Read FullFlash printf "Read FullFlash:\n" @@ -12,6 +11,6 @@ set $dumpstartaddr = $SPI_FLASH_BASE set $dumpendaddr = $SPI_FLASH_BASE + 0x100000 printf "Start addr of dumping = 0x%08x\n", $dumpstartaddr printf "End addr of dumping = 0x%08x\n", $dumpendaddr -dump binary memory ../fullflash.bin $dumpstartaddr $dumpendaddr +dump binary memory ./build/bin/fullflash.bin $dumpstartaddr $dumpendaddr printf "FullFlash saved in ./build/bin/fullflash.bin - OK.\n" quit diff --git a/flasher/gdb_wrfile.jlink b/flasher/gdb_wrfile.jlink index 0ecee30..b81e8c4 100644 --- a/flasher/gdb_wrfile.jlink +++ b/flasher/gdb_wrfile.jlink @@ -134,12 +134,10 @@ end end ######################################### source -v flasher/gdb_flasher.jlink - source -v flasher/file_info.jlink - InitJlink SystemInit -SetClk166MHz +SetClk83MHz SPI_Init FlasherInit FlasherLoad flasher/rtl8710_flasher.bin @@ -155,8 +153,4 @@ end else printf "Error: Image size is zero!\n" end -FlashImagesInfo -monitor reset -SetBootFlash -monitor go quit diff --git a/flasher/gdb_wrflash.jlink b/flasher/gdb_wrflash.jlink index 4a4af92..6d37642 100644 --- a/flasher/gdb_wrflash.jlink +++ b/flasher/gdb_wrflash.jlink @@ -7,7 +7,6 @@ set $rtl8710_flasher_auto_erase = 1 set $rtl8710_flasher_auto_verify = 1 set $rtl8710_flasher_firmware_ptr = 0x10001000 set $rtl8710_flasher_buffer = 0x10008000 -#262144 set $rtl8710_flasher_buffer_size = 421888 set $rtl8710_flasher_sector_size = 4096 set $rtl8710_flasher_auto_erase_sector = 0xFFFFFFFF @@ -37,12 +36,11 @@ if $rtl8710_flasher_capacity == 0 monitor go FlasherWait set $id = {int}($rtl8710_flasher_buffer + 0x0C) + set $rtl8710_flasher_capacity = 1 << (($id >> 16) & 0x0ff) if ($id == 0x1420c2) - set $rtl8710_flasher_capacity = 1 << (($id >> 16) & 0x0ff) printf "Flash ID = 0x%08x : MX25L8006E (%d kbytes)\n", $id, $rtl8710_flasher_capacity>>10 else - set $rtl8710_flasher_capacity = 1024*1024) - error "Flash ID = 0x%08x : ?\n", $id + printf "Flash ID = 0x%08x : (%d kbytes)\n", $id, $rtl8710_flasher_capacity>>10 end printf "RTL8710 flasher initialized\n" else @@ -108,9 +106,9 @@ while $offset < $size end set $flash_offset = $arg1 + $offset printf "write offset 0x%08x\n", $flash_offset - set $parms1 = $rtl8710_flasher_buffer + 0x20 - $offset - $arg1 - set $parms2 = $offset + $arg1 - set $parms3 = $offset + $len + $arg1 + set $parms1 = $rtl8710_flasher_buffer + 0x20 - $flash_offset + set $parms2 = $flash_offset + set $parms3 = $flash_offset + $len restore $arg0 binary $parms1 $parms2 $parms3 if $rtl8710_flasher_auto_erase != 0 set $count_i = $flash_offset diff --git a/paths.bat b/paths.bat index 374f93e..79d9116 100644 --- a/paths.bat +++ b/paths.bat @@ -1 +1 @@ -PATH=D:\MCU\GNU_Tools_ARM_Embedded\5.4_2016q2\bin;D:\MCU\SEGGER\JLink_V612i;%PATH% \ No newline at end of file +PATH=D:\MCU\GNU_Tools_ARM_Embedded\6.2017-q1-update\bin;D:\MCU\SEGGER\JLink_V612i;%PATH% \ No newline at end of file diff --git a/project.mk b/project.mk index c9aff7d..2c82c0d 100644 --- a/project.mk +++ b/project.mk @@ -32,6 +32,7 @@ ADD_SRC_C += project/src/user/user_start.c # components ADD_SRC_C += project/src/console/atcmd_user.c ADD_SRC_C += project/src/console/wifi_console.c +ADD_SRC_C += project/src/console/wlan_tst.c #ADD_SRC_C += project/src/console/pwm_tst.c ifdef WEB_INA219_DRV ADD_SRC_C += project/src/driver/i2c_drv.c @@ -57,3 +58,4 @@ ADD_SRC_C += project/src/web/web_int_vars.c ADD_SRC_C += project/src/web/web_auth.c + diff --git a/project/inc/FreeRTOSConfig.h b/project/inc/FreeRTOSConfig.h index a5f1eaa..3340266 100644 --- a/project/inc/FreeRTOSConfig.h +++ b/project/inc/FreeRTOSConfig.h @@ -108,10 +108,10 @@ extern uint32_t SystemCoreClock; #define configUSE_COUNTING_SEMAPHORES 1 #define configUSE_ALTERNATIVE_API 0 -#define configCHECK_FOR_STACK_OVERFLOW 2 +#define configCHECK_FOR_STACK_OVERFLOW 0 #define configUSE_RECURSIVE_MUTEXES 1 #define configQUEUE_REGISTRY_SIZE 0 -#define configGENERATE_RUN_TIME_STATS 1 +#define configGENERATE_RUN_TIME_STATS 0 #if configGENERATE_RUN_TIME_STATS #define configUSE_STATS_FORMATTING_FUNCTIONS 1 @@ -161,7 +161,7 @@ extern int freertos_ready_to_sleep(); #define traceLOW_POWER_IDLE_END(); } while (0); /* It's FreeRTOS related feature but it's not included in FreeRTOS design. */ -#define configUSE_WAKELOCK_PMU 1 +#define configUSE_WAKELOCK_PMU 1 #endif // #if (__IASMARM__ != 1) diff --git a/project/inc/user_config.h b/project/inc/user_config.h index 0e57909..2feff93 100644 --- a/project/inc/user_config.h +++ b/project/inc/user_config.h @@ -2,7 +2,8 @@ #define _user_config_h_ #define SYS_VERSION "1.0.0" -#define SDK_VERSION "3.5.3" +//#define SDK_VERSION "3.5.3" +#include "sdk_ver.h" #define USE_WEB 80 // включить в трансялцию порт Web, если =0 - по умолчанию выключен #define WEBSOCKET_ENA 1 // включить WEBSOCKET diff --git a/project/src/console/atcmd_user.c b/project/src/console/atcmd_user.c index 25ed09a..9e3a1f3 100644 --- a/project/src/console/atcmd_user.c +++ b/project/src/console/atcmd_user.c @@ -333,12 +333,12 @@ LOCAL void fATSP(int argc, char *argv[]) switch (argv[1][0]) { case 'a': // acquire { - pmu_acquire_wakelock(atoi(argv[2])); + acquire_wakelock(atoi(argv[2])); break; } case 'r': // release { - pmu_release_wakelock(atoi(argv[2])); + release_wakelock(atoi(argv[2])); break; } }; diff --git a/project/src/console/power_tst.c b/project/src/console/power_tst.c index 7445b6e..d48cdd3 100644 --- a/project/src/console/power_tst.c +++ b/project/src/console/power_tst.c @@ -27,13 +27,12 @@ void fATSP(int argc, char *argv[]) } } } - printf("WakeLock Status %d\n", get_wakelock_status()); + printf("WakeLock Status %d\n", pmu_get_wakelock_status()); } MON_RAM_TAB_SECTION COMMAND_TABLE console_commands_pwrs[] = { {"ATSP", 0, fATSP, "=,: Power"} - }; diff --git a/project/src/console/wifi_console.c b/project/src/console/wifi_console.c index 71dd3ec..242302b 100644 --- a/project/src/console/wifi_console.c +++ b/project/src/console/wifi_console.c @@ -226,16 +226,22 @@ LOCAL void fATSF(int argc, char *argv[]) } LOCAL void fATWP(int argc, char *argv[]) { + int x = 0; if(argc > 1) { - pmu_release_wakelock(0xffff); - wifi_set_power_mode(1, 1); - wifi_set_lps_dtim(atoi(argv[1])); + x = atoi(argv[1]); + if(x == 0) { + acquire_wakelock(~WAKELOCK_WLAN); + release_wakelock(0xffff); + _wext_enable_powersave(0, 0, 0); + _wext_set_lps_dtim(0, 1); + } else { + release_wakelock(~WAKELOCK_WLAN); + _wext_enable_powersave(0, 1, 1); + _wext_set_lps_dtim(0, x); + } } else { - unsigned char x; - if(wifi_get_lps_dtim(&x) >= 0) { - printf("DTIM: %d\n", x); - } + printf("DTIM: %d\n", _wext_get_lps_dtim(0)); } } /* -------- WiFi Scan ------------------------------- */ @@ -261,7 +267,6 @@ LOCAL void scan_result_handler(internal_scan_handler_t* ap_scan_result) record->SSID.val[record->SSID.len] = '\0'; printf("%s\n", record->SSID.val); } - } } else { printf("Scan networks: None!\n"); @@ -308,7 +313,7 @@ MON_RAM_TAB_SECTION COMMAND_TABLE console_cmd_wifi_api[] = { {"P2P_DISCCONNECT", 0, cmd_p2p_disconnect, ": p2p disconnect"}, {"P2P_CONNECT", 0, cmd_p2p_connect, ": p2p connect"}, #endif - {"ATWR", 0, fATWR, ": WIFI Connect, Disconnect"}, + {"ATWR", 0, fATWR, "=[mode]: WIFI Mode: 0 - off, 1 - ST, 2 - AP, 3 - ST+AP"}, #if CONFIG_WLAN_CONNECT_CB {"ATON", 0, fATON, ": Open connections"}, {"ATOFF", 0, fATOF, ": Close connections"}, @@ -316,9 +321,9 @@ MON_RAM_TAB_SECTION COMMAND_TABLE console_cmd_wifi_api[] = { {"ATWI", 0, fATWI, ": WiFi Info"}, #if CONFIG_DEBUG_LOG > 3 {"ATWT", 1, fATWT, "=: WiFi tx power: 0 - 100%, 1 - 75%, 2 - 50%, 3 - 25%, 4 - 12.5%"}, - {"ATSF", 0, fATSF, ": Test TSF value"}, + {"ATSF", 0, fATSF, ": Get TSF value"}, #endif - {"ATWP", 0, fATWP, ": WiFi power"}, + {"ATWP", 0, fATWP, "=[dtim]: 0 - WiFi ipc/lpc off, 1..10 - on + dtim"}, {"ATSN", 0, fATSN, ": Scan networks"} }; diff --git a/project/src/user/user_start.c b/project/src/user/user_start.c index 314c317..8b1450d 100644 --- a/project/src/user/user_start.c +++ b/project/src/user/user_start.c @@ -89,7 +89,7 @@ void user_init_thrd(void) { webserver_init(syscfg.web_port); if(syscfg.cfg.b.powersave_enable) { - pmu_release_wakelock(~WAKELOCK_WLAN); + release_wakelock(~WAKELOCK_WLAN); } // xTaskCreate(x_init_thrd, "wifi_init", 1024, NULL, tskIDLE_PRIORITY + 1 + PRIORITIE_OFFSET, NULL); diff --git a/project/src/web/web_int_vars.c b/project/src/web/web_int_vars.c index 2d0489c..bcceb5d 100644 --- a/project/src/web/web_int_vars.c +++ b/project/src/web/web_int_vars.c @@ -148,8 +148,8 @@ void ICACHE_FLASH_ATTR web_int_vars(TCP_SERV_CONN *ts_conn, uint8 *pcmd, uint8 * else ifcmp("pinclr") syscfg.cfg.b.pin_clear_cfg_enable = (val)? 1 : 0; else ifcmp("sleep") { syscfg.cfg.b.powersave_enable = (val)? 1 : 0; - if(val) pmu_release_wakelock(~WAKELOCK_WLAN); - else pmu_acquire_wakelock(~WAKELOCK_WLAN); + if(val) release_wakelock(~WAKELOCK_WLAN); + else acquire_wakelock(~WAKELOCK_WLAN); } else ifcmp("debug") { syscfg.cfg.b.debug_print_enable = val; diff --git a/userset.mk b/userset.mk index 5807fd4..c9e71fb 100644 --- a/userset.mk +++ b/userset.mk @@ -3,11 +3,11 @@ #============================================= #SDK_PATH = ../RTL00MP3/RTL00_SDKV35a/ SDK_PATH = USDK/ -#GCC_PATH = d:/MCU/GNU_Tools_ARM_Embedded/5.2_2015q4/bin/# + or set in PATH +#GCC_PATH = d:/MCU/GNU_Tools_ARM_Embedded/6.2017-q1-update/bin/# + or set in PATH #OPENOCD_PATH = d:/MCU/OpenOCD/bin/# + or set in PATH TOOLS_PATH ?= $(SDK_PATH)component/soc/realtek/8195a/misc/iar_utility/common/tools/ FLASHER_TYPE ?= Jlink #FLASHER_TYPE ?= OCD -FLASHER_PATH ?= flasher/ +FLASHER_PATH = flasher/ JLINK_PATH ?= D:/MCU/SEGGER/JLink_V612i/ JLINK_GDBSRV ?= JLinkGDBServer.exe