From eb930609aa142ffc7fd8d81d83ac17fa86b12a42 Mon Sep 17 00:00:00 2001 From: ThinkPad-T460P <ibookshiyi@gmail.com> Date: Thu, 11 Mar 2021 19:09:05 +0800 Subject: [PATCH] update --- .cproject | 41 +++++++++----- .gitmodules | 3 ++ .mxproject | 74 +++++++++++++------------- .settings/stm32cubeide.project.prefs | 4 +- App/Inc/th_button.h | 6 +-- App/Inc/th_elog.h | 4 ++ App/Inc/th_iwdg.h | 12 +++++ App/Src/th_button.c | 8 +-- App/Src/th_coulomb.c | 2 +- App/Src/th_demo.c | 19 ++++--- App/Src/th_elog.c | 15 ++++-- App/Src/th_iwdg.c | 28 ++++++++++ App/Src/th_led.c | 4 +- App/Src/th_power.c | 2 +- Core/Inc/stm32f1xx_it.h | 4 ++ Core/Inc/usart.h | 3 -- Core/Src/adc.c | 11 ++++ Core/Src/freertos.c | 45 ++++++++-------- Core/Src/i2c.c | 10 ++++ Core/Src/iwdg.c | 10 ++++ Core/Src/main.c | 30 +++++++++-- Core/Src/navikit.c | 1 + Core/Src/rtc.c | 10 ++++ Middlewares/Lab-Project-FreeRTOS-POSIX | 1 + NaviKit_EC_stm32 Debug.launch | 1 + NaviKit_EC_stm32 Release.launch | 2 + NaviKit_EC_stm32.ioc | 48 ++++++++++++++++- README.md | 13 +++-- STM32F107VCTX_FLASH.ld | 4 +- USB_DEVICE/Target/usbd_conf.c | 1 + USB_DEVICE/Target/usbd_conf.h | 9 +--- 31 files changed, 307 insertions(+), 118 deletions(-) create mode 100644 App/Inc/th_iwdg.h create mode 100644 App/Src/th_iwdg.c create mode 160000 Middlewares/Lab-Project-FreeRTOS-POSIX diff --git a/.cproject b/.cproject index 7fde85f..218e6d7 100644 --- a/.cproject +++ b/.cproject @@ -4,7 +4,13 @@ <cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.502298629"> <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.502298629" moduleId="org.eclipse.cdt.core.settings" name="Debug"> <externalSettings> - <externalSetting/> + <externalSetting> + <entry flags="RESOLVED" kind="includePath" name="Middlewares/Lab-Project-FreeRTOS-POSIX/include/private"/> + <entry flags="RESOLVED" kind="includePath" name="Middlewares/Lab-Project-FreeRTOS-POSIX/include/FreeRTOS_POSIX"/> + <entry flags="RESOLVED" kind="includePath" name="Middlewares/Lab-Project-FreeRTOS-POSIX/include/FreeRTOS_POSIX/sys"/> + <entry flags="RESOLVED" kind="includePath" name="Middlewares/Lab-Project-FreeRTOS-POSIX/FreeRTOS-Plus-POSIX/include"/> + <entry flags="RESOLVED" kind="includePath" name="Middlewares/Lab-Project-FreeRTOS-POSIX/FreeRTOS-Plus-POSIX/include/portable"/> + </externalSetting> </externalSettings> <extensions> <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> @@ -25,7 +31,7 @@ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.433736509" name="CpuId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.276377927" name="CpuCoreId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1980681105" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/> - <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1465740073" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.3 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F107VCTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Middlewares/Third_Party/FreeRTOS/Source/include | ../USB_DEVICE/Target | ../Drivers/CMSIS/Device/ST/STM32F1xx/Include | ../Drivers/CMSIS/Include | ../Core/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc | ../USB_DEVICE/App | ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy | ../Drivers/STM32F1xx_HAL_Driver/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3 || || || USE_HAL_DRIVER | STM32F107xC || || Drivers | CMSIS | Core/Startup | Middlewares | Core | USB_DEVICE || || || ${workspace_loc:/${ProjName}/STM32F107VCTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || " valueType="string"/> + <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1465740073" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F107VCTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Middlewares/Third_Party/FreeRTOS/Source/include | ../USB_DEVICE/Target | ../Drivers/CMSIS/Device/ST/STM32F1xx/Include | ../Drivers/CMSIS/Include | ../Core/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc | ../USB_DEVICE/App | ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy | ../Drivers/STM32F1xx_HAL_Driver/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3 || || || USE_HAL_DRIVER | STM32F107xC || || Drivers | CMSIS | Core/Startup | Middlewares | Core | USB_DEVICE || || || ${workspace_loc:/${ProjName}/STM32F107VCTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.1573745116" name="Use float with printf from newlib-nano (-u _printf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat.142703396" name="Use float with scanf from newlib-nano (-u _scanf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat" useByScannerDiscovery="false" value="false" valueType="boolean"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_c.1187387752" name="Runtime library" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_c" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_c.value.standard_c" valueType="enumerated"/> @@ -36,15 +42,17 @@ <builder buildPath="${workspace_loc:/NaviKit_stm32}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.901379162" keepEnvironmentInBuildfile="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="unlimited" stopOnErr="false" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/> <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.451303658" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler"> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.599548003" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g3" valueType="enumerated"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths.121590855" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths" valueType="includePath"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.1434790555" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols"/> <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.259361276" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> </tool> <tool command="gcc" commandLinePattern="${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.770357739" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler"> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.883307296" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g3" valueType="enumerated"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1182522958" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.o0" valueType="enumerated"/> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1676188920" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> - <listOptionValue builtIn="false" value="STM32F107xC"/> <listOptionValue builtIn="false" value="DEBUG"/> + <listOptionValue builtIn="false" value="STM32F107xC"/> + <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> </option> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.186388616" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value="../App/Inc"/> @@ -57,8 +65,8 @@ <listOptionValue builtIn="false" value="../Middlewares/EasyLogger/easylogger/inc"/> <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc"/> <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Core/Inc"/> - <listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/include"/> <listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2"/> + <listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/include"/> <listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3"/> <listOptionValue builtIn="false" value="../USB_DEVICE/App"/> <listOptionValue builtIn="false" value="../USB_DEVICE/Target"/> @@ -92,10 +100,10 @@ <fileInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.502298629.1450340378" name="elog_cfg.h" rcbsApplicability="disable" resourcePath="Middlewares/EasyLogger/easylogger/inc/elog_cfg.h" toolsToInvoke=""/> <sourceEntries> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="App"/> + <entry excluding="Lab-Project-FreeRTOS-POSIX|EasyLogger/easylogger/plugins|EasyLogger/docs" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="CMSIS"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/> - <entry excluding="Third_Party/FreeRTOS-Plus/Source/Utilities/logging|EasyLogger/easylogger/plugins|EasyLogger/docs" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="USB_DEVICE"/> </sourceEntries> </configuration> @@ -104,7 +112,9 @@ </cconfiguration> <cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1260902692"> <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1260902692" moduleId="org.eclipse.cdt.core.settings" name="Release"> - <externalSettings/> + <externalSettings> + <externalSetting/> + </externalSettings> <extensions> <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> @@ -124,22 +134,24 @@ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1398882809" name="CpuId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.1532730982" name="CpuCoreId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1861067852" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/> - <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1239010509" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.3 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F107VCTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Middlewares/Third_Party/FreeRTOS/Source/include | ../USB_DEVICE/Target | ..//CMSIS/Driver/Include | ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3 | ../Drivers/CMSIS/Device/ST/STM32F1xx/Include | ../Drivers/CMSIS/Include | ../Core/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc | ../USB_DEVICE/App | ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy | ../Drivers/STM32F1xx_HAL_Driver/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc || || || USE_HAL_DRIVER | STM32F107xC || || Drivers | CMSIS | Core/Startup | Middlewares | Core | USB_DEVICE || || || ${workspace_loc:/${ProjName}/STM32F107VCTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || " valueType="string"/> + <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1239010509" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F107VCTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Middlewares/Third_Party/FreeRTOS/Source/include | ../USB_DEVICE/Target | ..//CMSIS/Driver/Include | ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3 | ../Drivers/CMSIS/Device/ST/STM32F1xx/Include | ../Drivers/CMSIS/Include | ../Core/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc | ../USB_DEVICE/App | ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy | ../Drivers/STM32F1xx_HAL_Driver/Inc | ../Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc || || || USE_HAL_DRIVER | STM32F107xC || || Drivers | CMSIS | Core/Startup | Middlewares | Core | USB_DEVICE || || || ${workspace_loc:/${ProjName}/STM32F107VCTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.convertbinary.1121264663" name="Convert to binary file (-O binary)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.convertbinary" useByScannerDiscovery="false" value="false" valueType="boolean"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.1737555266" name="Convert to Intel Hex file (-O ihex)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" useByScannerDiscovery="false" value="true" valueType="boolean"/> - <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.1638170040" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat" value="true" valueType="boolean"/> + <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.1638170040" name="Use float with printf from newlib-nano (-u _printf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/> <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.238068216" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> <builder buildPath="${workspace_loc:/NaviKit_stm32}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.95113451" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/> <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1535045086" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler"> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.767286012" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g0" valueType="enumerated"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths.1444171247" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths" valueType="includePath"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.1191563716" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols"/> <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.611490005" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> </tool> <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.632904416" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler"> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.1856652564" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.2079025018" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.o0" valueType="enumerated"/> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1412817126" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> <listOptionValue builtIn="false" value="STM32F107xC"/> + <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> </option> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.968919675" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value="../App/Inc"/> @@ -152,11 +164,13 @@ <listOptionValue builtIn="false" value="../Middlewares/EasyLogger/easylogger/inc"/> <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc"/> <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Core/Inc"/> - <listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/include"/> <listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2"/> + <listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/include"/> <listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3"/> <listOptionValue builtIn="false" value="../USB_DEVICE/App"/> <listOptionValue builtIn="false" value="../USB_DEVICE/Target"/> + <listOptionValue builtIn="false" value="..//CMSIS/Driver/Include"/> + <listOptionValue builtIn="false" value="../Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc"/> </option> <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.77383630" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/> </tool> @@ -185,10 +199,11 @@ </toolChain> </folderInfo> <sourceEntries> - <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="App"/> + <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="App"/> + <entry excluding="Lab-Project-FreeRTOS-POSIX|EasyLogger/easylogger/plugins" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> + <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="CMSIS"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/> - <entry excluding="EasyLogger/easylogger/plugins" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="USB_DEVICE"/> </sourceEntries> </configuration> diff --git a/.gitmodules b/.gitmodules index 77fac7e..a6097c2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "Middlewares/EasyLogger"] path = Middlewares/EasyLogger url = https://github.com/autolaborcenter/EasyLogger.git +[submodule "Middlewares/Lab-Project-FreeRTOS-POSIX"] + path = Middlewares/Lab-Project-FreeRTOS-POSIX + url = https://github.com/autolaborcenter/Lab-Project-FreeRTOS-POSIX.git diff --git a/.mxproject b/.mxproject index c6e9ea5..3623cb9 100644 --- a/.mxproject +++ b/.mxproject @@ -9,46 +9,46 @@ CDefines=USE_HAL_DRIVER;STM32F107xC;USE_HAL_DRIVER;USE_HAL_DRIVER; [PreviousGenFiles] AdvancedFolderStructure=true HeaderFileListSize=15 -HeaderFiles#0=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/gpio.h -HeaderFiles#1=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/FreeRTOSConfig.h -HeaderFiles#2=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/adc.h -HeaderFiles#3=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/dma.h -HeaderFiles#4=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/i2c.h -HeaderFiles#5=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/iwdg.h -HeaderFiles#6=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/rtc.h -HeaderFiles#7=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/usart.h -HeaderFiles#8=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/App/usb_device.h -HeaderFiles#9=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/Target/usbd_conf.h -HeaderFiles#10=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/App/usbd_desc.h -HeaderFiles#11=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/App/usbd_cdc_if.h -HeaderFiles#12=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/stm32f1xx_it.h -HeaderFiles#13=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/stm32f1xx_hal_conf.h -HeaderFiles#14=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc/main.h +HeaderFiles#0=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/gpio.h +HeaderFiles#1=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/FreeRTOSConfig.h +HeaderFiles#2=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/adc.h +HeaderFiles#3=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/dma.h +HeaderFiles#4=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/i2c.h +HeaderFiles#5=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/iwdg.h +HeaderFiles#6=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/rtc.h +HeaderFiles#7=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/usart.h +HeaderFiles#8=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/App/usb_device.h +HeaderFiles#9=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/Target/usbd_conf.h +HeaderFiles#10=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/App/usbd_desc.h +HeaderFiles#11=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/App/usbd_cdc_if.h +HeaderFiles#12=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/stm32f1xx_it.h +HeaderFiles#13=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/stm32f1xx_hal_conf.h +HeaderFiles#14=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc/main.h HeaderFolderListSize=3 -HeaderPath#0=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Inc -HeaderPath#1=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/App -HeaderPath#2=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/Target +HeaderPath#0=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Inc +HeaderPath#1=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/App +HeaderPath#2=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/Target HeaderFiles=; SourceFileListSize=16 -SourceFiles#0=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/gpio.c -SourceFiles#1=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/freertos.c -SourceFiles#2=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/adc.c -SourceFiles#3=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/dma.c -SourceFiles#4=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/i2c.c -SourceFiles#5=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/iwdg.c -SourceFiles#6=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/rtc.c -SourceFiles#7=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/usart.c -SourceFiles#8=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/App/usb_device.c -SourceFiles#9=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/Target/usbd_conf.c -SourceFiles#10=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/App/usbd_desc.c -SourceFiles#11=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/App/usbd_cdc_if.c -SourceFiles#12=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/stm32f1xx_it.c -SourceFiles#13=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/stm32f1xx_hal_msp.c -SourceFiles#14=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/stm32f1xx_hal_timebase_tim.c -SourceFiles#15=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src/main.c +SourceFiles#0=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/gpio.c +SourceFiles#1=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/freertos.c +SourceFiles#2=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/adc.c +SourceFiles#3=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/dma.c +SourceFiles#4=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/i2c.c +SourceFiles#5=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/iwdg.c +SourceFiles#6=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/rtc.c +SourceFiles#7=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/usart.c +SourceFiles#8=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/App/usb_device.c +SourceFiles#9=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/Target/usbd_conf.c +SourceFiles#10=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/App/usbd_desc.c +SourceFiles#11=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/App/usbd_cdc_if.c +SourceFiles#12=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/stm32f1xx_it.c +SourceFiles#13=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/stm32f1xx_hal_msp.c +SourceFiles#14=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/stm32f1xx_hal_timebase_tim.c +SourceFiles#15=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src/main.c SourceFolderListSize=3 -SourcePath#0=E:/source/STM32CubeIDE/NaviKit_stm32/Core/Src -SourcePath#1=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/App -SourcePath#2=E:/source/STM32CubeIDE/NaviKit_stm32/USB_DEVICE/Target +SourcePath#0=E:/source/STM32CubeIDE/NaviKit_EC_stm32/Core/Src +SourcePath#1=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/App +SourcePath#2=E:/source/STM32CubeIDE/NaviKit_EC_stm32/USB_DEVICE/Target SourceFiles=; diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs index 6d54323..336601a 100644 --- a/.settings/stm32cubeide.project.prefs +++ b/.settings/stm32cubeide.project.prefs @@ -1,4 +1,4 @@ -2F62501ED4689FB349E356AB974DBE57=7721402F3CE8DC8D3A6A8AE537EFAC0B -8DF89ED150041C4CBC7CB9A9CAA90856=7721402F3CE8DC8D3A6A8AE537EFAC0B +2F62501ED4689FB349E356AB974DBE57=8E4D1FDC05ED3D447D65E8B3A57F2283 +8DF89ED150041C4CBC7CB9A9CAA90856=8E4D1FDC05ED3D447D65E8B3A57F2283 DC22A860405A8BF2F2C095E5B6529F12=02D9A7110C849E46466CD5CF8816F30D eclipse.preferences.version=1 diff --git a/App/Inc/th_button.h b/App/Inc/th_button.h index 55dce98..4c4f541 100644 --- a/App/Inc/th_button.h +++ b/App/Inc/th_button.h @@ -11,8 +11,8 @@ #include "cmsis_os2.h" /* Definitions for ButtonDetect */ -osThreadId_t ButtonDetectHandle; -const osThreadAttr_t ButtonDetect_attributes; +osThreadId_t ButtonDetectTaskHandle; +const osThreadAttr_t ButtonDetectTask_attributes; //Timer osTimerId_t PwrBtnLongPressTimerHandle; @@ -28,7 +28,7 @@ osTimerId_t CustBtnShortPressTimerHandle; const osTimerAttr_t CustBtnShortPressTimer_attributes; -void StartButtonDetect(void *argument); +void StartButtonDetectTask(void *argument); //callback void PwrBtnLongPressTimerCallback(void *argument); diff --git a/App/Inc/th_elog.h b/App/Inc/th_elog.h index 737f13d..23eb358 100644 --- a/App/Inc/th_elog.h +++ b/App/Inc/th_elog.h @@ -3,6 +3,10 @@ #include "cmsis_os2.h" +osMutexId_t ElogUartMutexHandle; +const osMutexAttr_t ElogUartMutex_attributes; + +osMutexId_t ElogOutputMutexHandle; const osMutexAttr_t ElogOutputMutex_attributes; osThreadId_t ElogInitTaskHandle; diff --git a/App/Inc/th_iwdg.h b/App/Inc/th_iwdg.h new file mode 100644 index 0000000..a9a5f2d --- /dev/null +++ b/App/Inc/th_iwdg.h @@ -0,0 +1,12 @@ +#ifndef __TH_IWDG_H__ +#define __TH_IWDG_H__ + +#include "cmsis_os2.h" + +osThreadId_t IWDGTaskHandle; + +const osThreadAttr_t IWDGTask_attributes; + +void StartIWDGTask(void *argument); + +#endif diff --git a/App/Src/th_button.c b/App/Src/th_button.c index bbcea02..8bb9a52 100644 --- a/App/Src/th_button.c +++ b/App/Src/th_button.c @@ -12,9 +12,9 @@ #include "navikit.h" //Thread -const osThreadAttr_t ButtonDetect_attributes = { - .name = "ButtonDetect", - .priority = (osPriority_t) osPriorityLow, +const osThreadAttr_t ButtonDetectTask_attributes = { + .name = "ButtonDetectTask", + .priority = (osPriority_t) osPriorityBelowNormal, .stack_size = 128 * 4 }; @@ -41,7 +41,7 @@ const osTimerAttr_t CustBtnShortPressTimer_attributes = { * @retval None */ /* USER CODE END Header_StartButtonDetect */ -void StartButtonDetect(void *argument) +void StartButtonDetectTask(void *argument) { /* USER CODE BEGIN StartButtonDetect */ /* Infinite loop */ diff --git a/App/Src/th_coulomb.c b/App/Src/th_coulomb.c index 9f331df..aaf8867 100644 --- a/App/Src/th_coulomb.c +++ b/App/Src/th_coulomb.c @@ -16,7 +16,7 @@ /* Definitions for CoulombRead */ const osThreadAttr_t CoulombRead_attributes = { .name = "CoulombRead", - .priority = (osPriority_t) osPriorityLow, + .priority = (osPriority_t) osPriorityBelowNormal, .stack_size = 128 * 4 }; diff --git a/App/Src/th_demo.c b/App/Src/th_demo.c index c61edb3..00f5823 100644 --- a/App/Src/th_demo.c +++ b/App/Src/th_demo.c @@ -1,3 +1,10 @@ +/* + * @Description: + * @Date: 2021-03-09 18:19:26 + * @LastEditors: CK.Zh + * @LastEditTime: 2021-03-10 15:07:01 + * @FilePath: \NaviKit_EC_stm32\App\Src\th_demo.c + */ #define LOG_TAG "TH-Demo" #include <th_demo.h> @@ -6,20 +13,20 @@ const osThreadAttr_t DemoTask1_attributes = { .name = "DemoTask1", - .priority = (osPriority_t) osPriorityNormal, - .stack_size = 128 * 4 + .priority = (osPriority_t) osPriorityLow2, + .stack_size = 128 * 8 }; const osThreadAttr_t DemoTask2_attributes = { .name = "DemoTask2", - .priority = (osPriority_t) osPriorityBelowNormal, - .stack_size = 128 * 4 + .priority = (osPriority_t) osPriorityLow1, + .stack_size = 128 * 8 }; void StartDemoTask1(void *argument){ uint8_t i=0; log_v("Start Demo Task1"); for(;;){ log_v("demo task 1 [%d].",i++); - osDelay(1000); + osDelay(100); } } void StartDemoTask2(void *argument){ @@ -27,6 +34,6 @@ void StartDemoTask2(void *argument){ log_v("Start Demo Task2"); for(;;){ log_v("demo task 2 [%d].",i++); - osDelay(1000); + osDelay(100); } } diff --git a/App/Src/th_elog.c b/App/Src/th_elog.c index 24e3b72..3710f1f 100644 --- a/App/Src/th_elog.c +++ b/App/Src/th_elog.c @@ -2,7 +2,7 @@ * @Description: * @Date: 2021-03-09 11:30:52 * @LastEditors: CK.Zh - * @LastEditTime: 2021-03-10 10:59:15 + * @LastEditTime: 2021-03-10 14:46:32 * @FilePath: \NaviKit_EC_stm32\App\Src\th_elog.c */ @@ -11,20 +11,23 @@ #include <th_elog.h> #include "main.h" +const osMutexAttr_t ElogUartMutex_attributes = { + .name = "ElogUartMutex" +}; const osMutexAttr_t ElogOutputMutex_attributes = { .name = "ElogOutputMutex" }; const osThreadAttr_t ElogInitTask_attributes = { .name = "ElogInitTask", - .priority = (osPriority_t) osPriorityBelowNormal, + .priority = (osPriority_t) osPriorityNormal, .stack_size = 128 * 4 }; const osThreadAttr_t ElogFlushTask_attributes = { .name = "ElogFlushTask", .priority = (osPriority_t) osPriorityLow, - .stack_size = 128 * 4 + .stack_size = 128 * 8 }; void StartElogInitTask(void *argument){ @@ -36,10 +39,11 @@ void StartElogInitTask(void *argument){ void StartElogFlushTask(void *argument){ + uint8_t i=0; log_v("Start Elog Flush Task"); for(;;){ elog_flush(); - osDelay(5); + osDelay(1); } } @@ -67,6 +71,9 @@ void my_elog_init(){ /* 详细:输出除了方法名之外的所有内容 */ elog_set_fmt(ELOG_LVL_VERBOSE, ELOG_FMT_SETTING); + // enable text color (dynamic) + elog_set_text_color_enabled(true); + /* start EasyLogger */ elog_start(); } diff --git a/App/Src/th_iwdg.c b/App/Src/th_iwdg.c new file mode 100644 index 0000000..e139427 --- /dev/null +++ b/App/Src/th_iwdg.c @@ -0,0 +1,28 @@ +/* + * @Description: + * @Date: 2021-03-09 18:19:26 + * @LastEditors: CK.Zh + * @LastEditTime: 2021-03-10 15:07:01 + * @FilePath: \NaviKit_EC_stm32\App\Src\th_demo.c + */ +#define LOG_TAG "TH-IWDG" + +#include <th_iwdg.h> +#include "main.h" +#include "iwdg.h" + + +const osThreadAttr_t IWDGTask_attributes = { + .name = "IWDGTask", + .priority = (osPriority_t) osPriorityHigh, + .stack_size = 128 * 4 +}; + +void StartIWDGTask(void *argument){ + log_v("Start IWDG Task"); + for(;;){ + HAL_IWDG_Refresh(&hiwdg); + osDelay(1000); + } +} + diff --git a/App/Src/th_led.c b/App/Src/th_led.c index f734450..07cf763 100644 --- a/App/Src/th_led.c +++ b/App/Src/th_led.c @@ -13,8 +13,8 @@ const osThreadAttr_t LedBlinkTask_attributes = { .name = "LedBlinkTask", - .priority = (osPriority_t) osPriorityLow, - .stack_size = 128 * 4 + .priority = (osPriority_t) osPriorityBelowNormal, + .stack_size = 128 * 8 }; /* USER CODE BEGIN Header_StartLedBlinkTask */ diff --git a/App/Src/th_power.c b/App/Src/th_power.c index 034f266..a02d238 100644 --- a/App/Src/th_power.c +++ b/App/Src/th_power.c @@ -14,7 +14,7 @@ const osThreadAttr_t PowerMonitTask_attributes = { .name = "PowerMonitTask", - .priority = (osPriority_t) osPriorityLow, + .priority = (osPriority_t) osPriorityBelowNormal, .stack_size = 128 * 4 }; diff --git a/Core/Inc/stm32f1xx_it.h b/Core/Inc/stm32f1xx_it.h index 5d71e1a..c6d5a7a 100644 --- a/Core/Inc/stm32f1xx_it.h +++ b/Core/Inc/stm32f1xx_it.h @@ -61,6 +61,8 @@ void EXTI0_IRQHandler(void); void EXTI3_IRQHandler(void); void EXTI4_IRQHandler(void); void DMA1_Channel1_IRQHandler(void); +void DMA1_Channel4_IRQHandler(void); +void DMA1_Channel5_IRQHandler(void); void ADC1_2_IRQHandler(void); void EXTI9_5_IRQHandler(void); void TIM1_UP_IRQHandler(void); @@ -69,6 +71,8 @@ void I2C1_ER_IRQHandler(void); void USART1_IRQHandler(void); void RTC_Alarm_IRQHandler(void); void UART4_IRQHandler(void); +void DMA2_Channel3_IRQHandler(void); +void DMA2_Channel5_IRQHandler(void); void OTG_FS_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Inc/usart.h b/Core/Inc/usart.h index 6b11bb4..a3e9db5 100644 --- a/Core/Inc/usart.h +++ b/Core/Inc/usart.h @@ -29,8 +29,6 @@ extern "C" { /* USER CODE BEGIN Includes */ -#include <stdio.h> -#include <stdarg.h> /* USER CODE END Includes */ extern UART_HandleTypeDef huart4; @@ -45,7 +43,6 @@ void MX_USART1_UART_Init(void); /* USER CODE BEGIN Prototypes */ -void UartPrint(char * format,...); /* USER CODE END Prototypes */ #ifdef __cplusplus diff --git a/Core/Src/adc.c b/Core/Src/adc.c index 354009e..0ca5b8f 100644 --- a/Core/Src/adc.c +++ b/Core/Src/adc.c @@ -33,9 +33,17 @@ DMA_HandleTypeDef hdma_adc1; /* ADC1 init function */ void MX_ADC1_Init(void) { + + /* USER CODE BEGIN ADC1_Init 0 */ + + /* USER CODE END ADC1_Init 0 */ + ADC_AnalogWDGConfTypeDef AnalogWDGConfig = {0}; ADC_ChannelConfTypeDef sConfig = {0}; + /* USER CODE BEGIN ADC1_Init 1 */ + + /* USER CODE END ADC1_Init 1 */ /** Common config */ hadc1.Instance = ADC1; @@ -117,6 +125,9 @@ void MX_ADC1_Init(void) { Error_Handler(); } + /* USER CODE BEGIN ADC1_Init 2 */ + + /* USER CODE END ADC1_Init 2 */ } diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c index bbdafa2..b9488ee 100644 --- a/Core/Src/freertos.c +++ b/Core/Src/freertos.c @@ -38,6 +38,7 @@ #include <th_coulomb.h> #include <th_power.h> #include <th_button.h> +#include <th_iwdg.h> /* USER CODE END Includes */ @@ -70,7 +71,7 @@ const osTimerAttr_t IdleStateHoldTimer_attributes = { osThreadId_t defaultTaskHandle; const osThreadAttr_t defaultTask_attributes = { .name = "defaultTask", - .stack_size = 128 * 4, + .stack_size = 128 * 8, .priority = (osPriority_t) osPriorityNormal, }; @@ -81,6 +82,7 @@ void IdleStateHoldTimerCallback(void *argument); bool isWakeUpFromReset() { return __HAL_PWR_GET_FLAG(PWR_FLAG_WU);} +//__HAL_RCC_GET_FLAG(); //判断复位源 /* USER CODE END FunctionPrototypes */ @@ -167,6 +169,7 @@ void MX_FREERTOS_Init(void) { /* USER CODE BEGIN Init */ ElogOutputMutexHandle = osMutexNew(&ElogOutputMutex_attributes); +// ElogUartMutexHandle = osMutexNew(&ElogUartMutex_attributes); my_elog_init(); NaviKit_var_init(); /* USER CODE END Init */ @@ -202,22 +205,23 @@ void MX_FREERTOS_Init(void) { /* USER CODE BEGIN RTOS_THREADS */ /* add threads, ... */ - + //IWDG-------------------------------------------- + IWDGTaskHandle = osThreadNew(StartIWDGTask, NULL, &IWDGTask_attributes); //Power-------------------------------------------- // PowerMonitTaskHandle = osThreadNew(StartPowerMonitTask, NULL, &PowerMonitTask_attributes); //Button-------------------------------------------- -// ButtonDetectHandle = osThreadNew(StartButtonDetect, NULL, &ButtonDetect_attributes); + ButtonDetectTaskHandle = osThreadNew(StartButtonDetectTask, NULL, &ButtonDetectTask_attributes); //LED-------------------------------------------- -// LedBlinkTaskHandle = osThreadNew(StartLedBlinkTask, NULL, &LedBlinkTask_attributes); + LedBlinkTaskHandle = osThreadNew(StartLedBlinkTask, NULL, &LedBlinkTask_attributes); //CDC-------------------------------------------- -// cdcMonitorTaskHandle = osThreadNew(StartCdcMonitorTask, NULL, &cdcMonitorTask_attributes); + cdcMonitorTaskHandle = osThreadNew(StartCdcMonitorTask, NULL, &cdcMonitorTask_attributes); //Coulomb-------------------------------------------- @@ -230,10 +234,9 @@ void MX_FREERTOS_Init(void) { ElogFlushTaskHandle = osThreadNew(StartElogFlushTask, NULL, &ElogFlushTask_attributes); #endif - //Demo-------------------------------------------- -// DemoTask1Handle = osThreadNew(StartDemoTask1, NULL, &DemoTask1_attributes); -// DemoTask2Handle = osThreadNew(StartDemoTask2, NULL, &DemoTask2_attributes); + DemoTask1Handle = osThreadNew(StartDemoTask1, NULL, &DemoTask1_attributes); + DemoTask2Handle = osThreadNew(StartDemoTask2, NULL, &DemoTask2_attributes); /* USER CODE END RTOS_THREADS */ @@ -290,17 +293,17 @@ osVersion_t osVersion; // TaskBeep(50,1); } - log_i("----------------------------------------------"); - log_i("Copyright (c) Powered by www.autolabor.com.cn"); - #ifdef DEBUG - log_i("EC Firmware: %s[DEBUG], build: %s, %s",APP_VERSION,__DATE__ ,__TIME__); - #else - log_i("EC Firmware: %s[RELEASE], build: %s, %s",APP_VERSION,__DATE__ ,__TIME__); - #endif - log_i("HAL Version: 0x%X ", HAL_GetHalVersion()); - log_i("Revision ID: 0x%X ", HAL_GetREVID()); - log_i("Device ID: 0x%X ", HAL_GetDEVID()); - log_i("Chip UID: 0x%X%X%X ", HAL_GetUIDw0(),HAL_GetUIDw1(),HAL_GetUIDw2()); + log_i("----------------------------------------------"); + log_i("Copyright (c) Powered by www.autolabor.com.cn"); +#ifdef DEBUG + log_i("EC Firmware: %s[DEBUG], build: %s, %s",APP_VERSION,__DATE__ ,__TIME__); +#else + log_i("EC Firmware: %s[RELEASE], build: %s, %s",APP_VERSION,__DATE__ ,__TIME__); +#endif + log_i("HAL Version: 0x%X ", HAL_GetHalVersion()); + log_i("Revision ID: 0x%X ", HAL_GetREVID()); + log_i("Device ID: 0x%X ", HAL_GetDEVID()); + log_i("Chip UID: 0x%X%X%X ", HAL_GetUIDw0(),HAL_GetUIDw1(),HAL_GetUIDw2()); if(osOK == osKernelGetInfo(&osVersion,id_buf,id_size)){ log_i("OS Kernel Version: %u ", osVersion.kernel); @@ -311,12 +314,10 @@ osVersion_t osVersion; log_i("Log Library Version: V%s",ELOG_SW_VERSION); log_i("Core initial successfully"); - log_i("----------------------------------------------"); /* Infinite loop */ for(;;) { -// HAL_IWDG_Refresh(&hiwdg); osDelay(20); if(NaviKit.sys.sta != NaviKit.sys.next_sta){ switch(NaviKit.sys.next_sta){ @@ -367,7 +368,7 @@ osVersion_t osVersion; // } if(!osTimerIsRunning(IdleStateHoldTimerHandle)){ - osTimerStart(IdleStateHoldTimerHandle,5000); +// osTimerStart(IdleStateHoldTimerHandle,5000); } } diff --git a/Core/Src/i2c.c b/Core/Src/i2c.c index 7c0ac4d..5f7b5be 100644 --- a/Core/Src/i2c.c +++ b/Core/Src/i2c.c @@ -51,6 +51,13 @@ I2C_HandleTypeDef hi2c1; void MX_I2C1_Init(void) { + /* USER CODE BEGIN I2C1_Init 0 */ + + /* USER CODE END I2C1_Init 0 */ + + /* USER CODE BEGIN I2C1_Init 1 */ + + /* USER CODE END I2C1_Init 1 */ hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; @@ -64,6 +71,9 @@ void MX_I2C1_Init(void) { Error_Handler(); } + /* USER CODE BEGIN I2C1_Init 2 */ + + /* USER CODE END I2C1_Init 2 */ } diff --git a/Core/Src/iwdg.c b/Core/Src/iwdg.c index 300a78b..fed358e 100644 --- a/Core/Src/iwdg.c +++ b/Core/Src/iwdg.c @@ -30,6 +30,13 @@ IWDG_HandleTypeDef hiwdg; void MX_IWDG_Init(void) { + /* USER CODE BEGIN IWDG_Init 0 */ + + /* USER CODE END IWDG_Init 0 */ + + /* USER CODE BEGIN IWDG_Init 1 */ + + /* USER CODE END IWDG_Init 1 */ hiwdg.Instance = IWDG; hiwdg.Init.Prescaler = IWDG_PRESCALER_16; hiwdg.Init.Reload = 0xfff; @@ -37,6 +44,9 @@ void MX_IWDG_Init(void) { Error_Handler(); } + /* USER CODE BEGIN IWDG_Init 2 */ + + /* USER CODE END IWDG_Init 2 */ } diff --git a/Core/Src/main.c b/Core/Src/main.c index e2b0e1b..bc9f09a 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -96,17 +96,27 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DMA_Init(); -// MX_I2C1_Init(); -// MX_IWDG_Init(); -// MX_UART4_Init(); + MX_I2C1_Init(); + MX_IWDG_Init(); + MX_UART4_Init(); MX_ADC1_Init(); MX_USART1_UART_Init(); -// MX_RTC_Init(); + MX_RTC_Init(); /* Initialize interrupts */ MX_NVIC_Init(); /* USER CODE BEGIN 2 */ + //print log before kernel start +// uint8_t log_head[]="Autolabor EC Booting...\r\n"; +// HAL_UART_Transmit_DMA(&huart1, log_head, sizeof(log_head)); + if( hiwdg.Instance->SR & IWDG_KEY_ENABLE){ + uint8_t log_head[]="iwdg enable\r\n"; + HAL_UART_Transmit_DMA(&huart1, log_head, sizeof(log_head)); + }else{ + uint8_t log_head[]="iwdg disable\r\n"; + HAL_UART_Transmit_DMA(&huart1, log_head, sizeof(log_head)); + } /* USER CODE END 2 */ /* Init scheduler */ @@ -235,6 +245,18 @@ static void MX_NVIC_Init(void) /* EXTI4_IRQn interrupt configuration */ HAL_NVIC_SetPriority(EXTI4_IRQn, 5, 0); HAL_NVIC_EnableIRQ(EXTI4_IRQn); + /* DMA1_Channel4_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn); + /* DMA1_Channel5_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); + /* DMA2_Channel3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA2_Channel3_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(DMA2_Channel3_IRQn); + /* DMA2_Channel5_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA2_Channel5_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(DMA2_Channel5_IRQn); } /* USER CODE BEGIN 4 */ diff --git a/Core/Src/navikit.c b/Core/Src/navikit.c index c3fe894..46cac33 100644 --- a/Core/Src/navikit.c +++ b/Core/Src/navikit.c @@ -102,6 +102,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) void enter_standby_state(){ log_i("EC enter to STANDBY Mode to save power, see you!"); + osDelay(10); HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);//Enable PA0 wakeup function __HAL_RCC_RTC_DISABLE(); HAL_PWR_EnterSTANDBYMode(); diff --git a/Core/Src/rtc.c b/Core/Src/rtc.c index b21a246..6ee003a 100644 --- a/Core/Src/rtc.c +++ b/Core/Src/rtc.c @@ -30,6 +30,13 @@ RTC_HandleTypeDef hrtc; void MX_RTC_Init(void) { + /* USER CODE BEGIN RTC_Init 0 */ + + /* USER CODE END RTC_Init 0 */ + + /* USER CODE BEGIN RTC_Init 1 */ + + /* USER CODE END RTC_Init 1 */ /** Initialize RTC Only */ hrtc.Instance = RTC; @@ -39,6 +46,9 @@ void MX_RTC_Init(void) { Error_Handler(); } + /* USER CODE BEGIN RTC_Init 2 */ + + /* USER CODE END RTC_Init 2 */ } diff --git a/Middlewares/Lab-Project-FreeRTOS-POSIX b/Middlewares/Lab-Project-FreeRTOS-POSIX new file mode 160000 index 0000000..0c6cec9 --- /dev/null +++ b/Middlewares/Lab-Project-FreeRTOS-POSIX @@ -0,0 +1 @@ +Subproject commit 0c6cec978cd8163c8640c7c157cccba457dedabc diff --git a/NaviKit_EC_stm32 Debug.launch b/NaviKit_EC_stm32 Debug.launch index 9d649b7..2124351 100644 --- a/NaviKit_EC_stm32 Debug.launch +++ b/NaviKit_EC_stm32 Debug.launch @@ -70,4 +70,5 @@ </listAttribute> <stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList context="reserved-for-future-use"/> "/> <stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/> +<stringAttribute key="saved_expressions<seperator>Unknown" value="e810000,0xe810000"/> </launchConfiguration> diff --git a/NaviKit_EC_stm32 Release.launch b/NaviKit_EC_stm32 Release.launch index 519b745..1dec609 100644 --- a/NaviKit_EC_stm32 Release.launch +++ b/NaviKit_EC_stm32 Release.launch @@ -36,6 +36,7 @@ <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="false"/> <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value=""/> <stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/> +<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{"fItems":[{"fDisplayName":"Reset","fIsSuppressible":false,"fResetAttribute":"Reset","fResetStrategies":[{"fDisplayName":"Reset","fLaunchAttribute":"monitor reset","fGdbCommands":["monitor reset"],"fCmdOptions":[]},{"fDisplayName":"None","fLaunchAttribute":"no_reset","fGdbCommands":[],"fCmdOptions":[]}],"fGdbCommandGroup":{"name":"Additional commands","commands":[]}}]}"/> <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.swv.swv_wait_for_sync" value="true"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/> <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/> @@ -67,5 +68,6 @@ <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> <listEntry value="4"/> </listAttribute> +<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList context="reserved-for-future-use"/> "/> <stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/> </launchConfiguration> diff --git a/NaviKit_EC_stm32.ioc b/NaviKit_EC_stm32.ioc index 91d1368..8e24c9e 100644 --- a/NaviKit_EC_stm32.ioc +++ b/NaviKit_EC_stm32.ioc @@ -64,7 +64,47 @@ Dma.ADC1.0.PeriphInc=DMA_PINC_DISABLE Dma.ADC1.0.Priority=DMA_PRIORITY_LOW Dma.ADC1.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority Dma.Request0=ADC1 -Dma.RequestsNb=1 +Dma.Request1=USART1_TX +Dma.Request2=USART1_RX +Dma.Request3=UART4_RX +Dma.Request4=UART4_TX +Dma.RequestsNb=5 +Dma.UART4_RX.3.Direction=DMA_PERIPH_TO_MEMORY +Dma.UART4_RX.3.Instance=DMA2_Channel3 +Dma.UART4_RX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.UART4_RX.3.MemInc=DMA_MINC_ENABLE +Dma.UART4_RX.3.Mode=DMA_NORMAL +Dma.UART4_RX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.UART4_RX.3.PeriphInc=DMA_PINC_DISABLE +Dma.UART4_RX.3.Priority=DMA_PRIORITY_LOW +Dma.UART4_RX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority +Dma.UART4_TX.4.Direction=DMA_MEMORY_TO_PERIPH +Dma.UART4_TX.4.Instance=DMA2_Channel5 +Dma.UART4_TX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.UART4_TX.4.MemInc=DMA_MINC_ENABLE +Dma.UART4_TX.4.Mode=DMA_NORMAL +Dma.UART4_TX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.UART4_TX.4.PeriphInc=DMA_PINC_DISABLE +Dma.UART4_TX.4.Priority=DMA_PRIORITY_LOW +Dma.UART4_TX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority +Dma.USART1_RX.2.Direction=DMA_PERIPH_TO_MEMORY +Dma.USART1_RX.2.Instance=DMA1_Channel5 +Dma.USART1_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART1_RX.2.MemInc=DMA_MINC_ENABLE +Dma.USART1_RX.2.Mode=DMA_NORMAL +Dma.USART1_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART1_RX.2.PeriphInc=DMA_PINC_DISABLE +Dma.USART1_RX.2.Priority=DMA_PRIORITY_LOW +Dma.USART1_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority +Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH +Dma.USART1_TX.1.Instance=DMA1_Channel4 +Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE +Dma.USART1_TX.1.Mode=DMA_NORMAL +Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE +Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW +Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority FREERTOS.FootprintOK=true FREERTOS.HEAP_NUMBER=4 FREERTOS.INCLUDE_pcTaskGetTaskName=1 @@ -193,6 +233,10 @@ MxDb.Version=DB.6.0.20 NVIC.ADC1_2_IRQn=true\:5\:0\:false\:true\:true\:8\:true\:true\:true NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.DMA1_Channel1_IRQn=true\:5\:0\:false\:true\:true\:9\:true\:false\:true +NVIC.DMA1_Channel4_IRQn=true\:5\:0\:false\:true\:true\:17\:true\:false\:true +NVIC.DMA1_Channel5_IRQn=true\:5\:0\:false\:true\:true\:18\:true\:false\:true +NVIC.DMA2_Channel3_IRQn=true\:5\:0\:false\:true\:true\:19\:true\:false\:true +NVIC.DMA2_Channel5_IRQn=true\:5\:0\:false\:true\:true\:20\:true\:false\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:true\:false\:true\:false\:false\:false NVIC.EXTI0_IRQn=true\:5\:0\:false\:true\:true\:11\:true\:true\:true NVIC.EXTI3_IRQn=true\:5\:0\:false\:true\:true\:12\:true\:true\:true @@ -652,4 +696,4 @@ VP_SYS_VS_tim1.Signal=SYS_VS_tim1 VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS board=custom -isbadioc=true +isbadioc=false diff --git a/README.md b/README.md index d198825..ae0bcbd 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ * @Author: CK.Zh * @Date: 2020-02-20 11:39:38 * @LastEditors: CK.Zh - * @LastEditTime: 2021-03-10 11:40:42 + * @LastEditTime: 2021-03-10 13:48:33 --> # NaviKit_stm32 PM1导航套件中电源控制板源码,STM32F107VCT6,开发环境STM32CubeIDE @@ -32,12 +32,17 @@ 函数`void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd)` 代码段`HAL_PCD_SuspendCallback(hpcd); ` 务必屏蔽,否则导致枚举失败,提示获取设备描述符失败。 - > EC日志输出口波特率为56000bps + # 维护指南 * 为提高可移植性、可维护性、可阅读性,开发(应用层)时尽量使用`CMSIS_OS2`的抽象接口,特殊情况时再考虑使用RTOS的原生接口 -* 线程任务实例及属性、句柄的声明及定义,独立存放在`App`文件夹 +* `freertos.c`中的任务实体只保留默认任务, 其他线程任务实例、属性、句柄的声明及定义,独立存放在`App`文件夹 * 线程、定时器、事件标志、互斥锁、信号量、消息队列等功能的初始化统一在`freertos.c`文件中进行初始化(内核启动前的预装载) -* `freertos.c`中的任务实体只保留默认任务即可 + +# 日志接口 + +* 串口输出口波特率为56000bps +* 日志输出支持`CSI`颜色模式 + # 勘误 硬件的v1.0以前版本中,SYS_RESET脚和MOD_SLEEP到单片机的实际连接与网络标号是相反的(问题发生在TXB0108PWR芯片附近),故代码中在GPIO处进行了相反的设置。 \ No newline at end of file diff --git a/STM32F107VCTX_FLASH.ld b/STM32F107VCTX_FLASH.ld index 37b3bc0..d99bf74 100644 --- a/STM32F107VCTX_FLASH.ld +++ b/STM32F107VCTX_FLASH.ld @@ -55,8 +55,8 @@ ENTRY(Reset_Handler) /* Highest address of the user mode stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ -_Min_Heap_Size = 0x400 ; /* required amount of heap */ -_Min_Stack_Size = 0x800 ; /* required amount of stack */ +_Min_Heap_Size = 0x1f00 ; /* required amount of heap */ +_Min_Stack_Size = 0x1f00 ; /* required amount of stack */ /* Memories definition */ MEMORY diff --git a/USB_DEVICE/Target/usbd_conf.c b/USB_DEVICE/Target/usbd_conf.c index 1b8c255..1a16390 100644 --- a/USB_DEVICE/Target/usbd_conf.c +++ b/USB_DEVICE/Target/usbd_conf.c @@ -301,6 +301,7 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev) hpcd_USB_OTG_FS.Instance = USB_OTG_FS; hpcd_USB_OTG_FS.Init.dev_endpoints = 4; hpcd_USB_OTG_FS.Init.speed = PCD_SPEED_FULL; + hpcd_USB_OTG_FS.Init.phy_itface = PCD_PHY_EMBEDDED; hpcd_USB_OTG_FS.Init.Sof_enable = DISABLE; hpcd_USB_OTG_FS.Init.low_power_enable = DISABLE; hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE; diff --git a/USB_DEVICE/Target/usbd_conf.h b/USB_DEVICE/Target/usbd_conf.h index c84489b..e6fc6f8 100644 --- a/USB_DEVICE/Target/usbd_conf.h +++ b/USB_DEVICE/Target/usbd_conf.h @@ -1,10 +1,3 @@ -/* - * @Description: - * @Date: 2020-02-20 11:58:24 - * @LastEditors: CK.Zh - * @LastEditTime: 2021-03-09 18:32:44 - * @FilePath: \NaviKit_EC_stm32\USB_DEVICE\Target\usbd_conf.h - */ /* USER CODE BEGIN Header */ /** ****************************************************************************** @@ -76,7 +69,7 @@ /*---------- -----------*/ #define USBD_MAX_STR_DESC_SIZ 512 /*---------- -----------*/ -#define USBD_DEBUG_LEVEL 0 +#define USBD_DEBUG_LEVEL 3 /*---------- -----------*/ #define USBD_SELF_POWERED 1 /*---------- -----------*/