632 changed files with 363333 additions and 0 deletions
@ -0,0 +1,247 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> |
|||
<storageModule moduleId="org.eclipse.cdt.core.settings"> |
|||
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912"> |
|||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912" moduleId="org.eclipse.cdt.core.settings" name="Debug"> |
|||
<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"/> |
|||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
</extensions> |
|||
</storageModule> |
|||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
|||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912" name="Debug" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug"> |
|||
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912." name="/" resourcePath=""> |
|||
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.1999310814" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug"> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.555556475" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32H743VGTx" valueType="string"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1242211636" name="CPU" 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.2000965024" name="Core" 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.fpu.227974202" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv5-d16" valueType="enumerated"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.381957633" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.768448908" 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.1099763806" 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.5 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32H743VGTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Middlewares/Third_Party/LwIP/src/include/netif/ppp | ../Middlewares/Third_Party/LwIP/src/include/lwip/priv | ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy | ../Middlewares/Third_Party/LwIP/src/include/compat/stdc | ../Middlewares/Third_Party/LwIP/src/include/lwip/prot | ../Middlewares/Third_Party/LwIP/src/include/lwip/apps | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys | ../Middlewares/Third_Party/LwIP/system/arch | ../Middlewares/Third_Party/LwIP/src/include | ../LWIP/App | ../Middlewares/Third_Party/LwIP/src/include/compat/posix | ../Drivers/CMSIS/Include | ../Core/Inc | ../Drivers/CMSIS/Device/ST/STM32H7xx/Include | ../LWIP/Target | ../Middlewares/Third_Party/LwIP/src/include/lwip | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/net | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa | ../Drivers/STM32H7xx_HAL_Driver/Inc | ../Middlewares/Third_Party/LwIP/system | ../Drivers/BSP/Components/lan8742 | ../Middlewares/Third_Party/LwIP/src/include/netif || || || USE_HAL_DRIVER | STM32H743xx || || LWIP | Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || " valueType="string"/> |
|||
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.566417622" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="200" valueType="string"/> |
|||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.2019032613" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> |
|||
<builder buildPath="${workspace_loc:/BHBF_Robot_Detect}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1752705428" 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.70866068" 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.133108927" 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.g3" valueType="enumerated"/> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.2062091936" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols"> |
|||
<listOptionValue builtIn="false" value="DEBUG"/> |
|||
</option> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths.675558242" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths" valueType="includePath"> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/BSP}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/MSP}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/MSP/SteerEngine}""/> |
|||
<listOptionValue builtIn="false" value="/BHBF_Robot_LeiGuBan/Core/BASE"/> |
|||
</option> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1067181325" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1206119803" 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.1004986992" 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.613764472" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false"/> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1100922921" 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="DEBUG"/> |
|||
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> |
|||
<listOptionValue builtIn="false" value="STM32H743xx"/> |
|||
</option> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1592849673" 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="../Core/Inc"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32H7xx/Include"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/> |
|||
<listOptionValue builtIn="false" value="../LWIP/App"/> |
|||
<listOptionValue builtIn="false" value="../LWIP/Target"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/system"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/BSP/Components/lan8742"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/netif/ppp"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/apps"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/priv"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/prot"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/netif"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/net"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/stdc"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/system/arch"/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Inc/BSP}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Inc/BSP/DLT}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Inc/MSP}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Inc/MSP/SteerEngine}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/Protobuf/PSource}""/> |
|||
</option> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1875395144" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1331254744" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler"> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1181398770" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g3" valueType="enumerated"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1136913521" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.781122670" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.975060295" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld}" valueType="string"/> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.126109057" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input"> |
|||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> |
|||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> |
|||
</inputType> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.618192742" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1782033746" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.436382718" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.1980650523" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.1120618345" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.152900436" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1601259826" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1941358903" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.799850565" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/> |
|||
</toolChain> |
|||
</folderInfo> |
|||
<sourceEntries> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="LWIP"/> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/> |
|||
</sourceEntries> |
|||
</configuration> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> |
|||
</cconfiguration> |
|||
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1322898427"> |
|||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1322898427" moduleId="org.eclipse.cdt.core.settings" name="Release"> |
|||
<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"/> |
|||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
|||
</extensions> |
|||
</storageModule> |
|||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
|||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1322898427" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release"> |
|||
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1322898427." name="/" resourcePath=""> |
|||
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.1547597857" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release"> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.1410470689" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32H743VGTx" valueType="string"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.870155125" name="CPU" 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.2018066716" name="Core" 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.fpu.992567197" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv5-d16" valueType="enumerated"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1144232392" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.194020544" 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.2100472703" 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.5 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32H743VGTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Middlewares/Third_Party/LwIP/src/include/netif/ppp | ../Middlewares/Third_Party/LwIP/src/include/lwip/priv | ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy | ../Middlewares/Third_Party/LwIP/src/include/compat/stdc | ../Middlewares/Third_Party/LwIP/src/include/lwip/prot | ../Middlewares/Third_Party/LwIP/src/include/lwip/apps | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys | ../Middlewares/Third_Party/LwIP/system/arch | ../Middlewares/Third_Party/LwIP/src/include | ../LWIP/App | ../Middlewares/Third_Party/LwIP/src/include/compat/posix | ../Drivers/CMSIS/Include | ../Core/Inc | ../Drivers/CMSIS/Device/ST/STM32H7xx/Include | ../LWIP/Target | ../Middlewares/Third_Party/LwIP/src/include/lwip | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/net | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa | ../Drivers/STM32H7xx_HAL_Driver/Inc | ../Middlewares/Third_Party/LwIP/system | ../Drivers/BSP/Components/lan8742 | ../Middlewares/Third_Party/LwIP/src/include/netif || || || USE_HAL_DRIVER | STM32H743xx || || LWIP | Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || " valueType="string"/> |
|||
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.349585402" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="200" valueType="string"/> |
|||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.504050356" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> |
|||
<builder buildPath="${workspace_loc:/BHBF_Robot_Detect}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1435115632" 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.1473308058" 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.1607051634" 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="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths.1621792655" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths" valueType="includePath"> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/BSP}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/MSP}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/MSP/SteerEngine}""/> |
|||
<listOptionValue builtIn="false" value="/BHBF_Robot_LeiGuBan/Core/BASE"/> |
|||
</option> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1586091832" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.319656371" 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.555485472" 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.1106343697" 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.os" valueType="enumerated"/> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1261730363" 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="STM32H743xx"/> |
|||
</option> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.6601227" 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="../Core/Inc"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32H7xx/Include"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/> |
|||
<listOptionValue builtIn="false" value="../LWIP/App"/> |
|||
<listOptionValue builtIn="false" value="../LWIP/Target"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/system"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/BSP/Components/lan8742"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/netif/ppp"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/apps"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/priv"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/prot"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/netif"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/net"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/stdc"/> |
|||
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/system/arch"/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/BSP}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/MSP}""/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/BHBF_Robot_LeiGuBan/Core/BASE/Inc/MSP/SteerEngine}""/> |
|||
<listOptionValue builtIn="false" value="/BHBF_Robot_LeiGuBan/Core/BASE"/> |
|||
</option> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1819991972" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1052291925" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler"> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1211650127" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.624188949" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.476422491" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.1905838036" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld}" valueType="string"/> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1723740925" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input"> |
|||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> |
|||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> |
|||
</inputType> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1709704951" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1745189211" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.802105533" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.830267809" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.1134210813" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1134287782" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1854232311" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.2088908787" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.800843731" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/> |
|||
</toolChain> |
|||
</folderInfo> |
|||
<sourceEntries> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="LWIP"/> |
|||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/> |
|||
</sourceEntries> |
|||
</configuration> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> |
|||
</cconfiguration> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.core.pathentry"/> |
|||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
|||
<project id="BHBF_Robot_Detect.null.793203229" name="BHBF_Robot_Detect"/> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> |
|||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> |
|||
<storageModule moduleId="scannerConfiguration"> |
|||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> |
|||
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1322898427;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1322898427.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.319656371;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1819991972"> |
|||
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> |
|||
</scannerConfigBuildInfo> |
|||
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1206119803;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1875395144"> |
|||
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> |
|||
</scannerConfigBuildInfo> |
|||
</storageModule> |
|||
<storageModule moduleId="refreshScope" versionNumber="2"> |
|||
<configuration configurationName="Debug"> |
|||
<resource resourceType="PROJECT" workspacePath="/BHBF_Robot_LeiGuBan"/> |
|||
</configuration> |
|||
<configuration configurationName="Release"> |
|||
<resource resourceType="PROJECT" workspacePath="/BHBF_Robot_LeiGuBan"/> |
|||
</configuration> |
|||
</storageModule> |
|||
</cproject> |
|||
@ -0,0 +1,2 @@ |
|||
/Release/ |
|||
/Debug/ |
|||
@ -0,0 +1,18 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<Configuration status="info"> |
|||
<ThresholdFilter level="INFO"/> |
|||
<Appenders> |
|||
<RollingFile name="DEBUGFILE" fileName="E:/BingooWorkingSpace/BHBF_Robot_Detect/.metadata/.ide.log" filePattern="E:/BingooWorkingSpace/BHBF_Robot_Detect/.metadata/.ide.log-%d{yyyy-MM-dd}.log"> |
|||
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %c{1}:%L - %m%n" /> |
|||
<Policies> |
|||
<TimeBasedTriggeringPolicy interval="1" modulate="true" /> |
|||
<SizeBasedTriggeringPolicy size="50MB"/> |
|||
</Policies> |
|||
</RollingFile> |
|||
</Appenders> |
|||
<Loggers> |
|||
<Root level="ALL"> |
|||
<AppenderRef ref="DEBUGFILE" /> |
|||
</Root> |
|||
</Loggers> |
|||
</Configuration> |
|||
@ -0,0 +1 @@ |
|||
|
|||
@ -0,0 +1 @@ |
|||
|
|||
@ -0,0 +1,5 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<section name="Workbench"> |
|||
<section name="org.eclipse.cdt.internal.ui.MakeView"> |
|||
</section> |
|||
</section> |
|||
Binary file not shown.
@ -0,0 +1 @@ |
|||
|
|||
@ -0,0 +1 @@ |
|||
|
|||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
project_presentation/setHierarchicalMode=false |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.cdt.debug.core.cDebug.default_source_containers=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<sourceLookupDirector>\r\n <sourceContainers duplicates\="false">\r\n <container memento\="AbsolutePath" typeId\="org.eclipse.cdt.debug.core.containerType.absolutePath"/>\r\n <container memento\="programRelativePath" typeId\="org.eclipse.cdt.debug.core.containerType.programRelativePath"/>\r\n <container memento\="<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>&\#13;&\#10;<project referencedProjects\="true"/>&\#13;&\#10;" typeId\="org.eclipse.cdt.debug.core.containerType.project"/>\r\n </sourceContainers>\r\n</sourceLookupDirector>\r\n |
|||
@ -0,0 +1,4 @@ |
|||
eclipse.preferences.version=1 |
|||
spelling_locale_initialized=true |
|||
useAnnotationsPrefPage=true |
|||
useQuickDiffPrefPage=true |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
version=1 |
|||
@ -0,0 +1,5 @@ |
|||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.applicationLaunchType=org.eclipse.cdt.dsf.gdb.launch.localCLaunch,debug,;org.eclipse.cdt.cdi.launch.localCLaunch,run,; |
|||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.attachLaunchType=org.eclipse.cdt.dsf.gdb.launch.attachCLaunch,debug,; |
|||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.postmortemLaunchType=org.eclipse.cdt.dsf.gdb.launch.coreCLaunch,debug,; |
|||
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.remoteApplicationLaunchType=org.eclipse.rse.remotecdt.dsf.debug,debug,; |
|||
eclipse.preferences.version=1 |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.jsch.core.hasChangedDefaultWin32SshHome=true |
|||
@ -0,0 +1,4 @@ |
|||
eclipse.preferences.version=1 |
|||
platformState=1711943664369 |
|||
quickStart=false |
|||
tipsAndTricks=true |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.ui.navigator.ProjectExplorer.filterActivation=\:org.eclipse.ui.navigator.resources.filters.startsWithDot\:org.eclipse.cdt.ui.navigator.filters.AnonymousStructFilter\:org.eclipse.cdt.ui.navigator.filters.AbsentTranslationUnitFilter\:org.eclipse.ui.navigator.resources.nested.HideTopLevelProjectIfNested\:org.eclipse.ui.navigator.resources.nested.HideFolderWhenProjectIsShownAsNested\:org.eclipse.cdt.ui.navigator.filters.ForwardDeclarationFilter\: |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
showIntro=false |
|||
@ -0,0 +1,9 @@ |
|||
//org.eclipse.ui.commands/state/com.st.stm32cube.ide.mcu.buildanalyzer.showstate/org.eclipse.ui.commands.radioState=human |
|||
//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_END=255,255,255 |
|||
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_START=255,255,255 |
|||
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_TEXT_COLOR=16,16,16 |
|||
org.eclipse.ui.workbench.ACTIVE_TAB_BG_END=255,255,255 |
|||
org.eclipse.ui.workbench.ACTIVE_TAB_BG_START=255,255,255 |
|||
org.eclipse.ui.workbench.INACTIVE_TAB_BG_START=242,242,242 |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
processedSchemes=,eclipse+command,eclipse+mpc |
|||
File diff suppressed because it is too large
@ -0,0 +1,11 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<projectDescription> |
|||
<name>.org.eclipse.egit.core.cmp</name> |
|||
<comment></comment> |
|||
<projects> |
|||
</projects> |
|||
<buildSpec> |
|||
</buildSpec> |
|||
<natures> |
|||
</natures> |
|||
</projectDescription> |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
encoding/<project>=UTF-8 |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<section name="Workbench"> |
|||
<section name="ExternalProjectImportWizard"> |
|||
<item key="WizardProjectsImportPage.STORE_NESTED_PROJECTS" value="true"/> |
|||
</section> |
|||
</section> |
|||
@ -0,0 +1,4 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<workingSetManager> |
|||
<workingSet aggregate="true" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1719473879738_0" label="Window Working Set" name="Aggregate for window 1719473879738"/> |
|||
</workingSetManager> |
|||
@ -0,0 +1,3 @@ |
|||
#Thu Jun 27 15:38:50 CST 2024 |
|||
org.eclipse.core.runtime=2 |
|||
org.eclipse.platform=4.30.0.v20231201-0110 |
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,32 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<projectDescription> |
|||
<name>BHBF_Robot_Lifting_Lug</name> |
|||
<comment></comment> |
|||
<projects> |
|||
</projects> |
|||
<buildSpec> |
|||
<buildCommand> |
|||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> |
|||
<triggers>clean,full,incremental,</triggers> |
|||
<arguments> |
|||
</arguments> |
|||
</buildCommand> |
|||
<buildCommand> |
|||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> |
|||
<triggers>full,incremental,</triggers> |
|||
<arguments> |
|||
</arguments> |
|||
</buildCommand> |
|||
</buildSpec> |
|||
<natures> |
|||
<nature>com.st.stm32cube.ide.mcu.MCUProjectNature</nature> |
|||
<nature>com.st.stm32cube.ide.mcu.MCUCubeProjectNature</nature> |
|||
<nature>org.eclipse.cdt.core.cnature</nature> |
|||
<nature>com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature</nature> |
|||
<nature>com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature</nature> |
|||
<nature>com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature</nature> |
|||
<nature>com.st.stm32cube.ide.mcu.MCURootProjectNature</nature> |
|||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> |
|||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> |
|||
</natures> |
|||
</projectDescription> |
|||
@ -0,0 +1,3 @@ |
|||
eclipse.preferences.version=1 |
|||
svd_custom_file_path= |
|||
svd_file_path=platform\:/plugin/com.st.stm32cube.ide.mcu.productdb.debug/resources/cmsis/STMicroelectronics_CMSIS_SVD/STM32H743.svd |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}} |
|||
@ -0,0 +1,25 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<project> |
|||
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912" name="Debug"> |
|||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> |
|||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> |
|||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> |
|||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> |
|||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-908643646371710148" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> |
|||
<language-scope id="org.eclipse.cdt.core.gcc"/> |
|||
<language-scope id="org.eclipse.cdt.core.g++"/> |
|||
</provider> |
|||
</extension> |
|||
</configuration> |
|||
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1322898427" name="Release"> |
|||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> |
|||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> |
|||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> |
|||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> |
|||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-908643646371710148" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> |
|||
<language-scope id="org.eclipse.cdt.core.gcc"/> |
|||
<language-scope id="org.eclipse.cdt.core.g++"/> |
|||
</provider> |
|||
</extension> |
|||
</configuration> |
|||
</project> |
|||
@ -0,0 +1,76 @@ |
|||
com.st.stm32cube.ide.mcu.ide.oss.source.checker.libnano.problem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Float formatting support\\")"} |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} |
|||
org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} |
|||
org.eclipse.cdt.codan.checkers.localvarreturn=-Warning |
|||
org.eclipse.cdt.codan.checkers.localvarreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Returning the address of a local variable\\")"} |
|||
org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} |
|||
org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} |
|||
org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.BlacklistProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.BlacklistProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function or method is blacklisted\\")",blacklist\=>()} |
|||
org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")",checkMacro\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} |
|||
org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} |
|||
org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Direct float comparison\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Avoid magic numbers\\")",checkArray\=>true,checkOperatorParen\=>true,exceptions\=>(1,0,-1,2,1.0,0.0,-1.0)} |
|||
org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Multiple variable declaration\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} |
|||
org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem=Warning |
|||
org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return value not evaluated\\")",macro\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Miss copy constructor or assignment operator\\")",onlynew\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} |
|||
org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Static variable in header file\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.StructuredBindingDeclarationProblem=Error |
|||
org.eclipse.cdt.codan.internal.checkers.StructuredBindingDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,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 structured binding declaration\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} |
|||
org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol shadowing\\")",paramFuncParameters\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} |
|||
org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} |
|||
org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning |
|||
org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} |
|||
org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error |
|||
org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} |
|||
@ -0,0 +1,194 @@ |
|||
doxygen/doxygen_new_line_after_brief=true |
|||
doxygen/doxygen_use_brief_tag=false |
|||
doxygen/doxygen_use_javadoc_tags=true |
|||
doxygen/doxygen_use_pre_tag=false |
|||
doxygen/doxygen_use_structural_commands=false |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16 |
|||
org.eclipse.cdt.core.formatter.alignment_for_assignment=16 |
|||
org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80 |
|||
org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16 |
|||
org.eclipse.cdt.core.formatter.alignment_for_compact_if=16 |
|||
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34 |
|||
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18 |
|||
org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=0 |
|||
org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16 |
|||
org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48 |
|||
org.eclipse.cdt.core.formatter.alignment_for_expression_list=0 |
|||
org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16 |
|||
org.eclipse.cdt.core.formatter.alignment_for_lambda_expression=20 |
|||
org.eclipse.cdt.core.formatter.alignment_for_member_access=0 |
|||
org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=16 |
|||
org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16 |
|||
org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 |
|||
org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=next_line |
|||
org.eclipse.cdt.core.formatter.brace_position_for_block=next_line |
|||
org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=next_line |
|||
org.eclipse.cdt.core.formatter.brace_position_for_linkage_declaration=next_line |
|||
org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line |
|||
org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=next_line |
|||
org.eclipse.cdt.core.formatter.brace_position_for_switch=next_line |
|||
org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=next_line |
|||
org.eclipse.cdt.core.formatter.comment.line_up_line_comment_in_blocks_on_first_column=false |
|||
org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1 |
|||
org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column=true |
|||
org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=true |
|||
org.eclipse.cdt.core.formatter.comment_formatter_off_tag=@formatter\:off |
|||
org.eclipse.cdt.core.formatter.comment_formatter_on_tag=@formatter\:on |
|||
org.eclipse.cdt.core.formatter.compact_else_if=true |
|||
org.eclipse.cdt.core.formatter.continuation_indentation=2 |
|||
org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2 |
|||
org.eclipse.cdt.core.formatter.format_block_comment=true |
|||
org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false |
|||
org.eclipse.cdt.core.formatter.format_header_comment=true |
|||
org.eclipse.cdt.core.formatter.format_line_comment=true |
|||
org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=false |
|||
org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0 |
|||
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true |
|||
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_linkage=false |
|||
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=false |
|||
org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true |
|||
org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false |
|||
org.eclipse.cdt.core.formatter.indent_empty_lines=false |
|||
org.eclipse.cdt.core.formatter.indent_label_compare_to_statements=true |
|||
org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true |
|||
org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true |
|||
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true |
|||
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=true |
|||
org.eclipse.cdt.core.formatter.indentation.size=4 |
|||
org.eclipse.cdt.core.formatter.insert_new_line_after_colon_in_constructor_initializer_list=insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_after_label=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_structured_binding_name_list=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_lambda_return=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_opening_structured_binding_name_list=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_pointer_in_declarator_list=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_pointer_in_method_declaration=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_closing_structured_binding_name_list=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_structured_binding_name_list=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_lambda_return=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_linkage_declaration=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_opening_structured_binding_name_list=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_pointer_in_declarator_list=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_pointer_in_method_declaration=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_ref_qualifier_in_structured_binding=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert |
|||
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert |
|||
org.eclipse.cdt.core.formatter.join_wrapped_lines=true |
|||
org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false |
|||
org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false |
|||
org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false |
|||
org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=false |
|||
org.eclipse.cdt.core.formatter.lineSplit=80 |
|||
org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1 |
|||
org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true |
|||
org.eclipse.cdt.core.formatter.tabulation.char=mixed |
|||
org.eclipse.cdt.core.formatter.tabulation.size=4 |
|||
org.eclipse.cdt.core.formatter.use_comment_formatter_tag=true |
|||
org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=false |
|||
@ -0,0 +1,3 @@ |
|||
eclipse.preferences.version=1 |
|||
formatter_profile=_K&R [built-in-3] |
|||
formatter_settings_version=1 |
|||
@ -0,0 +1,2 @@ |
|||
eclipse.preferences.version=1 |
|||
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false |
|||
@ -0,0 +1,6 @@ |
|||
2F62501ED4689FB349E356AB974DBE57=21135FF466FE4A58D648DD3E92D999B0 |
|||
635E684B79701B039C64EA45C3F84D30=4EFF5836660CD2DC8E70993B25E2A49D |
|||
66BE74F758C12D739921AEA421D593D3=1 |
|||
8DF89ED150041C4CBC7CB9A9CAA90856=21135FF466FE4A58D648DD3E92D999B0 |
|||
DC22A860405A8BF2F2C095E5B6529F12=F08B3E54D888488C3B7E755B1A9A5DE6 |
|||
eclipse.preferences.version=1 |
|||
@ -0,0 +1,83 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType"> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.cubeprog_external_loaders" value="[]"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_certif_path" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_check_enable" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_key_path" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_permission" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/> |
|||
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{"fItems":[{"fIsFromMainTab":true,"fPath":"Debug/BHBF_Robot_Detect.elf","fProjectName":"BHBF_Robot_Detect","fPerformBuild":true,"fDownload":true,"fLoadSymbols":true}]}"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="16000000"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="D:\003_Programmer\000_STM32Project\BHBF_Robot_Detect\Debug\st-link_gdbserver_log.txt"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/> |
|||
<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"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{"fVersion":1,"fItems":[{"fDisplayName":"Reset","fIsSuppressible":false,"fResetAttribute":"Software system reset","fResetStrategies":[{"fDisplayName":"Software system reset","fLaunchAttribute":"system_reset","fGdbCommands":["monitor reset\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Hardware reset","fLaunchAttribute":"hardware_reset","fGdbCommands":["monitor reset hardware\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Core reset","fLaunchAttribute":"core_reset","fGdbCommands":["monitor reset core\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"None","fLaunchAttribute":"no_reset","fGdbCommands":[],"fCmdOptions":["-g"]}],"fGdbCommandGroup":{"name":"Additional commands","commands":[]},"fStartApplication":true}]}"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="threadx"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="cortex_m0"/> |
|||
<intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/> |
|||
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/> |
|||
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> |
|||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/> |
|||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> |
|||
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/BHBF_Robot_Detect.elf"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="BHBF_Robot_Detect"/> |
|||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912"/> |
|||
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/> |
|||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> |
|||
<listEntry value="/BHBF_Robot_Detect"/> |
|||
</listAttribute> |
|||
<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"><gdbmemoryBlockExpression address="134383260" label="0x0802869c"/><gdbmemoryBlockExpression address="134383260" label="0x0802869c"/></memoryBlockExpressionList>"/> |
|||
<stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/> |
|||
</launchConfiguration> |
|||
Binary file not shown.
@ -0,0 +1,242 @@ |
|||
Configuration BHBF_Robot_Detect |
|||
STM32CubeMX 6.11.0 |
|||
Date 06/25/2024 |
|||
MCU STM32H743VGTx |
|||
|
|||
|
|||
|
|||
PERIPHERALS MODES FUNCTIONS PINS |
|||
DEBUG Serial Wire DEBUG_JTCK-SWCLK PA14 (JTCK/SWCLK) |
|||
DEBUG Serial Wire DEBUG_JTMS-SWDIO PA13 (JTMS/SWDIO) |
|||
ETH RMII ETH_CRS_DV PA7 |
|||
ETH RMII ETH_MDC PC1 |
|||
ETH RMII ETH_MDIO PA2 |
|||
ETH RMII ETH_REF_CLK PA1 |
|||
ETH RMII ETH_RXD0 PC4 |
|||
ETH RMII ETH_RXD1 PC5 |
|||
ETH RMII ETH_TXD0 PB12 |
|||
ETH RMII ETH_TXD1 PB13 |
|||
ETH RMII ETH_TX_EN PB11 |
|||
FDCAN1 Activated FDCAN1_RX PB8 |
|||
FDCAN1 Activated FDCAN1_TX PB9 |
|||
FDCAN2 Activated FDCAN2_RX PB5 |
|||
FDCAN2 Activated FDCAN2_TX PB6 |
|||
I2C4 I2C I2C4_SCL PD12 |
|||
I2C4 I2C I2C4_SDA PD13 |
|||
RCC Crystal/Ceramic Resonator RCC_OSC_IN PH0-OSC_IN (PH0) |
|||
RCC Crystal/Ceramic Resonator RCC_OSC_OUT PH1-OSC_OUT (PH1) |
|||
SYS SysTick SYS_VS_Systick VP_SYS_VS_Systick |
|||
TIM1 Internal Clock TIM1_VS_ClockSourceINT VP_TIM1_VS_ClockSourceINT |
|||
TIM8 Internal Clock TIM8_VS_ClockSourceINT VP_TIM8_VS_ClockSourceINT |
|||
UART4 Asynchronous UART4_RX PA11 |
|||
UART4 Asynchronous UART4_TX PA12 |
|||
UART5 Asynchronous UART5_RX PD2 |
|||
UART5 Asynchronous UART5_TX PC12 |
|||
UART7 Asynchronous UART7_RX PA8 |
|||
UART7 Asynchronous UART7_TX PA15 (JTDI) |
|||
USART1 Asynchronous USART1_RX PB15 |
|||
USART1 Asynchronous USART1_TX PB14 |
|||
USART2 Asynchronous USART2_RX PD6 |
|||
USART2 Asynchronous USART2_TX PD5 |
|||
USART3 Asynchronous USART3_RX PD9 |
|||
USART3 Asynchronous USART3_TX PD8 |
|||
USART6 Asynchronous USART6_RX PC7 |
|||
USART6 Asynchronous USART6_TX PC6 |
|||
|
|||
|
|||
|
|||
Pin Nb PINs FUNCTIONs LABELs |
|||
1 PE2 GPIO_Input IN_0 |
|||
2 PE3 GPIO_Input IN_1 |
|||
3 PE4 GPIO_Input IN_2 |
|||
4 PE5 GPIO_Input IN_3 |
|||
5 PE6 GPIO_Input IN_4 |
|||
7 PC13 GPIO_Input IN_5 |
|||
12 PH0-OSC_IN (PH0) RCC_OSC_IN |
|||
13 PH1-OSC_OUT (PH1) RCC_OSC_OUT |
|||
15 PC0 GPIO_Output RST_WDI |
|||
16 PC1 ETH_MDC |
|||
17 PC2_C GPIO_Output OUT_0 |
|||
18 PC3_C GPIO_Output OUT_1 |
|||
22 PA0 GPIO_Output OUT_2 |
|||
23 PA1 ETH_REF_CLK |
|||
24 PA2 ETH_MDIO |
|||
25 PA3 GPIO_Output OUT_3 |
|||
28 PA4 GPIO_Output OUT_4 |
|||
29 PA5 GPIO_Output OUT_5 |
|||
30 PA6 GPIO_Output ETH_RST |
|||
31 PA7 ETH_CRS_DV |
|||
32 PC4 ETH_RXD0 |
|||
33 PC5 ETH_RXD1 |
|||
41 PE11 GPIO_Output EEPROM_WP |
|||
42 PE12 GPIO_Output EEPROM_SCL |
|||
43 PE13 GPIO_Input EEPROM_SDA |
|||
47 PB11 ETH_TX_EN |
|||
51 PB12 ETH_TXD0 |
|||
52 PB13 ETH_TXD1 |
|||
53 PB14 USART1_TX |
|||
54 PB15 USART1_RX |
|||
55 PD8 USART3_TX |
|||
56 PD9 USART3_RX |
|||
57 PD10 GPIO_Output RS485_1_DIR |
|||
58 PD11 GPIO_Output RS485_2_DIR |
|||
59 PD12 I2C4_SCL |
|||
60 PD13 I2C4_SDA |
|||
61 PD14 GPIO_EXTI14 |
|||
63 PC6 USART6_TX |
|||
64 PC7 USART6_RX |
|||
65 PC8 GPIO_Output RS485_3_DIR |
|||
66 PC9 GPIO_Output RS485_4_DIR |
|||
67 PA8 UART7_RX |
|||
70 PA11 UART4_RX |
|||
71 PA12 UART4_TX |
|||
72 PA13 (JTMS/SWDIO) DEBUG_JTMS-SWDIO |
|||
76 PA14 (JTCK/SWCLK) DEBUG_JTCK-SWCLK |
|||
77 PA15 (JTDI) UART7_TX |
|||
78 PC10 GPIO_Output E22_RST |
|||
80 PC12 UART5_TX |
|||
81 PD0 GPIO_Output E28_M0 |
|||
82 PD1 GPIO_Output E28_M1 |
|||
83 PD2 UART5_RX |
|||
84 PD3 GPIO_Output E28_M2 |
|||
85 PD4 GPIO_EXTI4 E28_AUX |
|||
86 PD5 USART2_TX |
|||
87 PD6 USART2_RX |
|||
91 PB5 FDCAN2_RX |
|||
92 PB6 FDCAN2_TX |
|||
93 PB7 GPIO_Output E22_M1 |
|||
95 PB8 FDCAN1_RX |
|||
96 PB9 FDCAN1_TX |
|||
97 PE0 GPIO_Output E22_M0 |
|||
98 PE1 GPIO_EXTI1 E22_AUX |
|||
PERIPHERALS MODES FUNCTIONS PINS |
|||
DEBUG Serial Wire DEBUG_JTCK-SWCLK PA14 (JTCK/SWCLK) |
|||
DEBUG Serial Wire DEBUG_JTMS-SWDIO PA13 (JTMS/SWDIO) |
|||
ETH RMII ETH_CRS_DV PA7 |
|||
ETH RMII ETH_MDC PC1 |
|||
ETH RMII ETH_MDIO PA2 |
|||
ETH RMII ETH_REF_CLK PA1 |
|||
ETH RMII ETH_RXD0 PC4 |
|||
ETH RMII ETH_RXD1 PC5 |
|||
ETH RMII ETH_TXD0 PB12 |
|||
ETH RMII ETH_TXD1 PB13 |
|||
ETH RMII ETH_TX_EN PB11 |
|||
FDCAN1 Activated FDCAN1_RX PB8 |
|||
FDCAN1 Activated FDCAN1_TX PB9 |
|||
FDCAN2 Activated FDCAN2_RX PB5 |
|||
FDCAN2 Activated FDCAN2_TX PB6 |
|||
I2C4 I2C I2C4_SCL PD12 |
|||
I2C4 I2C I2C4_SDA PD13 |
|||
RCC Crystal/Ceramic Resonator RCC_OSC_IN PH0-OSC_IN (PH0) |
|||
RCC Crystal/Ceramic Resonator RCC_OSC_OUT PH1-OSC_OUT (PH1) |
|||
SYS SysTick SYS_VS_Systick VP_SYS_VS_Systick |
|||
TIM1 Internal Clock TIM1_VS_ClockSourceINT VP_TIM1_VS_ClockSourceINT |
|||
TIM8 Internal Clock TIM8_VS_ClockSourceINT VP_TIM8_VS_ClockSourceINT |
|||
UART4 Asynchronous UART4_RX PA11 |
|||
UART4 Asynchronous UART4_TX PA12 |
|||
UART5 Asynchronous UART5_RX PD2 |
|||
UART5 Asynchronous UART5_TX PC12 |
|||
UART7 Asynchronous UART7_RX PA8 |
|||
UART7 Asynchronous UART7_TX PA15 (JTDI) |
|||
USART1 Asynchronous USART1_RX PB15 |
|||
USART1 Asynchronous USART1_TX PB14 |
|||
USART2 Asynchronous USART2_RX PD6 |
|||
USART2 Asynchronous USART2_TX PD5 |
|||
USART3 Asynchronous USART3_RX PD9 |
|||
USART3 Asynchronous USART3_TX PD8 |
|||
USART6 Asynchronous USART6_RX PC7 |
|||
USART6 Asynchronous USART6_TX PC6 |
|||
|
|||
|
|||
|
|||
Pin Nb PINs FUNCTIONs LABELs |
|||
1 PE2 GPIO_Input IN_0 |
|||
2 PE3 GPIO_Input IN_1 |
|||
3 PE4 GPIO_Input IN_2 |
|||
4 PE5 GPIO_Input IN_3 |
|||
5 PE6 GPIO_Input IN_4 |
|||
7 PC13 GPIO_Input IN_5 |
|||
12 PH0-OSC_IN (PH0) RCC_OSC_IN |
|||
13 PH1-OSC_OUT (PH1) RCC_OSC_OUT |
|||
15 PC0 GPIO_Output RST_WDI |
|||
16 PC1 ETH_MDC |
|||
17 PC2_C GPIO_Output OUT_0 |
|||
18 PC3_C GPIO_Output OUT_1 |
|||
22 PA0 GPIO_Output OUT_2 |
|||
23 PA1 ETH_REF_CLK |
|||
24 PA2 ETH_MDIO |
|||
25 PA3 GPIO_Output OUT_3 |
|||
28 PA4 GPIO_Output OUT_4 |
|||
29 PA5 GPIO_Output OUT_5 |
|||
30 PA6 GPIO_Output ETH_RST |
|||
31 PA7 ETH_CRS_DV |
|||
32 PC4 ETH_RXD0 |
|||
33 PC5 ETH_RXD1 |
|||
41 PE11 GPIO_Output EEPROM_WP |
|||
42 PE12 GPIO_Output EEPROM_SCL |
|||
43 PE13 GPIO_Input EEPROM_SDA |
|||
47 PB11 ETH_TX_EN |
|||
51 PB12 ETH_TXD0 |
|||
52 PB13 ETH_TXD1 |
|||
53 PB14 USART1_TX |
|||
54 PB15 USART1_RX |
|||
55 PD8 USART3_TX |
|||
56 PD9 USART3_RX |
|||
57 PD10 GPIO_Output RS485_1_DIR |
|||
58 PD11 GPIO_Output RS485_2_DIR |
|||
59 PD12 I2C4_SCL |
|||
60 PD13 I2C4_SDA |
|||
61 PD14 GPIO_EXTI14 |
|||
63 PC6 USART6_TX |
|||
64 PC7 USART6_RX |
|||
65 PC8 GPIO_Output RS485_3_DIR |
|||
66 PC9 GPIO_Output RS485_4_DIR |
|||
67 PA8 UART7_RX |
|||
70 PA11 UART4_RX |
|||
71 PA12 UART4_TX |
|||
72 PA13 (JTMS/SWDIO) DEBUG_JTMS-SWDIO |
|||
76 PA14 (JTCK/SWCLK) DEBUG_JTCK-SWCLK |
|||
77 PA15 (JTDI) UART7_TX |
|||
78 PC10 GPIO_Output E22_RST |
|||
80 PC12 UART5_TX |
|||
81 PD0 GPIO_Output E28_M0 |
|||
82 PD1 GPIO_Output E28_M1 |
|||
83 PD2 UART5_RX |
|||
84 PD3 GPIO_Output E28_M2 |
|||
85 PD4 GPIO_EXTI4 E28_AUX |
|||
86 PD5 USART2_TX |
|||
87 PD6 USART2_RX |
|||
91 PB5 FDCAN2_RX |
|||
92 PB6 FDCAN2_TX |
|||
93 PB7 GPIO_Output E22_M1 |
|||
95 PB8 FDCAN1_RX |
|||
96 PB9 FDCAN1_TX |
|||
97 PE0 GPIO_Output E22_M0 |
|||
98 PE1 GPIO_EXTI1 E22_AUX |
|||
|
|||
|
|||
|
|||
SOFTWARE PROJECT |
|||
|
|||
Project Settings : |
|||
Project Name : BHBF_Robot_Detect |
|||
Project Folder : D:\WeChat Files\WeChat Files\wxid_mnyr7127xheu22\FileStorage\File\2024-06\BHBF_Robot_Detect |
|||
Toolchain / IDE : STM32CubeIDE |
|||
Firmware Package Name and Version : STM32Cube FW_H7 V1.10.0 |
|||
|
|||
|
|||
Code Generation Settings : |
|||
STM32Cube MCU packages and embedded software packs : Copy only the necessary library files |
|||
Generate peripheral initialization as a pair of '.c/.h' files per peripheral : Yes |
|||
Backup previously generated files when re-generating : No |
|||
Delete previously generated files when not re-generated : Yes |
|||
Set all free pins as analog (to optimize the power consumption) : No |
|||
|
|||
|
|||
Toolchains Settings : |
|||
Compiler Optimizations : |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
@ -0,0 +1,83 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType"> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.cubeprog_external_loaders" value="[]"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_certif_path" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_check_enable" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_key_path" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_permission" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/> |
|||
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{"fItems":[{"fIsFromMainTab":true,"fPath":"Debug/BHBF_Robot_Detect_MK32.elf","fProjectName":"BHBF_Robot_Detect_MK32","fPerformBuild":true,"fDownload":true,"fLoadSymbols":true}]}"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="200000000"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="C:\Users\13752\STM32CubeIDE\workspace_1.15.1\BHBF_Robot_Detect_MK32\Debug\st-link_gdbserver_log.txt"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/> |
|||
<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"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{"fVersion":1,"fItems":[{"fDisplayName":"Reset","fIsSuppressible":false,"fResetAttribute":"Software system reset","fResetStrategies":[{"fDisplayName":"Software system reset","fLaunchAttribute":"system_reset","fGdbCommands":["monitor reset\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Hardware reset","fLaunchAttribute":"hardware_reset","fGdbCommands":["monitor reset hardware\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Core reset","fLaunchAttribute":"core_reset","fGdbCommands":["monitor reset core\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"None","fLaunchAttribute":"no_reset","fGdbCommands":[],"fCmdOptions":["-g"]}],"fGdbCommandGroup":{"name":"Additional commands","commands":[]},"fStartApplication":true}]}"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="threadx"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="cortex_m0"/> |
|||
<intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/> |
|||
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/> |
|||
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> |
|||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/> |
|||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> |
|||
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/BHBF_Robot_Detect_MK32.elf"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="BHBF_Robot_Detect_MK32"/> |
|||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912"/> |
|||
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/> |
|||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> |
|||
<listEntry value="/BHBF_Robot_Detect_MK32"/> |
|||
</listAttribute> |
|||
<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="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/> |
|||
</launchConfiguration> |
|||
@ -0,0 +1,80 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType"> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/> |
|||
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{"fItems":[{"fIsFromMainTab":true,"fPath":"Debug/BHBF_Robot_Detect_MK33_JiaoShilong.elf","fProjectName":"BHBF_Robot_Detect_MK33_JiaoShilong","fPerformBuild":true,"fDownload":true,"fLoadSymbols":true}]}"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="16000000"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_external_loader" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader_init" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="C:\Users\13752\STM32CubeIDE\workspace_1.10.1\BHBF_Robot_Detect_MK33_JiaoShilong\Debug\st-link_gdbserver_log.txt"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/> |
|||
<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"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{"fVersion":1,"fItems":[{"fDisplayName":"Reset","fIsSuppressible":false,"fResetAttribute":"Software system reset","fResetStrategies":[{"fDisplayName":"Software system reset","fLaunchAttribute":"system_reset","fGdbCommands":["monitor reset\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Hardware reset","fLaunchAttribute":"hardware_reset","fGdbCommands":["monitor reset hardware\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Core reset","fLaunchAttribute":"core_reset","fGdbCommands":["monitor reset core\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"None","fLaunchAttribute":"no_reset","fGdbCommands":[],"fCmdOptions":["-g"]}],"fGdbCommandGroup":{"name":"Additional commands","commands":[]},"fStartApplication":true}]}"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="threadx"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="cortex_m0"/> |
|||
<intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/> |
|||
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/> |
|||
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> |
|||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/> |
|||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> |
|||
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/BHBF_Robot_Detect_MK33_JiaoShilong.elf"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="BHBF_Robot_Detect_MK33_JiaoShilong"/> |
|||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912"/> |
|||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> |
|||
<listEntry value="/BHBF_Robot_Detect_MK33_JiaoShilong"/> |
|||
</listAttribute> |
|||
<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="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/> |
|||
</launchConfiguration> |
|||
@ -0,0 +1,80 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType"> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/> |
|||
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{"fItems":[{"fIsFromMainTab":true,"fPath":"Debug/BHBF_Robot_LeiGuBan.elf","fProjectName":"BHBF_Robot_LeiGuBan","fPerformBuild":true,"fDownload":true,"fLoadSymbols":true}]}"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="16000000"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_external_loader" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader" value=""/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader_init" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="C:\Users\13752\STM32CubeIDE\workspace_1.10.1\BHBF_Robot_LeiGuBan\Debug\st-link_gdbserver_log.txt"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/> |
|||
<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"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{"fVersion":1,"fItems":[{"fDisplayName":"Reset","fIsSuppressible":false,"fResetAttribute":"Software system reset","fResetStrategies":[{"fDisplayName":"Software system reset","fLaunchAttribute":"system_reset","fGdbCommands":["monitor reset\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Hardware reset","fLaunchAttribute":"hardware_reset","fGdbCommands":["monitor reset hardware\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Core reset","fLaunchAttribute":"core_reset","fGdbCommands":["monitor reset core\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"None","fLaunchAttribute":"no_reset","fGdbCommands":[],"fCmdOptions":["-g"]}],"fGdbCommandGroup":{"name":"Additional commands","commands":[]},"fStartApplication":true}]}"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="threadx"/> |
|||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/> |
|||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="cortex_m0"/> |
|||
<intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/> |
|||
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/> |
|||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/> |
|||
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> |
|||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> |
|||
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/> |
|||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> |
|||
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/BHBF_Robot_LeiGuBan.elf"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="BHBF_Robot_LeiGuBan"/> |
|||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/> |
|||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912"/> |
|||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> |
|||
<listEntry value="/BHBF_Robot_LeiGuBan"/> |
|||
</listAttribute> |
|||
<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="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/> |
|||
</launchConfiguration> |
|||
@ -0,0 +1,884 @@ |
|||
#MicroXplorer Configuration settings - do not modify |
|||
ADC2.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_5 |
|||
ADC2.ContinuousConvMode=ENABLE |
|||
ADC2.DiscontinuousConvMode=DISABLE |
|||
ADC2.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSignedSaturation-0\#ChannelRegularConversion,NbrOfConversionFlag,DiscontinuousConvMode,ContinuousConvMode |
|||
ADC2.NbrOfConversionFlag=1 |
|||
ADC2.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE |
|||
ADC2.OffsetSignedSaturation-0\#ChannelRegularConversion=DISABLE |
|||
ADC2.Rank-0\#ChannelRegularConversion=1 |
|||
ADC2.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5 |
|||
CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_FULL_ACCESS |
|||
CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_FULL_ACCESS |
|||
CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_FULL_ACCESS |
|||
CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region0_Settings=0x30040000 |
|||
CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region1_Settings=0x30040000 |
|||
CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region2_Settings=0x30030000 |
|||
CORTEX_M7.CPU_DCache=Enabled |
|||
CORTEX_M7.CPU_ICache=Enabled |
|||
CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_ENABLE |
|||
CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_ENABLE |
|||
CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_ENABLE |
|||
CORTEX_M7.IPParameters=MPU_Control,CPU_ICache,CPU_DCache,Enable-Cortex_Memory_Protection_Unit_Region2_Settings,Enable-Cortex_Memory_Protection_Unit_Region0_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region0_Settings,Size-Cortex_Memory_Protection_Unit_Region0_Settings,IsBufferable-Cortex_Memory_Protection_Unit_Region0_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings,Enable-Cortex_Memory_Protection_Unit_Region1_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region1_Settings,Size-Cortex_Memory_Protection_Unit_Region1_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region1_Settings,IsCacheable-Cortex_Memory_Protection_Unit_Region1_Settings,IsShareable-Cortex_Memory_Protection_Unit_Region1_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region1_Settings,IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings,SubRegionDisable-Cortex_Memory_Protection_Unit_Region0_Settings,IsBufferable-Cortex_Memory_Protection_Unit_Region1_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region0_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region2_Settings,Size-Cortex_Memory_Protection_Unit_Region2_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region2_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region2_Settings |
|||
CORTEX_M7.IsBufferable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_ACCESS_NOT_BUFFERABLE |
|||
CORTEX_M7.IsBufferable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_BUFFERABLE |
|||
CORTEX_M7.IsCacheable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_NOT_CACHEABLE |
|||
CORTEX_M7.IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_ACCESS_NOT_SHAREABLE |
|||
CORTEX_M7.IsShareable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_SHAREABLE |
|||
CORTEX_M7.MPU_Control=MPU_PRIVILEGED_DEFAULT |
|||
CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_SIZE_32KB |
|||
CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_SIZE_1KB |
|||
CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_SIZE_32KB |
|||
CORTEX_M7.SubRegionDisable-Cortex_Memory_Protection_Unit_Region0_Settings=0x0 |
|||
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_TEX_LEVEL1 |
|||
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_TEX_LEVEL0 |
|||
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_TEX_LEVEL1 |
|||
Dma.Request0=UART4_TX |
|||
Dma.Request1=USART1_TX |
|||
Dma.Request2=UART5_TX |
|||
Dma.Request3=USART2_TX |
|||
Dma.Request4=USART3_TX |
|||
Dma.Request5=USART6_TX |
|||
Dma.Request6=UART7_TX |
|||
Dma.RequestsNb=7 |
|||
Dma.UART4_TX.0.Direction=DMA_MEMORY_TO_PERIPH |
|||
Dma.UART4_TX.0.EventEnable=DISABLE |
|||
Dma.UART4_TX.0.FIFOMode=DMA_FIFOMODE_ENABLE |
|||
Dma.UART4_TX.0.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL |
|||
Dma.UART4_TX.0.Instance=DMA1_Stream0 |
|||
Dma.UART4_TX.0.MemBurst=DMA_MBURST_SINGLE |
|||
Dma.UART4_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE |
|||
Dma.UART4_TX.0.MemInc=DMA_MINC_ENABLE |
|||
Dma.UART4_TX.0.Mode=DMA_NORMAL |
|||
Dma.UART4_TX.0.PeriphBurst=DMA_PBURST_SINGLE |
|||
Dma.UART4_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
|||
Dma.UART4_TX.0.PeriphInc=DMA_PINC_DISABLE |
|||
Dma.UART4_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING |
|||
Dma.UART4_TX.0.Priority=DMA_PRIORITY_LOW |
|||
Dma.UART4_TX.0.RequestNumber=1 |
|||
Dma.UART4_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber |
|||
Dma.UART4_TX.0.SignalID=NONE |
|||
Dma.UART4_TX.0.SyncEnable=DISABLE |
|||
Dma.UART4_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT |
|||
Dma.UART4_TX.0.SyncRequestNumber=1 |
|||
Dma.UART4_TX.0.SyncSignalID=NONE |
|||
Dma.UART5_TX.2.Direction=DMA_MEMORY_TO_PERIPH |
|||
Dma.UART5_TX.2.EventEnable=DISABLE |
|||
Dma.UART5_TX.2.FIFOMode=DMA_FIFOMODE_DISABLE |
|||
Dma.UART5_TX.2.Instance=DMA1_Stream3 |
|||
Dma.UART5_TX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE |
|||
Dma.UART5_TX.2.MemInc=DMA_MINC_ENABLE |
|||
Dma.UART5_TX.2.Mode=DMA_NORMAL |
|||
Dma.UART5_TX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
|||
Dma.UART5_TX.2.PeriphInc=DMA_PINC_DISABLE |
|||
Dma.UART5_TX.2.Polarity=HAL_DMAMUX_REQ_GEN_RISING |
|||
Dma.UART5_TX.2.Priority=DMA_PRIORITY_LOW |
|||
Dma.UART5_TX.2.RequestNumber=1 |
|||
Dma.UART5_TX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber |
|||
Dma.UART5_TX.2.SignalID=NONE |
|||
Dma.UART5_TX.2.SyncEnable=DISABLE |
|||
Dma.UART5_TX.2.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT |
|||
Dma.UART5_TX.2.SyncRequestNumber=1 |
|||
Dma.UART5_TX.2.SyncSignalID=NONE |
|||
Dma.UART7_TX.6.Direction=DMA_MEMORY_TO_PERIPH |
|||
Dma.UART7_TX.6.EventEnable=DISABLE |
|||
Dma.UART7_TX.6.FIFOMode=DMA_FIFOMODE_DISABLE |
|||
Dma.UART7_TX.6.Instance=DMA1_Stream1 |
|||
Dma.UART7_TX.6.MemDataAlignment=DMA_MDATAALIGN_BYTE |
|||
Dma.UART7_TX.6.MemInc=DMA_MINC_ENABLE |
|||
Dma.UART7_TX.6.Mode=DMA_NORMAL |
|||
Dma.UART7_TX.6.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
|||
Dma.UART7_TX.6.PeriphInc=DMA_PINC_DISABLE |
|||
Dma.UART7_TX.6.Polarity=HAL_DMAMUX_REQ_GEN_RISING |
|||
Dma.UART7_TX.6.Priority=DMA_PRIORITY_LOW |
|||
Dma.UART7_TX.6.RequestNumber=1 |
|||
Dma.UART7_TX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber |
|||
Dma.UART7_TX.6.SignalID=NONE |
|||
Dma.UART7_TX.6.SyncEnable=DISABLE |
|||
Dma.UART7_TX.6.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT |
|||
Dma.UART7_TX.6.SyncRequestNumber=1 |
|||
Dma.UART7_TX.6.SyncSignalID=NONE |
|||
Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH |
|||
Dma.USART1_TX.1.EventEnable=DISABLE |
|||
Dma.USART1_TX.1.FIFOMode=DMA_FIFOMODE_ENABLE |
|||
Dma.USART1_TX.1.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL |
|||
Dma.USART1_TX.1.Instance=DMA1_Stream2 |
|||
Dma.USART1_TX.1.MemBurst=DMA_MBURST_SINGLE |
|||
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.PeriphBurst=DMA_PBURST_SINGLE |
|||
Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
|||
Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE |
|||
Dma.USART1_TX.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING |
|||
Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW |
|||
Dma.USART1_TX.1.RequestNumber=1 |
|||
Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber |
|||
Dma.USART1_TX.1.SignalID=NONE |
|||
Dma.USART1_TX.1.SyncEnable=DISABLE |
|||
Dma.USART1_TX.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT |
|||
Dma.USART1_TX.1.SyncRequestNumber=1 |
|||
Dma.USART1_TX.1.SyncSignalID=NONE |
|||
Dma.USART2_TX.3.Direction=DMA_MEMORY_TO_PERIPH |
|||
Dma.USART2_TX.3.EventEnable=DISABLE |
|||
Dma.USART2_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE |
|||
Dma.USART2_TX.3.Instance=DMA1_Stream5 |
|||
Dma.USART2_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE |
|||
Dma.USART2_TX.3.MemInc=DMA_MINC_ENABLE |
|||
Dma.USART2_TX.3.Mode=DMA_NORMAL |
|||
Dma.USART2_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
|||
Dma.USART2_TX.3.PeriphInc=DMA_PINC_DISABLE |
|||
Dma.USART2_TX.3.Polarity=HAL_DMAMUX_REQ_GEN_RISING |
|||
Dma.USART2_TX.3.Priority=DMA_PRIORITY_LOW |
|||
Dma.USART2_TX.3.RequestNumber=1 |
|||
Dma.USART2_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber |
|||
Dma.USART2_TX.3.SignalID=NONE |
|||
Dma.USART2_TX.3.SyncEnable=DISABLE |
|||
Dma.USART2_TX.3.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT |
|||
Dma.USART2_TX.3.SyncRequestNumber=1 |
|||
Dma.USART2_TX.3.SyncSignalID=NONE |
|||
Dma.USART3_TX.4.Direction=DMA_MEMORY_TO_PERIPH |
|||
Dma.USART3_TX.4.EventEnable=DISABLE |
|||
Dma.USART3_TX.4.FIFOMode=DMA_FIFOMODE_DISABLE |
|||
Dma.USART3_TX.4.Instance=DMA1_Stream6 |
|||
Dma.USART3_TX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE |
|||
Dma.USART3_TX.4.MemInc=DMA_MINC_ENABLE |
|||
Dma.USART3_TX.4.Mode=DMA_NORMAL |
|||
Dma.USART3_TX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
|||
Dma.USART3_TX.4.PeriphInc=DMA_PINC_DISABLE |
|||
Dma.USART3_TX.4.Polarity=HAL_DMAMUX_REQ_GEN_RISING |
|||
Dma.USART3_TX.4.Priority=DMA_PRIORITY_LOW |
|||
Dma.USART3_TX.4.RequestNumber=1 |
|||
Dma.USART3_TX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber |
|||
Dma.USART3_TX.4.SignalID=NONE |
|||
Dma.USART3_TX.4.SyncEnable=DISABLE |
|||
Dma.USART3_TX.4.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT |
|||
Dma.USART3_TX.4.SyncRequestNumber=1 |
|||
Dma.USART3_TX.4.SyncSignalID=NONE |
|||
Dma.USART6_TX.5.Direction=DMA_MEMORY_TO_PERIPH |
|||
Dma.USART6_TX.5.EventEnable=DISABLE |
|||
Dma.USART6_TX.5.FIFOMode=DMA_FIFOMODE_DISABLE |
|||
Dma.USART6_TX.5.Instance=DMA1_Stream7 |
|||
Dma.USART6_TX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE |
|||
Dma.USART6_TX.5.MemInc=DMA_MINC_ENABLE |
|||
Dma.USART6_TX.5.Mode=DMA_NORMAL |
|||
Dma.USART6_TX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE |
|||
Dma.USART6_TX.5.PeriphInc=DMA_PINC_DISABLE |
|||
Dma.USART6_TX.5.Polarity=HAL_DMAMUX_REQ_GEN_RISING |
|||
Dma.USART6_TX.5.Priority=DMA_PRIORITY_LOW |
|||
Dma.USART6_TX.5.RequestNumber=1 |
|||
Dma.USART6_TX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber |
|||
Dma.USART6_TX.5.SignalID=NONE |
|||
Dma.USART6_TX.5.SyncEnable=DISABLE |
|||
Dma.USART6_TX.5.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT |
|||
Dma.USART6_TX.5.SyncRequestNumber=1 |
|||
Dma.USART6_TX.5.SyncSignalID=NONE |
|||
ETH.IPParameters=MediaInterface,TxDescAddress,RxDescAddress,RxBuffAddress,RxBuffLen |
|||
ETH.MediaInterface=HAL_ETH_RMII_MODE |
|||
ETH.RxBuffAddress=0x30040400 |
|||
ETH.RxBuffLen=1528 |
|||
ETH.RxDescAddress=0x30040000 |
|||
ETH.TxDescAddress=0x30040200 |
|||
FDCAN1.CalculateBaudRateNominal=500000 |
|||
FDCAN1.CalculateTimeBitNominal=2000 |
|||
FDCAN1.CalculateTimeQuantumNominal=250.0 |
|||
FDCAN1.IPParameters=NominalPrescaler,NominalTimeSeg1,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal |
|||
FDCAN1.NominalPrescaler=10 |
|||
FDCAN1.NominalTimeSeg1=5 |
|||
FDCAN1.RxFifo0ElmtsNbr=32 |
|||
FDCAN1.TxFifoQueueElmtsNbr=32 |
|||
FDCAN2.CalculateBaudRateNominal=250000 |
|||
FDCAN2.CalculateTimeBitNominal=4000 |
|||
FDCAN2.CalculateTimeQuantumNominal=500.0 |
|||
FDCAN2.IPParameters=NominalPrescaler,NominalTimeSeg1,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal |
|||
FDCAN2.NominalPrescaler=20 |
|||
FDCAN2.NominalTimeSeg1=5 |
|||
FDCAN2.RxFifo0ElmtsNbr=32 |
|||
FDCAN2.TxFifoQueueElmtsNbr=32 |
|||
File.Version=6 |
|||
GPIO.groupedBy=Group By Peripherals |
|||
I2C4.IPParameters=Timing |
|||
I2C4.Timing=0x10C0ECFF |
|||
KeepUserPlacement=false |
|||
LPUART1.BaudRate=57600 |
|||
LPUART1.IPParameters=BaudRate,OverrunDisableParam |
|||
LPUART1.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE |
|||
LWIP.BSP.number=1 |
|||
LWIP.GATEWAY_ADDRESS=192.168.001.001 |
|||
LWIP.IPParameters=LWIP_NETIF_STATUS_CALLBACK,LWIP_DHCP,IP_ADDRESS,NETMASK_ADDRESS,GATEWAY_ADDRESS,MEM_SIZE,LWIP_RAM_HEAP_POINTER |
|||
LWIP.IP_ADDRESS=192.168.001.108 |
|||
LWIP.LWIP_DHCP=0 |
|||
LWIP.LWIP_NETIF_STATUS_CALLBACK=1 |
|||
LWIP.LWIP_RAM_HEAP_POINTER=0x30044000 |
|||
LWIP.MEM_SIZE=1600 |
|||
LWIP.NETMASK_ADDRESS=255.255.255.000 |
|||
LWIP.Version=v2.1.2_Cube |
|||
LWIP0.BSP.STBoard=false |
|||
LWIP0.BSP.api=BSP_COMPONENT_DRIVER |
|||
LWIP0.BSP.component=LAN8742 |
|||
LWIP0.BSP.condition= |
|||
LWIP0.BSP.instance=LAN8742 |
|||
LWIP0.BSP.ip= |
|||
LWIP0.BSP.mode= |
|||
LWIP0.BSP.name=Driver_PHY |
|||
LWIP0.BSP.semaphore=S_LAN8742 |
|||
LWIP0.BSP.solution=LAN8742 |
|||
Mcu.CPN=STM32H743VGT6 |
|||
Mcu.Family=STM32H7 |
|||
Mcu.IP0=ADC2 |
|||
Mcu.IP1=CORTEX_M7 |
|||
Mcu.IP10=NVIC |
|||
Mcu.IP11=QUADSPI |
|||
Mcu.IP12=RCC |
|||
Mcu.IP13=SYS |
|||
Mcu.IP14=TIM1 |
|||
Mcu.IP15=TIM8 |
|||
Mcu.IP16=UART4 |
|||
Mcu.IP17=UART5 |
|||
Mcu.IP18=UART7 |
|||
Mcu.IP19=USART1 |
|||
Mcu.IP2=DEBUG |
|||
Mcu.IP20=USART2 |
|||
Mcu.IP21=USART3 |
|||
Mcu.IP22=USART6 |
|||
Mcu.IP3=DMA |
|||
Mcu.IP4=ETH |
|||
Mcu.IP5=FDCAN1 |
|||
Mcu.IP6=FDCAN2 |
|||
Mcu.IP7=I2C4 |
|||
Mcu.IP8=LPUART1 |
|||
Mcu.IP9=LWIP |
|||
Mcu.IPNb=23 |
|||
Mcu.Name=STM32H743VGTx |
|||
Mcu.Package=LQFP100 |
|||
Mcu.Pin0=PE2 |
|||
Mcu.Pin1=PE3 |
|||
Mcu.Pin10=PC2_C |
|||
Mcu.Pin11=PC3_C |
|||
Mcu.Pin12=PA0 |
|||
Mcu.Pin13=PA1 |
|||
Mcu.Pin14=PA2 |
|||
Mcu.Pin15=PA3 |
|||
Mcu.Pin16=PA4 |
|||
Mcu.Pin17=PA5 |
|||
Mcu.Pin18=PA6 |
|||
Mcu.Pin19=PA7 |
|||
Mcu.Pin2=PE4 |
|||
Mcu.Pin20=PC4 |
|||
Mcu.Pin21=PC5 |
|||
Mcu.Pin22=PB1 |
|||
Mcu.Pin23=PB2 |
|||
Mcu.Pin24=PE7 |
|||
Mcu.Pin25=PE8 |
|||
Mcu.Pin26=PE9 |
|||
Mcu.Pin27=PE10 |
|||
Mcu.Pin28=PE11 |
|||
Mcu.Pin29=PE12 |
|||
Mcu.Pin3=PE5 |
|||
Mcu.Pin30=PE13 |
|||
Mcu.Pin31=PB11 |
|||
Mcu.Pin32=PB12 |
|||
Mcu.Pin33=PB13 |
|||
Mcu.Pin34=PB14 |
|||
Mcu.Pin35=PB15 |
|||
Mcu.Pin36=PD8 |
|||
Mcu.Pin37=PD9 |
|||
Mcu.Pin38=PD10 |
|||
Mcu.Pin39=PD11 |
|||
Mcu.Pin4=PE6 |
|||
Mcu.Pin40=PD12 |
|||
Mcu.Pin41=PD13 |
|||
Mcu.Pin42=PD14 |
|||
Mcu.Pin43=PC6 |
|||
Mcu.Pin44=PC7 |
|||
Mcu.Pin45=PC8 |
|||
Mcu.Pin46=PC9 |
|||
Mcu.Pin47=PA8 |
|||
Mcu.Pin48=PA9 |
|||
Mcu.Pin49=PA10 |
|||
Mcu.Pin5=PC13 |
|||
Mcu.Pin50=PA11 |
|||
Mcu.Pin51=PA12 |
|||
Mcu.Pin52=PA13 (JTMS/SWDIO) |
|||
Mcu.Pin53=PA14 (JTCK/SWCLK) |
|||
Mcu.Pin54=PA15 (JTDI) |
|||
Mcu.Pin55=PC10 |
|||
Mcu.Pin56=PC11 |
|||
Mcu.Pin57=PC12 |
|||
Mcu.Pin58=PD0 |
|||
Mcu.Pin59=PD1 |
|||
Mcu.Pin6=PH0-OSC_IN (PH0) |
|||
Mcu.Pin60=PD2 |
|||
Mcu.Pin61=PD3 |
|||
Mcu.Pin62=PD4 |
|||
Mcu.Pin63=PD5 |
|||
Mcu.Pin64=PD6 |
|||
Mcu.Pin65=PB3 (JTDO/TRACESWO) |
|||
Mcu.Pin66=PB4 (NJTRST) |
|||
Mcu.Pin67=PB5 |
|||
Mcu.Pin68=PB6 |
|||
Mcu.Pin69=PB7 |
|||
Mcu.Pin7=PH1-OSC_OUT (PH1) |
|||
Mcu.Pin70=PB8 |
|||
Mcu.Pin71=PB9 |
|||
Mcu.Pin72=PE0 |
|||
Mcu.Pin73=PE1 |
|||
Mcu.Pin74=VP_LWIP_VS_Enabled |
|||
Mcu.Pin75=VP_SYS_VS_Systick |
|||
Mcu.Pin76=VP_TIM1_VS_ClockSourceINT |
|||
Mcu.Pin77=VP_TIM8_VS_ClockSourceINT |
|||
Mcu.Pin8=PC0 |
|||
Mcu.Pin9=PC1 |
|||
Mcu.PinsNb=78 |
|||
Mcu.ThirdPartyNb=0 |
|||
Mcu.UserConstants= |
|||
Mcu.UserName=STM32H743VGTx |
|||
MxCube.Version=6.6.1 |
|||
MxDb.Version=DB.6.0.60 |
|||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false |
|||
NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true |
|||
NVIC.DMA1_Stream1_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true |
|||
NVIC.DMA1_Stream2_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true |
|||
NVIC.DMA1_Stream3_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true |
|||
NVIC.DMA1_Stream5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true |
|||
NVIC.DMA1_Stream6_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true |
|||
NVIC.DMA1_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true |
|||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false |
|||
NVIC.ETH_IRQn=true\:6\:0\:true\:false\:true\:true\:true\:true |
|||
NVIC.ETH_WKUP_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.FDCAN1_IT0_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.FDCAN2_IT0_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.ForceEnableDMAVector=true |
|||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false |
|||
NVIC.I2C4_ER_IRQn=true\:15\:0\:true\:false\:true\:true\:true\:true |
|||
NVIC.I2C4_EV_IRQn=true\:15\:0\:true\:false\:true\:true\:true\:true |
|||
NVIC.LPUART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false |
|||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false |
|||
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false |
|||
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 |
|||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false |
|||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false |
|||
NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.TIM8_UP_TIM13_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.UART4_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.UART5_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.UART7_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true |
|||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false |
|||
PA0.GPIOParameters=GPIO_Label,PinAttribute |
|||
PA0.GPIO_Label=OUT_2 |
|||
PA0.Locked=true |
|||
PA0.PinAttribute=Free |
|||
PA0.Signal=GPIO_Output |
|||
PA1.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PA1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PA1.Mode=RMII |
|||
PA1.PinAttribute=Free |
|||
PA1.Signal=ETH_REF_CLK |
|||
PA10.Mode=Asynchronous |
|||
PA10.Signal=LPUART1_RX |
|||
PA11.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute |
|||
PA11.GPIO_PuPd=GPIO_PULLUP |
|||
PA11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PA11.Locked=true |
|||
PA11.Mode=Asynchronous |
|||
PA11.PinAttribute=Free |
|||
PA11.Signal=UART4_RX |
|||
PA12.GPIOParameters=PinAttribute |
|||
PA12.Locked=true |
|||
PA12.Mode=Asynchronous |
|||
PA12.PinAttribute=Free |
|||
PA12.Signal=UART4_TX |
|||
PA13\ (JTMS/SWDIO).GPIOParameters=PinAttribute |
|||
PA13\ (JTMS/SWDIO).Locked=true |
|||
PA13\ (JTMS/SWDIO).Mode=Serial_Wire |
|||
PA13\ (JTMS/SWDIO).PinAttribute=Free |
|||
PA13\ (JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO |
|||
PA14\ (JTCK/SWCLK).GPIOParameters=PinAttribute |
|||
PA14\ (JTCK/SWCLK).Mode=Serial_Wire |
|||
PA14\ (JTCK/SWCLK).PinAttribute=Free |
|||
PA14\ (JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK |
|||
PA15\ (JTDI).GPIOParameters=PinAttribute |
|||
PA15\ (JTDI).Locked=true |
|||
PA15\ (JTDI).Mode=Asynchronous |
|||
PA15\ (JTDI).PinAttribute=Free |
|||
PA15\ (JTDI).Signal=UART7_TX |
|||
PA2.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PA2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PA2.Mode=RMII |
|||
PA2.PinAttribute=Free |
|||
PA2.Signal=ETH_MDIO |
|||
PA3.GPIOParameters=GPIO_Label,PinAttribute |
|||
PA3.GPIO_Label=OUT_3 |
|||
PA3.Locked=true |
|||
PA3.PinAttribute=Free |
|||
PA3.Signal=GPIO_Output |
|||
PA4.GPIOParameters=GPIO_Label,PinAttribute |
|||
PA4.GPIO_Label=OUT_4 |
|||
PA4.Locked=true |
|||
PA4.PinAttribute=Free |
|||
PA4.Signal=GPIO_Output |
|||
PA5.GPIOParameters=GPIO_Label,PinAttribute |
|||
PA5.GPIO_Label=OUT_5 |
|||
PA5.Locked=true |
|||
PA5.PinAttribute=Free |
|||
PA5.Signal=GPIO_Output |
|||
PA6.GPIOParameters=GPIO_Label,PinAttribute |
|||
PA6.GPIO_Label=ETH_RST |
|||
PA6.Locked=true |
|||
PA6.PinAttribute=Free |
|||
PA6.Signal=GPIO_Output |
|||
PA7.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PA7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PA7.Mode=RMII |
|||
PA7.PinAttribute=Free |
|||
PA7.Signal=ETH_CRS_DV |
|||
PA8.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute |
|||
PA8.GPIO_PuPd=GPIO_PULLUP |
|||
PA8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PA8.Locked=true |
|||
PA8.Mode=Asynchronous |
|||
PA8.PinAttribute=Free |
|||
PA8.Signal=UART7_RX |
|||
PA9.Mode=Asynchronous |
|||
PA9.Signal=LPUART1_TX |
|||
PB1.Locked=true |
|||
PB1.Signal=ADCx_INP5 |
|||
PB11.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PB11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PB11.Mode=RMII |
|||
PB11.PinAttribute=Free |
|||
PB11.Signal=ETH_TX_EN |
|||
PB12.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PB12.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PB12.Mode=RMII |
|||
PB12.PinAttribute=Free |
|||
PB12.Signal=ETH_TXD0 |
|||
PB13.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PB13.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PB13.Mode=RMII |
|||
PB13.PinAttribute=Free |
|||
PB13.Signal=ETH_TXD1 |
|||
PB14.GPIOParameters=PinAttribute |
|||
PB14.Locked=true |
|||
PB14.Mode=Asynchronous |
|||
PB14.PinAttribute=Free |
|||
PB14.Signal=USART1_TX |
|||
PB15.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute |
|||
PB15.GPIO_PuPd=GPIO_PULLUP |
|||
PB15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PB15.Mode=Asynchronous |
|||
PB15.PinAttribute=Free |
|||
PB15.Signal=USART1_RX |
|||
PB2.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PB2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PB2.Mode=Single Bank 2 |
|||
PB2.PinAttribute=Free |
|||
PB2.Signal=QUADSPI_CLK |
|||
PB3\ (JTDO/TRACESWO).GPIOParameters=GPIO_Label |
|||
PB3\ (JTDO/TRACESWO).GPIO_Label=S0_NET |
|||
PB3\ (JTDO/TRACESWO).Locked=true |
|||
PB3\ (JTDO/TRACESWO).Signal=GPIO_Input |
|||
PB4\ (NJTRST).GPIOParameters=GPIO_Label |
|||
PB4\ (NJTRST).GPIO_Label=S0_LINKA |
|||
PB4\ (NJTRST).Locked=true |
|||
PB4\ (NJTRST).Signal=GPIO_Input |
|||
PB5.Locked=true |
|||
PB5.Mode=FDCAN_Activate |
|||
PB5.Signal=FDCAN2_RX |
|||
PB6.Locked=true |
|||
PB6.Mode=FDCAN_Activate |
|||
PB6.Signal=FDCAN2_TX |
|||
PB7.GPIOParameters=GPIO_Label |
|||
PB7.GPIO_Label=E22_M1 |
|||
PB7.Locked=true |
|||
PB7.Signal=GPIO_Output |
|||
PB8.Locked=true |
|||
PB8.Mode=FDCAN_Activate |
|||
PB8.Signal=FDCAN1_RX |
|||
PB9.Locked=true |
|||
PB9.Mode=FDCAN_Activate |
|||
PB9.Signal=FDCAN1_TX |
|||
PC0.GPIOParameters=GPIO_Label |
|||
PC0.GPIO_Label=S0_RESET |
|||
PC0.Locked=true |
|||
PC0.Signal=GPIO_Output |
|||
PC1.GPIOParameters=GPIO_Speed |
|||
PC1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PC1.Mode=RMII |
|||
PC1.Signal=ETH_MDC |
|||
PC10.GPIOParameters=GPIO_Label,PinAttribute |
|||
PC10.GPIO_Label=E22_RST |
|||
PC10.Locked=true |
|||
PC10.PinAttribute=Free |
|||
PC10.Signal=GPIO_Output |
|||
PC11.GPIOParameters=GPIO_Speed |
|||
PC11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PC11.Mode=Single Bank 2 |
|||
PC11.Signal=QUADSPI_BK2_NCS |
|||
PC12.Locked=true |
|||
PC12.Mode=Asynchronous |
|||
PC12.Signal=UART5_TX |
|||
PC13.GPIOParameters=GPIO_Label |
|||
PC13.GPIO_Label=IN_5 |
|||
PC13.Locked=true |
|||
PC13.Signal=GPIO_Input |
|||
PC2_C.GPIOParameters=GPIO_Label,PinAttribute |
|||
PC2_C.GPIO_Label=OUT_0 |
|||
PC2_C.Locked=true |
|||
PC2_C.PinAttribute=Free |
|||
PC2_C.Signal=GPIO_Output |
|||
PC3_C.GPIOParameters=GPIO_Label,PinAttribute |
|||
PC3_C.GPIO_Label=OUT_1 |
|||
PC3_C.Locked=true |
|||
PC3_C.PinAttribute=Free |
|||
PC3_C.Signal=GPIO_Output |
|||
PC4.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PC4.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PC4.Mode=RMII |
|||
PC4.PinAttribute=Free |
|||
PC4.Signal=ETH_RXD0 |
|||
PC5.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PC5.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PC5.Mode=RMII |
|||
PC5.PinAttribute=Free |
|||
PC5.Signal=ETH_RXD1 |
|||
PC6.GPIOParameters=PinAttribute |
|||
PC6.Mode=Asynchronous |
|||
PC6.PinAttribute=Free |
|||
PC6.Signal=USART6_TX |
|||
PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute |
|||
PC7.GPIO_PuPd=GPIO_PULLUP |
|||
PC7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PC7.Mode=Asynchronous |
|||
PC7.PinAttribute=Free |
|||
PC7.Signal=USART6_RX |
|||
PC8.GPIOParameters=GPIO_Label,PinAttribute |
|||
PC8.GPIO_Label=RS485_3_DIR |
|||
PC8.Locked=true |
|||
PC8.PinAttribute=Free |
|||
PC8.Signal=GPIO_Output |
|||
PC9.GPIOParameters=GPIO_Label,PinAttribute |
|||
PC9.GPIO_Label=RS485_4_DIR |
|||
PC9.Locked=true |
|||
PC9.PinAttribute=Free |
|||
PC9.Signal=GPIO_Output |
|||
PD0.GPIOParameters=GPIO_Label |
|||
PD0.GPIO_Label=E28_M0 |
|||
PD0.Locked=true |
|||
PD0.Signal=GPIO_Output |
|||
PD1.GPIOParameters=GPIO_Label |
|||
PD1.GPIO_Label=E28_M1 |
|||
PD1.Locked=true |
|||
PD1.Signal=GPIO_Output |
|||
PD10.GPIOParameters=GPIO_Label,PinAttribute |
|||
PD10.GPIO_Label=RS485_1_DIR |
|||
PD10.Locked=true |
|||
PD10.PinAttribute=Free |
|||
PD10.Signal=GPIO_Output |
|||
PD11.GPIOParameters=GPIO_Label,PinAttribute |
|||
PD11.GPIO_Label=RS485_2_DIR |
|||
PD11.Locked=true |
|||
PD11.PinAttribute=Free |
|||
PD11.Signal=GPIO_Output |
|||
PD12.GPIOParameters=PinAttribute |
|||
PD12.Mode=I2C |
|||
PD12.PinAttribute=Free |
|||
PD12.Signal=I2C4_SCL |
|||
PD13.GPIOParameters=PinAttribute |
|||
PD13.Mode=I2C |
|||
PD13.PinAttribute=Free |
|||
PD13.Signal=I2C4_SDA |
|||
PD14.GPIOParameters=PinAttribute |
|||
PD14.Locked=true |
|||
PD14.PinAttribute=Free |
|||
PD14.Signal=GPXTI14 |
|||
PD2.GPIOParameters=GPIO_Speed,GPIO_PuPd |
|||
PD2.GPIO_PuPd=GPIO_PULLUP |
|||
PD2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PD2.Locked=true |
|||
PD2.Mode=Asynchronous |
|||
PD2.Signal=UART5_RX |
|||
PD3.GPIOParameters=GPIO_Label |
|||
PD3.GPIO_Label=E28_M2 |
|||
PD3.Locked=true |
|||
PD3.Signal=GPIO_Output |
|||
PD4.GPIOParameters=GPIO_Label |
|||
PD4.GPIO_Label=E28_AUX |
|||
PD4.Locked=true |
|||
PD4.Signal=GPXTI4 |
|||
PD5.Locked=true |
|||
PD5.Mode=Asynchronous |
|||
PD5.Signal=USART2_TX |
|||
PD6.GPIOParameters=GPIO_Speed,GPIO_PuPd |
|||
PD6.GPIO_PuPd=GPIO_PULLUP |
|||
PD6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PD6.Locked=true |
|||
PD6.Mode=Asynchronous |
|||
PD6.Signal=USART2_RX |
|||
PD8.GPIOParameters=PinAttribute |
|||
PD8.Locked=true |
|||
PD8.Mode=Asynchronous |
|||
PD8.PinAttribute=Free |
|||
PD8.Signal=USART3_TX |
|||
PD9.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute |
|||
PD9.GPIO_PuPd=GPIO_PULLUP |
|||
PD9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PD9.Mode=Asynchronous |
|||
PD9.PinAttribute=Free |
|||
PD9.Signal=USART3_RX |
|||
PE0.GPIOParameters=GPIO_Label |
|||
PE0.GPIO_Label=E22_M0 |
|||
PE0.Locked=true |
|||
PE0.Signal=GPIO_Output |
|||
PE1.GPIOParameters=GPIO_Label |
|||
PE1.GPIO_Label=E22_AUX |
|||
PE1.Locked=true |
|||
PE1.Signal=GPXTI1 |
|||
PE10.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PE10.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PE10.Mode=Single Bank 2 |
|||
PE10.PinAttribute=Free |
|||
PE10.Signal=QUADSPI_BK2_IO3 |
|||
PE11.GPIOParameters=GPIO_Label,PinAttribute |
|||
PE11.GPIO_Label=EEPROM_WP |
|||
PE11.Locked=true |
|||
PE11.PinAttribute=Free |
|||
PE11.Signal=GPIO_Output |
|||
PE12.GPIOParameters=GPIO_Label,PinAttribute |
|||
PE12.GPIO_Label=EEPROM_SCL |
|||
PE12.Locked=true |
|||
PE12.PinAttribute=Free |
|||
PE12.Signal=GPIO_Output |
|||
PE13.GPIOParameters=GPIO_Label,PinAttribute |
|||
PE13.GPIO_Label=EEPROM_SDA |
|||
PE13.Locked=true |
|||
PE13.PinAttribute=Free |
|||
PE13.Signal=GPIO_Input |
|||
PE2.GPIOParameters=GPIO_Label |
|||
PE2.GPIO_Label=IN_0 |
|||
PE2.Locked=true |
|||
PE2.Signal=GPIO_Input |
|||
PE3.GPIOParameters=GPIO_Label |
|||
PE3.GPIO_Label=IN_1 |
|||
PE3.Locked=true |
|||
PE3.Signal=GPIO_Input |
|||
PE4.GPIOParameters=GPIO_Label |
|||
PE4.GPIO_Label=IN_2 |
|||
PE4.Locked=true |
|||
PE4.Signal=GPIO_Input |
|||
PE5.GPIOParameters=GPIO_Label |
|||
PE5.GPIO_Label=IN_3 |
|||
PE5.Locked=true |
|||
PE5.Signal=GPIO_Input |
|||
PE6.GPIOParameters=GPIO_Label |
|||
PE6.GPIO_Label=IN_4 |
|||
PE6.Locked=true |
|||
PE6.Signal=GPIO_Input |
|||
PE7.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PE7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PE7.Mode=Single Bank 2 |
|||
PE7.PinAttribute=Free |
|||
PE7.Signal=QUADSPI_BK2_IO0 |
|||
PE8.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PE8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PE8.Mode=Single Bank 2 |
|||
PE8.PinAttribute=Free |
|||
PE8.Signal=QUADSPI_BK2_IO1 |
|||
PE9.GPIOParameters=GPIO_Speed,PinAttribute |
|||
PE9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH |
|||
PE9.Mode=Single Bank 2 |
|||
PE9.PinAttribute=Free |
|||
PE9.Signal=QUADSPI_BK2_IO2 |
|||
PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator |
|||
PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN |
|||
PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator |
|||
PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT |
|||
PinOutPanel.RotationAngle=0 |
|||
ProjectManager.AskForMigrate=true |
|||
ProjectManager.BackupPrevious=false |
|||
ProjectManager.CompilerOptimize=6 |
|||
ProjectManager.ComputerToolchain=false |
|||
ProjectManager.CoupleFile=true |
|||
ProjectManager.CustomerFirmwarePackage= |
|||
ProjectManager.DefaultFWLocation=true |
|||
ProjectManager.DeletePrevious=true |
|||
ProjectManager.DeviceId=STM32H743VGTx |
|||
ProjectManager.FirmwarePackage=STM32Cube FW_H7 V1.10.0 |
|||
ProjectManager.FreePins=false |
|||
ProjectManager.HalAssertFull=false |
|||
ProjectManager.HeapSize=0x400 |
|||
ProjectManager.KeepUserCode=true |
|||
ProjectManager.LastFirmware=true |
|||
ProjectManager.LibraryCopy=1 |
|||
ProjectManager.MainLocation=Core/Src |
|||
ProjectManager.NoMain=false |
|||
ProjectManager.PreviousToolchain=STM32CubeIDE |
|||
ProjectManager.ProjectBuild=false |
|||
ProjectManager.ProjectFileName=BHBF_Robot_LeiGuBan.ioc |
|||
ProjectManager.ProjectName=BHBF_Robot_LeiGuBan |
|||
ProjectManager.RegisterCallBack= |
|||
ProjectManager.StackSize=0x1000 |
|||
ProjectManager.TargetToolchain=STM32CubeIDE |
|||
ProjectManager.ToolChainLocation= |
|||
ProjectManager.UnderRoot=true |
|||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_FDCAN1_Init-FDCAN1-false-HAL-true,5-MX_FDCAN2_Init-FDCAN2-false-HAL-true,6-MX_I2C4_Init-I2C4-false-HAL-true,7-MX_TIM1_Init-TIM1-false-HAL-true,8-MX_UART4_Init-UART4-false-HAL-true,9-MX_UART5_Init-UART5-false-HAL-true,10-MX_UART7_Init-UART7-false-HAL-true,11-MX_USART1_UART_Init-USART1-false-HAL-true,12-MX_USART3_UART_Init-USART3-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART6_UART_Init-USART6-false-HAL-true,15-MX_TIM8_Init-TIM8-false-HAL-true,16-MX_LWIP_Init-LWIP-false-HAL-false,17-MX_QUADSPI_Init-QUADSPI-false-HAL-true,18-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,19-MX_ADC2_Init-ADC2-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true |
|||
QUADSPI.ChipSelectHighTime=QSPI_CS_HIGH_TIME_2_CYCLE |
|||
QUADSPI.ClockMode=QSPI_CLOCK_MODE_3 |
|||
QUADSPI.ClockPrescaler=4-1 |
|||
QUADSPI.FifoThreshold=32 |
|||
QUADSPI.FlashSize=23+1 |
|||
QUADSPI.IPParameters=ClockPrescaler,FifoThreshold,SampleShifting,FlashSize,ChipSelectHighTime,ClockMode |
|||
QUADSPI.SampleShifting=QSPI_SAMPLE_SHIFTING_HALFCYCLE |
|||
RCC.ADCFreq_Value=72000000 |
|||
RCC.AHB12Freq_Value=200000000 |
|||
RCC.AHB4Freq_Value=200000000 |
|||
RCC.APB1Freq_Value=100000000 |
|||
RCC.APB2Freq_Value=100000000 |
|||
RCC.APB3Freq_Value=100000000 |
|||
RCC.APB4Freq_Value=100000000 |
|||
RCC.AXIClockFreq_Value=200000000 |
|||
RCC.CECFreq_Value=32000 |
|||
RCC.CKPERFreq_Value=64000000 |
|||
RCC.CortexFreq_Value=400000000 |
|||
RCC.CpuClockFreq_Value=400000000 |
|||
RCC.D1CPREFreq_Value=400000000 |
|||
RCC.D1PPRE=RCC_APB3_DIV2 |
|||
RCC.D2PPRE1=RCC_APB1_DIV2 |
|||
RCC.D2PPRE2=RCC_APB2_DIV2 |
|||
RCC.D3PPRE=RCC_APB4_DIV2 |
|||
RCC.DFSDMACLkFreq_Value=40000000 |
|||
RCC.DFSDMFreq_Value=100000000 |
|||
RCC.DIVM1=2 |
|||
RCC.DIVM2=25 |
|||
RCC.DIVN1=64 |
|||
RCC.DIVN2=288 |
|||
RCC.DIVP1Freq_Value=400000000 |
|||
RCC.DIVP2=4 |
|||
RCC.DIVP2Freq_Value=72000000 |
|||
RCC.DIVP3Freq_Value=50390625 |
|||
RCC.DIVQ1=20 |
|||
RCC.DIVQ1Freq_Value=40000000 |
|||
RCC.DIVQ2=1 |
|||
RCC.DIVQ2Freq_Value=288000000 |
|||
RCC.DIVQ3Freq_Value=50390625 |
|||
RCC.DIVR1=4 |
|||
RCC.DIVR1Freq_Value=200000000 |
|||
RCC.DIVR2Freq_Value=144000000 |
|||
RCC.DIVR3Freq_Value=50390625 |
|||
RCC.EnbaleCSS=true |
|||
RCC.FDCANFreq_Value=40000000 |
|||
RCC.FMCFreq_Value=200000000 |
|||
RCC.FamilyName=M |
|||
RCC.HCLK3ClockFreq_Value=200000000 |
|||
RCC.HCLKFreq_Value=200000000 |
|||
RCC.HPRE=RCC_HCLK_DIV2 |
|||
RCC.HRTIMFreq_Value=200000000 |
|||
RCC.I2C123Freq_Value=100000000 |
|||
RCC.I2C4Freq_Value=100000000 |
|||
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EnbaleCSS,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL1_VCI_Range-AdvancedSettings,PLL2FRACN,PLL2_VCI_Range-AdvancedSettings,PLL3_VCI_Range-AdvancedSettings,PLLFRACN,PLLSourceVirtual,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value |
|||
RCC.LPTIM1Freq_Value=100000000 |
|||
RCC.LPTIM2Freq_Value=100000000 |
|||
RCC.LPTIM345Freq_Value=100000000 |
|||
RCC.LPUART1Freq_Value=100000000 |
|||
RCC.LTDCFreq_Value=50390625 |
|||
RCC.MCO1PinFreq_Value=64000000 |
|||
RCC.MCO2PinFreq_Value=400000000 |
|||
RCC.PLL1_VCI_Range-AdvancedSettings=RCC_PLL1VCIRANGE_3 |
|||
RCC.PLL2FRACN=0 |
|||
RCC.PLL2_VCI_Range-AdvancedSettings=RCC_PLL2VCIRANGE_0 |
|||
RCC.PLL3_VCI_Range-AdvancedSettings=RCC_PLL3VCIRANGE_3 |
|||
RCC.PLLFRACN=0 |
|||
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE |
|||
RCC.QSPIFreq_Value=200000000 |
|||
RCC.RNGFreq_Value=48000000 |
|||
RCC.RTCFreq_Value=32000 |
|||
RCC.SAI1Freq_Value=40000000 |
|||
RCC.SAI23Freq_Value=40000000 |
|||
RCC.SAI4AFreq_Value=40000000 |
|||
RCC.SAI4BFreq_Value=40000000 |
|||
RCC.SDMMCFreq_Value=40000000 |
|||
RCC.SPDIFRXFreq_Value=40000000 |
|||
RCC.SPI123Freq_Value=40000000 |
|||
RCC.SPI45Freq_Value=100000000 |
|||
RCC.SPI6Freq_Value=100000000 |
|||
RCC.SWPMI1Freq_Value=100000000 |
|||
RCC.SYSCLKFreq_VALUE=400000000 |
|||
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK |
|||
RCC.Tim1OutputFreq_Value=200000000 |
|||
RCC.Tim2OutputFreq_Value=200000000 |
|||
RCC.TraceFreq_Value=200000000 |
|||
RCC.USART16Freq_Value=100000000 |
|||
RCC.USART234578Freq_Value=100000000 |
|||
RCC.USBFreq_Value=40000000 |
|||
RCC.VCO1OutputFreq_Value=800000000 |
|||
RCC.VCO2OutputFreq_Value=288000000 |
|||
RCC.VCO3OutputFreq_Value=100781250 |
|||
RCC.VCOInput1Freq_Value=12500000 |
|||
RCC.VCOInput2Freq_Value=1000000 |
|||
RCC.VCOInput3Freq_Value=781250 |
|||
SH.ADCx_INP5.0=ADC2_INP5,IN5-Single-Ended |
|||
SH.ADCx_INP5.ConfNb=1 |
|||
SH.GPXTI1.0=GPIO_EXTI1 |
|||
SH.GPXTI1.ConfNb=1 |
|||
SH.GPXTI14.0=GPIO_EXTI14 |
|||
SH.GPXTI14.ConfNb=1 |
|||
SH.GPXTI4.0=GPIO_EXTI4 |
|||
SH.GPXTI4.ConfNb=1 |
|||
TIM1.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE |
|||
TIM1.IPParameters=Prescaler,Period,AutoReloadPreload |
|||
TIM1.Period=10000-1 |
|||
TIM1.Prescaler=2000-1 |
|||
TIM8.IPParameters=Prescaler,Period |
|||
TIM8.Period=200-1 |
|||
TIM8.Prescaler=2000-1 |
|||
UART4.BaudRate=57600 |
|||
UART4.IPParameters=OverrunDisableParam,BaudRate |
|||
UART4.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_ENABLE |
|||
UART5.BaudRate=100000 |
|||
UART5.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_DISABLEONRXERROR |
|||
UART5.IPParameters=BaudRate,WordLength,Parity,OverrunDisableParam,DMADisableonRxErrorParam |
|||
UART5.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE |
|||
UART5.Parity=PARITY_EVEN |
|||
UART5.WordLength=WORDLENGTH_9B |
|||
UART7.BaudRate=115200 |
|||
UART7.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_DISABLEONRXERROR |
|||
UART7.IPParameters=OverrunDisableParam,BaudRate,DMADisableonRxErrorParam |
|||
UART7.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE |
|||
USART1.BaudRate=115200 |
|||
USART1.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR |
|||
USART1.IPParameters=VirtualMode-Asynchronous,OverrunDisableParam,DMADisableonRxErrorParam,BaudRate |
|||
USART1.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE |
|||
USART1.VirtualMode-Asynchronous=VM_ASYNC |
|||
USART2.BaudRate=57600 |
|||
USART2.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR |
|||
USART2.IPParameters=VirtualMode-Asynchronous,OverrunDisableParam,DMADisableonRxErrorParam,BaudRate |
|||
USART2.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE |
|||
USART2.VirtualMode-Asynchronous=VM_ASYNC |
|||
USART3.BaudRate=9600 |
|||
USART3.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR |
|||
USART3.FIFOMode=FIFOMODE_ENABLE |
|||
USART3.IPParameters=VirtualMode-Asynchronous,DMADisableonRxErrorParam,OverrunDisableParam,FIFOMode,BaudRate |
|||
USART3.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE |
|||
USART3.VirtualMode-Asynchronous=VM_ASYNC |
|||
USART6.BaudRate=9600 |
|||
USART6.DMADisableonRxErrorParam=ADVFEATURE_DMA_ENABLEONRXERROR |
|||
USART6.FIFOMode=FIFOMODE_ENABLE |
|||
USART6.IPParameters=VirtualMode,OverrunDisableParam,FIFOMode,DMADisableonRxErrorParam,BaudRate,SwapParam |
|||
USART6.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE |
|||
USART6.SwapParam=ADVFEATURE_SWAP_DISABLE |
|||
USART6.VirtualMode=VM_ASYNC |
|||
VP_LWIP_VS_Enabled.Mode=Enabled |
|||
VP_LWIP_VS_Enabled.Signal=LWIP_VS_Enabled |
|||
VP_SYS_VS_Systick.Mode=SysTick |
|||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick |
|||
VP_TIM1_VS_ClockSourceINT.Mode=Internal |
|||
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT |
|||
VP_TIM8_VS_ClockSourceINT.Mode=Internal |
|||
VP_TIM8_VS_ClockSourceINT.Signal=TIM8_VS_ClockSourceINT |
|||
board=custom |
|||
isbadioc=false |
|||
@ -0,0 +1,159 @@ |
|||
--分窗标志定义 |
|||
WIN_0 = 0x0001 |
|||
WIN_1 = 0x0002 |
|||
WIN_2 = 0x0004 |
|||
WIN_3 = 0x0008 |
|||
WIN_4 = 0x0010 |
|||
WIN_5 = 0x0020 |
|||
WIN_6 = 0x0040 |
|||
WIN_7 = 0x0080 |
|||
WIN_8 = 0x0100 |
|||
WIN_9 = 0x0200 |
|||
WIN_10 = 0x0400 |
|||
WIN_11 = 0x0800 |
|||
WIN_12 = 0x1000 |
|||
WIN_13 = 0x2000 |
|||
WIN_14 = 0x4000 |
|||
WIN_15 = 0x8000 |
|||
|
|||
|
|||
--GV索引字符串 |
|||
local GVstr = { |
|||
"State_Index_U", |
|||
"State_Index_U_Elapse", |
|||
"State_Index_N", |
|||
"State_Index_N_Elapse", |
|||
"NC_ARRAY_u8_0", |
|||
"NC_ARRAY_u8_01", |
|||
"NC_ARRAY_u8_1", |
|||
"NC_ARRAY_u8_11", |
|||
"NC_ARRAY_u8_2", |
|||
"MK32_Key.RxIndex", |
|||
"MK32_Key.CH0_RY_H", |
|||
"MK32_Key.CH1_RY_V", |
|||
"MK32_Key.CH2_LY_V", |
|||
"MK32_Key.CH3_LY_H", |
|||
"MK32_Key.CH4_SA", |
|||
"MK32_Key.CH5_SB", |
|||
"MK32_Key.CH6_SC", |
|||
"MK32_Key.CH7_SD", |
|||
"MK32_Key.CH8_SE", |
|||
"MK32_Key.CH9_SF", |
|||
"MK32_Key.CH10_LD1", |
|||
"MK32_Key.CH11_RD1", |
|||
"MK32_Key.CH12_S1", |
|||
"MK32_Key.CH13_S2", |
|||
"MK32_Key.CH14_LT", |
|||
"MK32_Key.CH15_RT", |
|||
"MK32_Key.IsOnline", |
|||
"Motor_P[0]MotorID", |
|||
"Motor_P[0]RxIndex", |
|||
"Motor_P[0]Run_Mode", |
|||
"Motor_P[0]Current", |
|||
"Motor_P[0]Target_Current", |
|||
"Motor_P[0]Velcity", |
|||
"Motor_P[0]Target_Velcity", |
|||
"Motor_P[0]Position", |
|||
"Motor_P[0]Target_Position", |
|||
"Motor_P[0]ERROR_Flag", |
|||
"Motor_P[0]Temperature_Motor", |
|||
"Motor_P[0]Temperature_PCB", |
|||
"Motor_P[1]MotorID", |
|||
"Motor_P[1]RxIndex", |
|||
"Motor_P[1]Run_Mode", |
|||
"Motor_P[1]Current", |
|||
"Motor_P[1]Target_Current", |
|||
"Motor_P[1]Velcity", |
|||
"Motor_P[1]Target_Velcity", |
|||
"Motor_P[1]Position", |
|||
"Motor_P[1]Target_Position", |
|||
"Motor_P[1]ERROR_Flag", |
|||
"Motor_P[1]Temperature_Motor", |
|||
"Motor_P[1]Temperature_PCB", |
|||
"Motor_P[2]MotorID", |
|||
"Motor_P[2]RxIndex", |
|||
"Motor_P[2]Run_Mode", |
|||
"Motor_P[2]Current", |
|||
"Motor_P[2]Target_Current", |
|||
"Motor_P[2]Velcity", |
|||
"Motor_P[2]Target_Velcity", |
|||
"Motor_P[2]Position", |
|||
"Motor_P[2]Target_Position", |
|||
"Motor_P[2]ERROR_Flag", |
|||
"Motor_P[2]Temperature_Motor", |
|||
"Motor_P[2]Temperature_PCB" |
|||
} |
|||
|
|||
--CAN 解码函数,返回的字符串将展示到数据窗口 |
|||
--id 帧ID |
|||
--std_ext 0表示标准帧, 1表示扩展帧 |
|||
--data_remote 0表示数据帧, 1表示远程帧 |
|||
--datalen 数据长度,字节 |
|||
--data_bin 二进制数据 |
|||
--函数返回: ret1解码字符串 , ret2分窗控制字, 波形数据字符串 |
|||
function can_decoder(id, std_ext, data_remote, datalen, data_bin) |
|||
local ret1 = "" --返回值1 解码显示结果 |
|||
local ret2 = 0 --返回值2 分窗标志 |
|||
local bin = {} |
|||
local i |
|||
local str_wave = "" |
|||
|
|||
local _index = 0 |
|||
local _value = 0 |
|||
--local a_string = string.pack(">i2", your_integer) |
|||
--local an_integer = string.unpack(">i2", a_string, start) 将二进制字符串转换为数字类型,从第start个字符开始,<小端 >大端,类型i2,长度2 |
|||
|
|||
--#将字符串转换到整数数组存放 |
|||
for i = 1,#data_bin,1 do |
|||
bin[i] = tonumber(string.byte(data_bin, i,i)) |
|||
end |
|||
|
|||
--计算解码结果,将显示在数据包后面 |
|||
if (id == 0x120) then |
|||
_index = string.unpack("<i2", data_bin, 1) |
|||
_value = string.unpack("<i4", data_bin, 3) |
|||
ret1 = string.format("设置CV:Index %d = %d", _index, _value) |
|||
elseif (id == 0x121) then |
|||
_index = string.unpack("<i2", data_bin, 1) |
|||
ret1 = string.format("请求CV:Index %d", _index, _value) |
|||
elseif (id == 0x122) then |
|||
_index = string.unpack("<i2", data_bin, 1) |
|||
_value = string.unpack("<i4", data_bin, 3) |
|||
ret1 = string.format("读取CV:Index %d = %d", _index, _value) |
|||
elseif (id == 0x1FF) then |
|||
if(datalen == 1) then |
|||
ret1 = string.format("## Boot程序启动") |
|||
elseif (datalen == 3) then |
|||
ret1 = string.format("## Boot启动APP") |
|||
elseif (datalen == 2) then |
|||
ret1 = string.format("## 进入刷写模式") |
|||
elseif (datalen == 4) then |
|||
ret1 = string.format("## 刷写错误") |
|||
elseif (datalen == 5) then |
|||
ret1 = string.format("## APP程序启动") |
|||
end |
|||
elseif (id == 0x110) then |
|||
if(data_bin[1]==0x55) then |
|||
ret1 = string.format("## 请求重启系统") |
|||
end |
|||
elseif (id == 0x130) then |
|||
_index = string.unpack("<i2", data_bin, 1) |
|||
_value = string.unpack("<i2", data_bin, 3) |
|||
ret1 = string.format("请求GV.%d,%s, Length = %d", _index, GVstr[_index+1],_value) |
|||
elseif (id == 0x132) then |
|||
_index = string.unpack("<i2", data_bin, 1) |
|||
_value = string.unpack("<i4", data_bin, 3) |
|||
ret1 = string.format("______读取GV.%d,%s = %d", _index, GVstr[_index+1],_value) |
|||
end |
|||
|
|||
--计算分窗标志, 决定数据包同步显示到哪些子窗口 |
|||
if (id == 0x120 or id == 0x121 or id == 0x122) then |
|||
ret2 = ret2 | WIN_0 |
|||
elseif (id == 0x1FF or id == 0x110) then |
|||
ret2 = ret2 | WIN_1 |
|||
elseif (id == 0x130 or id == 0x132) then |
|||
ret2 = ret2 | WIN_2 |
|||
end |
|||
|
|||
return ret1, ret2, str_wave |
|||
end |
|||
@ -0,0 +1,197 @@ |
|||
/*
|
|||
* BHBF_ROBOT.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BHBF_ROBOT_H_ |
|||
#define INC_BHBF_ROBOT_H_ |
|||
|
|||
|
|||
|
|||
#include "bsp_TCPClient.h" |
|||
#include "bsp_include.h" |
|||
#include "msp_JTBATTERY.h" |
|||
#include "msp_DAM_Relay.h" |
|||
#include "msp_OBD.h" |
|||
#include "bsp_PV.pb.h" |
|||
#include "msp_OBD.h" |
|||
#include "msp_TI5MOTOR.h" |
|||
#include "bsp_UART.h" |
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include <stdlib.h> |
|||
#include <assert.h> |
|||
#include "msp_Angle_Encoder_YL159.h" |
|||
#include "BHBF_ROBOT.h" |
|||
#include "bsp_mqtt.h" |
|||
#include "bsp_Log.h" |
|||
#include "pb.h" |
|||
#include "msp_Force_Sensor.h" |
|||
#include "pb_decode.h" |
|||
#include "pb_encode.h" |
|||
#include "bsp_EEPROM.h" |
|||
#include "bsp_pb_decode_encode.h" |
|||
#include "bsp_MB_host.h" |
|||
#include "msp_Steering_Engine.h" |
|||
#include "msp_Angle_Encoder_YL159.h" |
|||
#include "SteerEngine/msp_fashion_star_uart_servo.h" |
|||
#include "msp_DH_Remote_Controller.h" |
|||
|
|||
#include "msp_wire_sensor.h" |
|||
#include "msp_TL720D.h" |
|||
#include <stdio.h> |
|||
#include <stdbool.h> |
|||
#include <stdlib.h> |
|||
#include "DLTuc.h" |
|||
#include "msp_MK32_1.h" |
|||
//#include "MSP/msp_MK32.h"
|
|||
#include <msp_DC_CAN_SWING_Controller.h> |
|||
#include <msp_WH_LTE_7S0.h> |
|||
#include "bsp_mqtt.h" |
|||
#include "bsp_Log.h" |
|||
#include "pb.h" |
|||
#include "pb_decode.h" |
|||
#include "pb_encode.h" |
|||
#include "bsp_EEPROM.h" |
|||
#include "bsp_pb_decode_encode.h" |
|||
#include "bsp_MB_host.h" |
|||
#include "msp_Steering_Engine.h" |
|||
#include "msp_Angle_Encoder_YL159.h" |
|||
#include "SteerEngine/msp_fashion_star_uart_servo.h" |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
#include "bsp_DLT_Log.h" |
|||
#include "bsp_UDP.h" |
|||
#include <msp_WH_LTE_7S0.h> |
|||
#include "bsp_cpu_flash.h" |
|||
#include <bsp_qspi_w25q128.h> |
|||
#include <bsp_UpperComputer_Handler.h> |
|||
#include "msp_TTMotor_ZQ.h" |
|||
#include "bsp_Error_Detect.h" |
|||
#include "bsp_IV.pb.h" |
|||
#include "msp_LS_MotorParameters.pb.h" |
|||
|
|||
|
|||
//#include "robot_state.h"
|
|||
//FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 896K
|
|||
//#define VECT_TAB_OFFSET 0x00020000U
|
|||
|
|||
//关键全局变量定义:GV、CV、PV
|
|||
//其他变量定义:X1_X2_X3_X4
|
|||
//X1:变量类型
|
|||
//X2:所属层级 GL、MSP、BSP
|
|||
//X3:所属模块
|
|||
//X4:名称
|
|||
|
|||
//全局变量定义 X1=V
|
|||
//宏定义 X1=DF
|
|||
//结构体类型声明 X1=SP
|
|||
//结构体定义 X1=ST
|
|||
//指针类型定义 X1=P
|
|||
//全局函数定义 X1=GF
|
|||
//内部函数定义 X1为空,不要下划线,X2开头
|
|||
//函数参数定义、函数局部变量定义 X1为空,下划线开头
|
|||
|
|||
|
|||
#define DLTViewer 1 |
|||
|
|||
|
|||
bool CompareTimer_Delay(int32_t Delay); |
|||
|
|||
|
|||
|
|||
|
|||
extern GV_struct_define GV; |
|||
//extern PV_struct_define PV;
|
|||
extern IV_struct_define IV; |
|||
extern CV_struct_define CV; |
|||
|
|||
|
|||
|
|||
typedef struct sys_timer_handler |
|||
{ |
|||
int start_timer; |
|||
int sys_current_timer_count; |
|||
int sys_timer_flag; |
|||
|
|||
}Sys_timer_handler; |
|||
|
|||
extern Sys_timer_handler timer_handler_1; |
|||
extern Sys_timer_handler timer_handler_2; |
|||
extern Sys_timer_handler timer_handler_3; |
|||
extern Sys_timer_handler timer_handler_4; |
|||
|
|||
//first start Timer, then WaitTimer
|
|||
bool CompareTimer(int32_t DelayMiliSeconds,Sys_timer_handler * timer_handler); |
|||
void SystemTimer_Intialize(); |
|||
void GF_Timer_Count(); |
|||
void GF_Robot_Init(void); |
|||
void GF_Robot_MainLoop(void); |
|||
void GF_WatchDog_Loop(void); |
|||
|
|||
|
|||
extern void SET_BIT_1(int32_t* num,int32_t k); |
|||
|
|||
extern void SET_BIT_0(int32_t* num,int32_t k); |
|||
extern int32_t Get_BIT(int32_t* num,int32_t k); |
|||
|
|||
//A &= ~(1 << bit)
|
|||
|
|||
|
|||
|
|||
extern MotorParameters *Motor[7]; |
|||
extern int32_t *Motor_ID_Errors[7]; |
|||
extern int32_t* SystemErrorCode; |
|||
extern ErrorData* SystemErrorData; |
|||
//Error Bit Define
|
|||
|
|||
#define AngleEncoderErrorBitFlag 0 |
|||
#define DAM_Relay_ErrorBitFlag 1 |
|||
#define DH_CAN_Remote_Controller_1E4 2 |
|||
#define DH_CAN_Remote_Controller_2E4 3 |
|||
#define DH_Remote 4 |
|||
#define force_sensor 5 |
|||
#define LeiSai_ISV2CAN 6 |
|||
#define mk32_sbus 7 |
|||
#define steering_engine 8 |
|||
#define Weld_seam_Tracking 9 |
|||
|
|||
#define Ti5_1 11 |
|||
#define Ti5_2 12 |
|||
#define Ti5_3 13 |
|||
#define Ti5_4 14 |
|||
#define Ti5_5 15 |
|||
#define Ti5_6 16 |
|||
|
|||
#define TL720D 17 |
|||
|
|||
|
|||
#define ZQ_CAN_ID1_LeftMotor 18 |
|||
#define ZQ_CAN_ID2_RightMotor 19 |
|||
#define ZQ_CAN_ID3_SwingMotor 20 |
|||
#define wire_sensor 21 |
|||
|
|||
#define DHRougheningController 22 |
|||
#define DAM040D_Relay_ErrorBitFlag 23 |
|||
|
|||
#define DMAKE_1 24 |
|||
#define DMAKE_2 25 |
|||
#define DMAKE_3 26 |
|||
|
|||
#define KeLaiFen485 27 |
|||
#define KeLaiFenCAN 28 |
|||
|
|||
#define ld150 29 |
|||
|
|||
|
|||
|
|||
|
|||
extern TT_MotorParameters* TT_Motor[4]; |
|||
|
|||
extern LS_MotorParameters* LS_Motor[7]; |
|||
|
|||
|
|||
#endif /* INC_BHBF_ROBOT_H_ */ |
|||
@ -0,0 +1,248 @@ |
|||
/**
|
|||
* @file DLTuc.h |
|||
* @author teodor |
|||
* @date 1 Jul 2022 |
|||
* @brief This file is a part of DLTuc library |
|||
* |
|||
* In this header, you can find types, Api functions, which are provided by DLTuc library |
|||
* Usefull macros, for convience usage of DLTuc library in logging purposes |
|||
* |
|||
* Requirments: |
|||
* Around ~2kB of RAM |
|||
* Check Configuration file and defines: |
|||
* DLT_TRANSMIT_RING_BUFFER_SIZE, DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE |
|||
* |
|||
*/ |
|||
|
|||
#ifndef INC_DLT_LOGS_MCU_H_ |
|||
#define INC_DLT_LOGS_MCU_H_ |
|||
|
|||
/*
|
|||
* ******************************************************************************************* |
|||
* Includes |
|||
* ******************************************************************************************* |
|||
* */ |
|||
|
|||
#include "stdint.h" |
|||
#include <stdarg.h> |
|||
#include <string.h> |
|||
|
|||
#include "DLTucConfig.h" |
|||
|
|||
/*
|
|||
* ******************************************************************************************* |
|||
* Exported defines |
|||
* ******************************************************************************************* |
|||
* */ |
|||
|
|||
/*@brief
|
|||
* |
|||
* - convert the To strings to uint32_t |
|||
*/ |
|||
#define DLT_LOG_ECUID_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_ECUID[0])) << 24UL) | \ |
|||
(((uint32_t) ((uint8_t)DLT_LOG_ECUID[1])) << 16UL) | \ |
|||
(((uint32_t) ((uint8_t)DLT_LOG_ECUID[2])) << 8UL) | \ |
|||
((uint32_t)((uint8_t)DLT_LOG_ECUID[3])))) |
|||
|
|||
|
|||
#define DLT_LOG_APPID_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_APPID[0])) << 24UL) | \ |
|||
(((uint32_t) ((uint8_t)DLT_LOG_APPID[1])) << 16UL) | \ |
|||
(((uint32_t) ((uint8_t)DLT_LOG_APPID[2])) << 8UL) | \ |
|||
((uint32_t)((uint8_t)DLT_LOG_APPID[3])))) |
|||
|
|||
|
|||
#define DLT_LOG_CONTEX_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_CONTEX[0])) << 24UL) | \ |
|||
(((uint32_t) ((uint8_t)DLT_LOG_CONTEX[1])) << 16UL) | \ |
|||
(((uint32_t) ((uint8_t)DLT_LOG_CONTEX[2])) << 8UL) | \ |
|||
((uint32_t)((uint8_t)DLT_LOG_CONTEX[3])))) |
|||
|
|||
|
|||
|
|||
|
|||
/*
|
|||
* Definitions of DLT services. |
|||
*/ |
|||
#define DLT_SERVICE_ID_SET_LOG_LEVEL 0x01 /**< Service ID: Set log level */ |
|||
#define DLT_SERVICE_ID_SETRACE_STATUS 0x02 /**< Service ID: Set trace status */ |
|||
#define DLT_SERVICE_ID_GET_LOG_INFO 0x03 /**< Service ID: Get log info */ |
|||
#define DLT_SERVICE_ID_GET_DEFAULT_LOG_LEVEL 0x04 /**< Service ID: Get dafault log level */ |
|||
#define DLT_SERVICE_ID_STORE_CONFIG 0x05 /**< Service ID: Store configuration */ |
|||
#define DLT_SERVICE_ID_RESETO_FACTORY_DEFAULT 0x06 /**< Service ID: Reset to factory defaults */ |
|||
#define DLT_SERVICE_ID_SET_COM_INTERFACE_STATUS 0x07 /**< Service ID: Set communication interface status */ |
|||
#define DLT_SERVICE_ID_SET_COM_INTERFACE_MAX_BANDWIDTH 0x08 /**< Service ID: Set communication interface maximum bandwidth */ |
|||
#define DLT_SERVICE_ID_SET_VERBOSE_MODE 0x09 /**< Service ID: Set verbose mode */ |
|||
#define DLT_SERVICE_ID_SET_MESSAGE_FILTERING 0x0A /**< Service ID: Set message filtering */ |
|||
#define DLT_SERVICE_ID_SETIMING_PACKETS 0x0B /**< Service ID: Set timing packets */ |
|||
#define DLT_SERVICE_ID_GET_LOCALIME 0x0C /**< Service ID: Get local time */ |
|||
#define DLT_SERVICE_ID_USE_ECU_ID 0x0D /**< Service ID: Use ECU id */ |
|||
#define DLT_SERVICE_ID_USE_SESSION_ID 0x0E /**< Service ID: Use session id */ |
|||
#define DLT_SERVICE_ID_USEIMESTAMP 0x0F /**< Service ID: Use timestamp */ |
|||
#define DLT_SERVICE_ID_USE_EXTENDED_HEADER 0x10 /**< Service ID: Use extended header */ |
|||
#define DLT_SERVICE_ID_SET_DEFAULT_LOG_LEVEL 0x11 /**< Service ID: Set default log level */ |
|||
#define DLT_SERVICE_ID_SET_DEFAULTRACE_STATUS 0x12 /**< Service ID: Set default trace status */ |
|||
#define DLT_SERVICE_ID_GET_SOFTWARE_VERSION 0x13 /**< Service ID: Get software version */ |
|||
#define DLT_SERVICE_ID_MESSAGE_BUFFER_OVERFLOW 0x14 /**< Service ID: Message buffer overflow */ |
|||
#define DLT_SERVICE_ID_CALLSW_CINJECTION 0xFFF /**< Service ID: Message Injection (minimal ID) */ |
|||
|
|||
/*
|
|||
* ******************************************************************************************* |
|||
* Exported types |
|||
* ******************************************************************************************* |
|||
* */ |
|||
|
|||
/**!
|
|||
* \brief DltLogLevel_t |
|||
* \details Typdef used to identify the DLT log level |
|||
* */ |
|||
typedef enum |
|||
{ |
|||
DL_FATAL =1, |
|||
DL_ERROR =2, |
|||
DL_WARN =3, |
|||
DL_INFO =4, |
|||
DL_DEBUG =5, |
|||
DL_VERBOSE =6, |
|||
}DltLogLevel_t; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
/*
|
|||
* ******************************************************************************************* |
|||
* Exported function - API |
|||
* ******************************************************************************************* |
|||
* */ |
|||
|
|||
/*!
|
|||
************************************************************************************************ |
|||
* \brief DLTuc_RawDataReceiveDone |
|||
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages |
|||
* Call the function to inform DLTuc that Raw data packet has been received |
|||
************************************************************************************************/ |
|||
void DLTuc_RawDataReceiveDone(uint16_t Size); |
|||
|
|||
/*!
|
|||
************************************************************************************************ |
|||
* \brief DLTuc_RegisterReceiveSerialDataFunction |
|||
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages. |
|||
* - Register callback function which will be used by DLTuc to start data receive process. |
|||
* The Callback function is basicly called only after registration and if data packet has been received, |
|||
* to start again receive data packet |
|||
* \param in LLSerialRecDataFunctionC ... |
|||
************************************************************************************************/ |
|||
void DLTuc_RegisterReceiveSerialDataFunction(void LLSerialRecDataFunctionC(uint8_t *DltLogData, uint16_t Size)); |
|||
|
|||
/*!
|
|||
************************************************************************************************ |
|||
* \brief DLTuc_RegisterInjectionDataReceivedCb |
|||
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages |
|||
* Register injection data received call back |
|||
* Use the function if you want register call back function to handle the Injection messages in your application |
|||
* \param in InjectionDataRcvd ... |
|||
************************************************************************************************/ |
|||
void DLTuc_RegisterInjectionDataReceivedCb |
|||
(void InjectionDataRcvd(uint32_t AppId, uint32_t ConId,uint32_t ServId,uint8_t *Data, uint16_t Size)); |
|||
|
|||
/*!
|
|||
************************************************************************************************ |
|||
* \brief DLTuc_RegisterTransmitSerialDataFunction |
|||
* \details This simple stack/library must be initialized by "DLTuc_RegisterTransmitSerialDataFunction" |
|||
* As a parameter must be passed function which will transmit serial data |
|||
* \param in LLSerialTrDataFunctionC transmit function pointer |
|||
************************************************************************************************/ |
|||
void DLTuc_RegisterTransmitSerialDataFunction(void LLSerialTrDataFunctionC(uint8_t *DltLogData, uint8_t Size)); |
|||
|
|||
/*!
|
|||
************************************************************************************************ |
|||
* \brief DLTuc_RegisterGetTimeStampMsCallback |
|||
* \details function to update time stamp in library |
|||
* \param in GetSysTime - pointer to function which allow to read system time in msec |
|||
*************************************************************************************************/ |
|||
void DLTuc_RegisterGetTimeStampMsCallback(uint32_t GetSysTime(void)); |
|||
|
|||
|
|||
/*!
|
|||
************************************************************************************************ |
|||
* \brief DLTuc_MessageTransmitDone |
|||
* \details IMPORTANT!!!!! |
|||
* Call this function when the transsmision is end |
|||
* For example in "DMA transmission end callback" to inform the lib that the message is transmitted |
|||
************************************************************************************************ |
|||
* */ |
|||
void DLTuc_MessageTransmitDone(void); |
|||
|
|||
/*!
|
|||
************************************************************************************************ |
|||
* \brief DLTuc_LogOutVarArgs |
|||
* \details default function to create DLT Log |
|||
* \param DltLogLevel_t Level - of Dlt log |
|||
* \param in AppId - size of the "DltLogData" (return value) |
|||
* \param in ContextId - pointer to the message stored in RingBuffer (return value) |
|||
* \param in Payload String to send as dlt log |
|||
* \param in ... parameters same as in printf function |
|||
*************************************************************************************************/ |
|||
void DLTuc_LogOutVarArgs(DltLogLevel_t Level, uint32_t AppId, uint32_t ContextId, uint8_t *Payload, ...); |
|||
|
|||
|
|||
/*
|
|||
* ******************************************************************************************* |
|||
* Additional macros to facilitate the use of the library |
|||
* ******************************************************************************************* |
|||
* */ |
|||
|
|||
#ifdef LOGS_ENABLE |
|||
|
|||
/**!
|
|||
* \brief LOGL(level, str, ...) |
|||
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add |
|||
* log_level, DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE |
|||
* |
|||
* */ |
|||
#define LOG(str, ...)\ |
|||
if(DL_INFO <= DLT_LOG_ENABLE_LEVEL){\ |
|||
DLTuc_LogOutVarArgs(DL_INFO, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) str, ##__VA_ARGS__);\ |
|||
} |
|||
|
|||
/**!
|
|||
* \brief LOGL(level, str, ...) |
|||
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE |
|||
* |
|||
* */ |
|||
#define LOGL(log_level, str, ...)\ |
|||
if(log_level <= DLT_LOG_ENABLE_LEVEL){\ |
|||
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) str, ##__VA_ARGS__);\ |
|||
} |
|||
|
|||
/**!
|
|||
* @brief LOGF(log_level, str, ...) |
|||
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE |
|||
* Additionally add the name of the calling function |
|||
* |
|||
* |
|||
* */ |
|||
#define LOGF(log_level, str, ...)\ |
|||
if(log_level <= DLT_LOG_ENABLE_LEVEL){\ |
|||
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) "FUN:%s LOG: "str, __FUNCTION__,##__VA_ARGS__);\ |
|||
} |
|||
|
|||
/**!
|
|||
* \brief LOGFF(log_level, str, ...) |
|||
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE |
|||
* Additionally add the name of the calling function and file name |
|||
* |
|||
* |
|||
* */ |
|||
#define LOGFF(log_level, str, ...)\ |
|||
if(log_level <= DLT_LOG_ENABLE_LEVEL){\ |
|||
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *)"FILE:%s LINE: %d FUN:%s LOG: "str,__FILE__,__LINE__,__FUNCTION__,##__VA_ARGS__);\ |
|||
} |
|||
|
|||
#else |
|||
LOG(str, ...) |
|||
LOGL(log_level, str, ...) |
|||
LOGF(log_level, str, ...) |
|||
LOGFF(log_level, str, ...) |
|||
#endif |
|||
|
|||
#endif /* INC_DLT_LOGS_MCU_H_ */ |
|||
@ -0,0 +1,74 @@ |
|||
/**
|
|||
* @file DLTuc.c |
|||
* @author teodor |
|||
* @date 1 Jul 2022 |
|||
* @brief This file is a part of DLTuc library |
|||
* |
|||
* In this header file is placed DLTuc configuration template |
|||
* |
|||
*/ |
|||
|
|||
#if 1 /*Set it to "1" to enable content*/ |
|||
|
|||
#ifndef __DLT_CONFIG__ |
|||
|
|||
/*Comment this line to turn off all logs..*/ |
|||
#define LOGS_ENABLE |
|||
|
|||
/*Pass here the entry critical entry function for your RTOS or
|
|||
Interrupt block functions if you want use the library from diffrent context*/ |
|||
#define DLTuc_OS_CRITICAL_START() |
|||
#define DLTuc_OS_CRITICAL_END() |
|||
|
|||
|
|||
/*Default minimum log level to transmit the log*/ |
|||
//#ifndef DLT_LOG_ENABLE_LEVEL
|
|||
////#define DLT_LOG_ENABLE_LEVEL DL_VERBOSE
|
|||
// #define DLT_LOG_ENABLE_LEVEL 0
|
|||
//#endif
|
|||
|
|||
extern char DLT_LOG_ENABLE_LEVEL; |
|||
|
|||
|
|||
/**!
|
|||
* \brief DLT_LOG_CONTEX |
|||
* \details to define the minimum level log which will printed using the debug macros |
|||
* |
|||
*/ |
|||
#ifndef DLT_LOG_CONTEX |
|||
#define DLT_LOG_CONTEX "DFLT" |
|||
#endif |
|||
|
|||
/**!
|
|||
* \brief DLT_LOG_APPID |
|||
* \details to define the minimum level log which will printed using the debug macros |
|||
* |
|||
*/ |
|||
#ifndef DLT_LOG_APPID |
|||
#define DLT_LOG_APPID "0000" |
|||
#endif |
|||
|
|||
/**!
|
|||
* \brief DLT_LOG_ECUID |
|||
* \details you can define here you ECUID .. |
|||
* |
|||
*/ |
|||
#define DLT_LOG_ECUID "uCID" /*Electronic Controller Unit ID*/ |
|||
|
|||
#define DLT_ECU_SW_VER 0001 |
|||
|
|||
/*
|
|||
*@brief DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE & DLT_TRANSMIT_RING_BUFFER_SIZE |
|||
* these values define the size of the circular buffer and the maximum size of a single DLT message |
|||
* Size of out Circular DLT messages buffer is equal: DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE*DLT_TRANSMIT_RING_BUFFER_SIZE |
|||
*/ |
|||
#define DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE 255 |
|||
#define DLT_TRANSMIT_RING_BUFFER_SIZE 15 |
|||
|
|||
|
|||
#define DLT_REC_SINGLE_MESSAGE_MAX_SIZE 255 |
|||
#define DLT_RECEIVE_RING_BUFFER_SIZE 2 |
|||
|
|||
#endif //__DLT_CONFIG__
|
|||
|
|||
#endif //Content enable
|
|||
@ -0,0 +1,15 @@ |
|||
/*
|
|||
* bsp_DLT_Log.h |
|||
* |
|||
* Created on: Aug 8, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_DLT_LOG_H_ |
|||
#define INC_BSP_BSP_DLT_LOG_H_ |
|||
#include "DLT/DLTuc.h" |
|||
#include "BHBF_ROBOT.h" |
|||
|
|||
|
|||
void dLT_Log_intialize(struct UARTHandler *Handler); |
|||
#endif /* INC_BSP_BSP_DLT_LOG_H_ */ |
|||
@ -0,0 +1,73 @@ |
|||
/*
|
|||
* bsp_EEPROM.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_EEPROM_H_ |
|||
#define INC_BSP_EEPROM_H_ |
|||
|
|||
|
|||
|
|||
|
|||
#include "bsp_include.h" |
|||
#include "bsp_CV.pb.h" |
|||
#include "bsp_IAP.pb.h" |
|||
|
|||
|
|||
#define EEPROM_WP_Pin GPIO_PIN_11 |
|||
#define EEPROM_WP_GPIO_Port GPIOE |
|||
#define EEPROM_SCL_Pin GPIO_PIN_12 |
|||
#define EEPROM_SCL_GPIO_Port GPIOE |
|||
#define EEPROM_SDA_Pin GPIO_PIN_13 |
|||
#define EEPROM_SDA_GPIO_Port GPIOE |
|||
|
|||
#define AT24C512 |
|||
#ifdef AT24C512 |
|||
#define EE_MODEL_NAME "AT24C512" |
|||
#define EE_DEV_ADDR 0xA0 /* 设备地址 */ |
|||
#define EE_PAGE_SIZE 128 /* 页面大小(字节) */ |
|||
#define EE_SIZE (512*128) /* 总容量(字节) */ // not used in this progrm
|
|||
#define EE_ADDR_BYTES 2 /* 地址字节个数 */ |
|||
#endif |
|||
|
|||
#define I2C_WR 0 /* 写控制bit */ |
|||
#define I2C_RD 1 /* 读控制bit */ |
|||
|
|||
//////////////////////////////////////////////////////////////////
|
|||
//there are 12M eeprom in total, and the code download Address is App_Download_EEPROM_Addr
|
|||
//512 Pages x 128 Bytes = 65536 Bytes = 512 kbits
|
|||
|
|||
|
|||
#define GF_BSP_EEPROM_CV_struct_define_Start_Address 0 |
|||
#define IAP_struct_define_Start_Address 512 |
|||
|
|||
extern uint16_t App_Download_EEPROM_Addr; |
|||
|
|||
//返回值::1-正常;0-错误
|
|||
uint8_t GF_BSP_EEPROM_Init(void); |
|||
|
|||
uint8_t GF_BSP_EEPROM_CheckOK(void); |
|||
uint8_t GF_BSP_EEPROM_ReadBytes(uint8_t *_pReadBuf, uint16_t _usAddress, |
|||
uint16_t _usSize); |
|||
uint8_t GF_BSP_EEPROM_WriteBytes(uint8_t *_pWriteBuf, uint16_t _usAddress, |
|||
uint16_t _usSize); |
|||
|
|||
|
|||
|
|||
|
|||
CV_struct_define GF_BSP_EEPROM_Get_CV(void); |
|||
uint8_t GF_BSP_EEPROM_Set_CV(CV_struct_define cv); |
|||
|
|||
IAP_struct_define GF_BSP_EEPROM_Get_IAP(void); |
|||
uint8_t GF_BSP_EEPROM_Set_IAP(IAP_struct_define iap); |
|||
|
|||
|
|||
|
|||
PV_struct_define GF_BSP_EEPROM_Get_PV(void); |
|||
|
|||
uint8_t GF_BSP_EEPROM_Set_PV(PV_struct_define pv); |
|||
|
|||
|
|||
#endif /* INC_BSP_EEPROM_H_ */ |
|||
@ -0,0 +1,25 @@ |
|||
/*
|
|||
* bsp_Error_Detect.h |
|||
* |
|||
* Created on: Oct 23, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_ERROR_DETECT_H_ |
|||
#define INC_BSP_BSP_ERROR_DETECT_H_ |
|||
|
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
#include "BHBF_ROBOT.h" |
|||
#include "bsp_com_helper.h" |
|||
#include "bsp_include.h" |
|||
/* Exported types ------------------------------------------------------------*/ |
|||
/* Exported constants --------------------------------------------------------*/ |
|||
/* Exported macro ------------------------------------------------------------*/ |
|||
extern HardWareController *HardWareErrorController; |
|||
/* Exported functions ------------------------------------------------------- */ |
|||
|
|||
extern void Error_Detect_Intialzie(uint16_t DispacherPeriod); |
|||
|
|||
|
|||
#endif /* INC_BSP_BSP_ERROR_DETECT_H_ */ |
|||
@ -0,0 +1,89 @@ |
|||
/*
|
|||
* bsp_FDCAN.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_FDCAN_H_ |
|||
#define INC_BSP_FDCAN_H_ |
|||
#include "bsp_Error.pb.h" |
|||
#include "bsp_com_helper.h" |
|||
uint8_t GF_BSP_FDCAN_Init(void); |
|||
|
|||
void GF_BSP_FDCAN_Senddata(uint8_t FDCAN_CH, uint32_t FrameID, |
|||
uint8_t DataLength, uint8_t *Txdata); |
|||
|
|||
extern uint8_t CAN_Buf[8]; |
|||
|
|||
extern uint8_t CAN_Buf[8]; |
|||
extern uint8_t CAN_Buf_2[8]; |
|||
|
|||
typedef struct _CANSendHandler |
|||
{ |
|||
uint32_t CAN_ID; |
|||
uint32_t SendListTimePeriod; |
|||
uint8_t SendLength; |
|||
uint8_t Tx_Buf[8]; |
|||
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t); //CAN接收解码程序
|
|||
struct _CANSendHandler *pNext; |
|||
} CANSendHandler; |
|||
|
|||
|
|||
typedef struct _FDCANHandler |
|||
{ |
|||
FDCAN_HandleTypeDef *canfd; //使用的can接口
|
|||
struct _DispacherController *dispacherController; |
|||
|
|||
uint8_t timeSpan; |
|||
|
|||
uint8_t SendListExists; |
|||
uint32_t SendList_Period; //时间ms
|
|||
uint32_t SendList_time_Count; |
|||
|
|||
CANSendHandler *pCurrentCANSendHadler; |
|||
|
|||
void (*AddCANSendList)(struct _FDCANHandler*, |
|||
uint32_t, |
|||
uint8_t, |
|||
uint8_t*, |
|||
uint32_t,//这里是修改等待时间
|
|||
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t)); |
|||
|
|||
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t); // decode can frame, received from other devices
|
|||
|
|||
void (*CAN_Send)(struct _FDCANHandler*, uint32_t, uint8_t, uint8_t*); |
|||
void (*CAN_Send_Data)(struct _FDCANHandler*); |
|||
|
|||
uint8_t Rx_Buf[128]; |
|||
uint8_t Tx_Buf[128]; |
|||
uint32_t ReceivedLength; |
|||
uint32_t SendLength; |
|||
uint32_t ReceivedFrameID; |
|||
uint32_t SendFrameID; |
|||
|
|||
} FDCANHandler; |
|||
|
|||
extern FDCANHandler FD_CAN_1_Handler; |
|||
extern FDCANHandler FD_CAN_2_Handler; |
|||
void GF_BSP_CAN_Timer(); |
|||
void CAN_Send_t(struct _FDCANHandler *fd, uint32_t FrameID, uint8_t DataLength, |
|||
uint8_t *Txdata); |
|||
void CAN_Send_Data_t(struct _FDCANHandler *fd); |
|||
|
|||
void GF_CAN_Send_List_Send(FDCANHandler *handler); |
|||
void CANHandlerAddTxList(FDCANHandler *handler, uint32_t CAN_ID, |
|||
uint8_t SendLength, uint8_t *Tx_Buf,uint32_t sendListTimePeriod, |
|||
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t)); |
|||
void GF_BSP_CANHandler_Init(int can1_sendListPeriod, int can1_DispacherPeriod, |
|||
int can2_sendListPeriod, int can2_DispacherPeriod); |
|||
void GF_BSP_CANHandler_Init_CAN(FDCANHandler *handler, |
|||
FDCAN_HandleTypeDef *canfd, int sendListPeriod, int DispacherPeriod); |
|||
|
|||
void DecodeMotorCAN(uint32_t canID, uint8_t *buffer, uint32_t length); |
|||
|
|||
extern FDCANHandler FD_CAN_1_Handler; |
|||
extern FDCANHandler FD_CAN_2_Handler; |
|||
extern int32_t CAN_ID; |
|||
extern int32_t CAN_ID_2; |
|||
#endif /* INC_BSP_FDCAN_H_ */ |
|||
@ -0,0 +1,18 @@ |
|||
/*
|
|||
* bsp_GPIO.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_GPIO_H_ |
|||
#define INC_BSP_GPIO_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
uint8_t GF_BSP_GPIO_Init(void); |
|||
void GF_BSP_GPIO_SetIO(uint8_t IO_Index,uint8_t Level); |
|||
uint8_t GF_BSP_GPIO_ReadIO(uint8_t IO_Index); |
|||
uint8_t GF_BSP_GPIO_ToggleIO(uint8_t IO_Index); |
|||
|
|||
#endif /* INC_BSP_GPIO_H_ */ |
|||
@ -0,0 +1,22 @@ |
|||
/*
|
|||
* bsp_IMU.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_IMU_H_ |
|||
#define INC_BSP_IMU_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
#include "msp_MPU6050.pb.h" |
|||
|
|||
|
|||
|
|||
//uint8_t GF_BSP_IMU_Init(void);
|
|||
extern uint8_t GF_BSP_MPU_Init(void); |
|||
extern void GF_BSP_GetAngle(); |
|||
extern uint8_t GF_MSP_IMU_6050_Init(SP_BSP_MPU6050 *_IMU6050_Angle); |
|||
extern double MPU_Get_Temperature(void); |
|||
#endif /* INC_BSP_IMU_H_ */ |
|||
@ -0,0 +1,48 @@ |
|||
/**
|
|||
* Copyright (c) 2020 rxi |
|||
* |
|||
* This library is free software; you can redistribute it and/or modify it |
|||
* under the terms of the MIT license. See `log.c` for details. |
|||
*/ |
|||
|
|||
#ifndef BSP_LOG_H |
|||
#define BSP_LOG_H |
|||
|
|||
#ifndef __LOG_H_ |
|||
#define __LOG_H_ |
|||
|
|||
#include <stdio.h> |
|||
#include <stdarg.h> |
|||
#include <stdbool.h> |
|||
#include <time.h> |
|||
#include "bsp_UART.h" |
|||
#include <stdarg.h> |
|||
|
|||
//#define OPEN_LOG 1
|
|||
#define OPEN_LOG 5 |
|||
|
|||
typedef enum |
|||
{ |
|||
LOG_TRACE = 0, LOG_DEBUG = 1, LOG_INFO, LOG_WARN, LOG_ERROR, LOG_FATAL |
|||
} E_LOG_LEVEL; |
|||
|
|||
extern char log_buf[500]; |
|||
|
|||
extern char LOG_LEVEL_Char; |
|||
|
|||
void log_intialize(struct UARTHandler *Handler); |
|||
|
|||
void log_log(const int level, const char *fun, const int line, const char *fmt, |
|||
...); |
|||
#define log(level, fmt, ...) log_log(level, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__) |
|||
|
|||
#define log_trace(...) log_log(LOG_TRACE, __FILE__, __LINE__, __VA_ARGS__) |
|||
#define log_debug(...) log_log(LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__) |
|||
#define log_info(...) log_log(LOG_INFO, __FILE__, __LINE__, __VA_ARGS__) |
|||
#define log_warn(...) log_log(LOG_WARN, __FILE__, __LINE__, __VA_ARGS__) |
|||
#define log_error(...) log_log(LOG_ERROR, __FILE__, __LINE__, __VA_ARGS__) |
|||
#define log_fatal(...) log_log(LOG_FATAL, __FILE__, __LINE__, __VA_ARGS__) |
|||
|
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,50 @@ |
|||
#ifndef __BSP_MB_HOST_H__ |
|||
#define __BSP_MB_HOST_H__ |
|||
|
|||
/* 包含头文件 ----------------------------------------------------------------*/ |
|||
|
|||
/* 类型定义 ------------------------------------------------------------------*/ |
|||
|
|||
/* 宏定义 --------------------------------------------------------------------*/ |
|||
#define MB_SLAVEADDR 0x0001 //从机地址
|
|||
#define MB_REG_ADDR 0 //寄存器地址(离散、线圈)
|
|||
#define HoldingReg 0 //保持寄存器
|
|||
#define InputRegReg 0x0020 //输入寄存器
|
|||
#include "bsp_include.h" |
|||
#include "bsp_UART.h" |
|||
|
|||
/* 扩展变量 ------------------------------------------------------------------*/ |
|||
typedef struct |
|||
{ |
|||
|
|||
uint16_t DATA_01H; |
|||
uint16_t DATA_02H; |
|||
uint16_t DATA_03H; |
|||
|
|||
uint16_t DATA_04H; |
|||
uint16_t DATA_05H; |
|||
uint16_t DATA_06H; |
|||
uint8_t DATA_10H[64]; |
|||
|
|||
}MB_REG_DATA; |
|||
|
|||
//;
|
|||
extern uint8_t MB_rx_flag; |
|||
extern uint16_t Read_Reg_Num; |
|||
|
|||
/* 函数声明 ------------------------------------------------------------------*/ |
|||
uint16_t MB_CRC16(uint8_t *pushMsg, uint16_t usDataLen); |
|||
void MB_ReadCoil(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num); |
|||
void MB_WriteCoil(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _sta); |
|||
void MB_ReadInput(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num); |
|||
void MB_ReadHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num); |
|||
void MB_ReadInputReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num); |
|||
void MB_WriteHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _data); |
|||
//void MB_WriteNumHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num,uint8_t *_databuf)
|
|||
void MB_WriteNumHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num,uint8_t *_databuf); |
|||
void MB_WriteNumCoil(uint8_t *Tx_Buf, uint8_t *TxCount_t, uint8_t _addr, |
|||
uint16_t _reg, uint16_t _num, uint8_t *_databuf); |
|||
|
|||
#endif /* __BSP_MB_HOST_H__ */ |
|||
|
|||
/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/ |
|||
@ -0,0 +1,11 @@ |
|||
/*
|
|||
* bsp_Motor_Helper.h |
|||
* |
|||
* Created on: Jul 30, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_MOTOR_HELPER_H_ |
|||
#define INC_BSP_BSP_MOTOR_HELPER_H_ |
|||
|
|||
#endif /* INC_BSP_BSP_MOTOR_HELPER_H_ */ |
|||
@ -0,0 +1,52 @@ |
|||
/*
|
|||
* bsp_TCPClient.h |
|||
* |
|||
* Created on: Oct 22, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_TCPCLIENT_H_ |
|||
#define INC_BSP_BSP_TCPCLIENT_H_ |
|||
|
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
|
|||
|
|||
/* Exported types ------------------------------------------------------------*/ |
|||
/* Exported constants --------------------------------------------------------*/ |
|||
#define USE_LCD /* enable LCD */ |
|||
|
|||
#define DEST_IP_ADDR0 ((uint8_t)192U) |
|||
#define DEST_IP_ADDR1 ((uint8_t)168U) |
|||
#define DEST_IP_ADDR2 ((uint8_t)1U) |
|||
#define DEST_IP_ADDR3 ((uint8_t)10U) |
|||
|
|||
#define DEST_PORT ((uint16_t)502U) |
|||
|
|||
|
|||
/*NETMASK*/ |
|||
#define NETMASK_ADDR0 ((uint8_t) 255U) |
|||
#define NETMASK_ADDR1 ((uint8_t) 255U) |
|||
#define NETMASK_ADDR2 ((uint8_t) 255U) |
|||
#define NETMASK_ADDR3 ((uint8_t) 0U) |
|||
|
|||
/*Gateway Address*/ |
|||
#define GW_ADDR0 ((uint8_t) 192U) |
|||
#define GW_ADDR1 ((uint8_t) 168U) |
|||
#define GW_ADDR2 ((uint8_t) 1U) |
|||
#define GW_ADDR3 ((uint8_t) 1U) |
|||
|
|||
/* Exported macro ------------------------------------------------------------*/ |
|||
/* Exported functions ------------------------------------------------------- */ |
|||
#include "bsp_LazorData.pb.h" |
|||
extern LazorData *ReadLazorData; |
|||
|
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
/* Exported types ------------------------------------------------------------*/ |
|||
/* Exported constants --------------------------------------------------------*/ |
|||
/* Exported macro ------------------------------------------------------------*/ |
|||
/* Exported functions ------------------------------------------------------- */ |
|||
//void tcp_client_connect(void);
|
|||
void TCP_Client_Init(void); |
|||
#endif /* INC_BSP_BSP_TCPCLIENT_H_ */ |
|||
@ -0,0 +1,26 @@ |
|||
/*
|
|||
* bsp_TIMER.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_TIMER_H_ |
|||
#define INC_BSP_TIMER_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
#include "msp_MK32_1.h" |
|||
|
|||
|
|||
extern double Rot_current_time; |
|||
extern double Pit_current_time; |
|||
extern double back_time; |
|||
extern uint8_t rot_motion_or_stop; |
|||
extern uint8_t pit_motion_or_stop; |
|||
extern uint8_t robot_motion_or_stop; |
|||
|
|||
uint8_t GF_BSP_TIMER_Init(void); |
|||
void GF_BSP_TIMER_DelayUS(uint32_t n); |
|||
|
|||
|
|||
#endif /* INC_BSP_TIMER_H_ */ |
|||
@ -0,0 +1,121 @@ |
|||
/* |
|||
* bsp_UART.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_UART_H_ |
|||
#define INC_BSP_UART_H_ |
|||
#include "bsp_hardware_hash_table.h" |
|||
#include "BSP/bsp_include.h" |
|||
#include <stdlib.h> |
|||
#include "bsp_com_helper.h" |
|||
|
|||
#define UART_Transmit_MAX_NUM 1024 |
|||
#define UART_Receive_MAX_NUM 100 |
|||
|
|||
|
|||
extern struct UARTHandler RS_485_1_UART_Handler; |
|||
extern struct UARTHandler RS_485_2_UART_Handler; |
|||
extern struct UARTHandler RS_485_3_UART_Handler; |
|||
extern struct UARTHandler RS_485_4_UART_Handler; |
|||
extern struct UARTHandler InterCall_DEBUG_UART_Handler; |
|||
extern struct UARTHandler E28_SBUS_UART_Handler; |
|||
extern struct UARTHandler E22_Serial_UART_Handler; |
|||
|
|||
void GF_BSP_UARTHandlers_Intialize(); |
|||
|
|||
|
|||
|
|||
uint8_t GF_BSP_UART_Init(void); |
|||
|
|||
//串行发送完成后才能发送第二帧数据,没有做缓冲,如未发送完成,第二次发送无效,丢弃发送数据 |
|||
void GF_BSP_UART_Transmit(const uint8_t RS485_Index,const uint8_t *pData, uint16_t Size); |
|||
|
|||
|
|||
|
|||
typedef struct _UARTSendHandler |
|||
{ |
|||
uint16_t TxCount; |
|||
uint8_t Tx_Buf[512]; |
|||
void (*UART_Decode)(uint8_t*, uint16_t); // 发送缓存 |
|||
struct _UARTSendHandler* pNext; |
|||
}UARTSendHandler; |
|||
|
|||
|
|||
struct UARTHandler |
|||
{ |
|||
char startCountFlag; //indicate that to start counting |
|||
char send_finished;//indicate decode finished or not |
|||
char decode_finished;//indicate decode finished or not |
|||
uint8_t tmp_Rx_Buf[2]; // temporary data to store received data |
|||
uint32_t Wait_time; // the time to wait |
|||
uint32_t Send_time; |
|||
//uint32_t count; |
|||
uint32_t Wait_Time_Count; |
|||
uint32_t Send_Time_Count; |
|||
|
|||
UART_HandleTypeDef* uart; //UART to use |
|||
unsigned char timeSpan; // timer elapsed time |
|||
uint8_t Rx_Buf[2048]; // 接收缓存,最大256字节 |
|||
uint8_t Tx_Buf[2048]; //发送缓存 157,864 |
|||
uint16_t TxCount; |
|||
uint16_t RxCount; |
|||
|
|||
|
|||
void (*UART_Tx)(struct UARTHandler*); //void UART_Tx(uint8_t *Tx_Buf,uint16_t TxCount); |
|||
void (*UART_Rx)(struct UARTHandler*); |
|||
void (*UART_Decode)(uint8_t*, uint16_t); //Decode Rx_Buf |
|||
|
|||
UARTSendHandler *pCurrentUARTSendHadler; // |
|||
void (*AddSendList)(struct UARTHandler*, uint8_t*, uint16_t, void (*UART_Decode)(uint8_t*, uint16_t)); |
|||
int16_t UARTSendHadlerListNum; |
|||
|
|||
//got a dispacher alone |
|||
// Dispatcher *pHead;// = NULL; //环形链表中的数据头指针 |
|||
// Dispatcher *pTail;// = NULL; //环形链表中的数据尾指针 |
|||
// uint16_t DispacherNumber;// = 0; |
|||
// uint16_t DispacherCallTimeCount; //= 100; //2ms 一次, |
|||
// uint16_t counter;// = 0; |
|||
// uint16_t Dispacher_Enable;// = 0; |
|||
// void(*Add_Dispatcher_List)(struct UARTHandler *uartHandler,void (*dispache)(void));//UART的调度程序 |
|||
// void(*Dispatcher_Run)(struct UARTHandler *uartHandler);//UART的调度程序 |
|||
|
|||
|
|||
DispacherController* dispacherController; |
|||
HardWareController* uartHardWareController; |
|||
|
|||
// uint16_t HardWare_Check_Counter; |
|||
// ComHardWare *pComHWHead; |
|||
// ComHardWare *pComHWTail; |
|||
// void(*Add_PCOMHardWare)(struct UARTHandler*,char *,char); |
|||
// void(*PCOMHardWare_Check)(struct UARTHandler*); |
|||
// int (*Set_PCOMHardWare)(struct UARTHandler * ,char* ,char ); |
|||
}; |
|||
|
|||
typedef struct _UARTHandlerHelper |
|||
{ |
|||
struct UARTHandler *UART_Handler; |
|||
DispacherController* disp; |
|||
HardWareController* hardWares; |
|||
|
|||
}UARTHandlerHelper; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
void UARTHandlerTx(struct UARTHandler *uartHandler); |
|||
void UARTHandlerRX(struct UARTHandler *uartHandler); |
|||
//void IntializeUARTHandler(struct UARTHandler *uartHandler, UART_HandleTypeDef uart,int32_t WaitTime,unsigned char timeSpan); |
|||
void Counting(struct UARTHandler *uartHandler); |
|||
void IntializeUARTHandler(struct UARTHandler *uartHandler, |
|||
UART_HandleTypeDef* uart, int32_t WaitTime, unsigned char timeSpan); |
|||
void GF_BSP_UART_Timer(); |
|||
|
|||
extern void uartHandler_intialize(UARTHandlerHelper* helper ,struct UARTHandler *Handler,int WaitTime); |
|||
|
|||
|
|||
#endif /* INC_BSP_UART_H_ */ |
|||
@ -0,0 +1,111 @@ |
|||
|
|||
|
|||
#ifndef INC_BSP_UART_H_ |
|||
#define INC_BSP_UART_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
#include "main.h" |
|||
#include "bsp_Error.pb.h" |
|||
#define UART_Transmit_MAX_NUM 1024 |
|||
#define UART_Receive_MAX_NUM 100 |
|||
|
|||
extern struct UARTHandler RS_485_1_UART_Handler; |
|||
extern struct UARTHandler RS_485_2_UART_Handler; |
|||
extern struct UARTHandler RS_485_3_UART_Handler; |
|||
extern struct UARTHandler RS_485_4_UART_Handler; |
|||
extern struct UARTHandler InterCall_DEBUG_UART_Handler; |
|||
extern struct UARTHandler E28_SBUS_UART_Handler; |
|||
extern struct UARTHandler LTE_7S0_Serial_UART_Handler; |
|||
|
|||
|
|||
|
|||
#if defined (hlpuart1Exit) |
|||
extern struct UARTHandler LPUART1_UART_Handler; |
|||
|
|||
#endif |
|||
|
|||
uint8_t GF_BSP_UART_Init(void); |
|||
|
|||
void GF_BSP_UARTHandlers_Intialize( |
|||
int32_t RS485_1_WaitTime, |
|||
int32_t RS485_2_WaitTime, |
|||
int32_t RS485_3_WaitTime, |
|||
int32_t RS485_4_WaitTime, |
|||
int32_t LTE_7S0_Serial_WaitTime, |
|||
int32_t InterCall_DEBUG_WaitTime, |
|||
int32_t E28_SBUS_WaitTime, |
|||
int32_t LPUART1_UART_WaitTime, |
|||
int32_t RS485_1_Dispacher_Time, |
|||
int32_t RS485_2_Dispacher_Time, |
|||
int32_t RS485_3_Dispacher_Time, |
|||
int32_t RS485_4_Dispacher_Time, |
|||
int32_t LTE_7S0_Serial_Dispacher_Time, |
|||
int32_t InterCall_DEBUG_Dispacher_Time, |
|||
int32_t E28_SBUS_Dispacher_Time, |
|||
int32_t LPUART1_UART_Dispacher_Time |
|||
); |
|||
|
|||
//串行发送完成后才能发送第二帧数据,没有做缓冲,如未发送完成,第二次发送无效,丢弃发送数据
|
|||
void GF_BSP_UART_Transmit(const uint8_t RS485_Index,const uint8_t *pData, uint16_t Size); |
|||
|
|||
|
|||
|
|||
|
|||
typedef struct UARTSendHandler |
|||
{ |
|||
uint16_t SendLength; |
|||
uint16_t SendListTimePeriod; |
|||
uint8_t Tx_Buf[502]; |
|||
void (*UART_Decode)(uint8_t*, uint16_t); // 发送缓存
|
|||
struct UARTSendHandler* pNext; |
|||
}UARTSendHandler; |
|||
|
|||
|
|||
struct UARTHandler |
|||
{ |
|||
char startCountFlag; //indicate that to start counting
|
|||
char send_finished; //indicate send finished or not
|
|||
char decode_finished; //indicate decode finished or not
|
|||
uint8_t tmp_Rx_Buf[2]; // temporary data to store received data
|
|||
|
|||
uint32_t Wait_time; // the time to wait
|
|||
uint32_t Wait_Time_Count; |
|||
uint32_t SendList_time_Count; |
|||
|
|||
uint32_t SendList_Period; |
|||
uint8_t SendListExists; |
|||
|
|||
UART_HandleTypeDef* uart; //UART to use
|
|||
UARTSendHandler *pCurrentUARTSendHadler; |
|||
|
|||
unsigned char timeSpan; // timer elapsed time
|
|||
uint8_t Rx_Buf[2048]; // 接收缓存,最大256字节
|
|||
uint8_t Tx_Buf[2048]; //发送缓存 157,864
|
|||
uint16_t TxCount; |
|||
|
|||
uint16_t RxCount; |
|||
|
|||
void (*UART_Tx)(struct UARTHandler*); //void UART_Tx(uint8_t *Tx_Buf,uint16_t TxCount);
|
|||
void (*UART_Rx)(struct UARTHandler*); |
|||
void (*UART_Decode)(uint8_t*, uint16_t); //Decode Rx_Buf
|
|||
|
|||
void (*AddSendList)(struct UARTHandler*, |
|||
uint8_t*, uint16_t, |
|||
uint32_t, //这里是修改等待时间
|
|||
void (*UART_Decode)(uint8_t*, uint16_t)); |
|||
|
|||
struct _DispacherController *dispacherController; |
|||
|
|||
}; |
|||
|
|||
void UARTHandlerTx(struct UARTHandler *uartHandler); |
|||
void UARTHandlerRX(struct UARTHandler *uartHandler); |
|||
//void IntializeUARTHandler(struct UARTHandler *uartHandler, UART_HandleTypeDef uart,int32_t WaitTime,unsigned char timeSpan);
|
|||
void Counting(struct UARTHandler *uartHandler); |
|||
|
|||
|
|||
void IntializeUARTHandler(struct UARTHandler *uartHandler, |
|||
UART_HandleTypeDef *uart, int32_t WaitTime, unsigned char timeSpan,int32_t Dispacher_Time); |
|||
void GF_BSP_UART_Timer(); |
|||
|
|||
#endif /* INC_BSP_UART_H_ */ |
|||
@ -0,0 +1,17 @@ |
|||
/*
|
|||
* bsp_UDP.h |
|||
* |
|||
* Created on: Aug 13, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_UDP_H_ |
|||
#define INC_BSP_BSP_UDP_H_ |
|||
|
|||
|
|||
void udp_printf_CmdBack(char *pData); |
|||
void udp_client_init(void); |
|||
void GF_UDP_Send(uint8_t *pData,uint16_t Size,uint16_t UDP_port); |
|||
void GF_UDP_long_Send_Server(void); |
|||
void GF_UpdataPos_Send(uint8_t *pData,uint32_t Size); |
|||
#endif /* INC_BSP_BSP_UDP_H_ */ |
|||
@ -0,0 +1,27 @@ |
|||
/*
|
|||
* bsp_desulfurizer_handler.h |
|||
* |
|||
* Created on: Jul 29, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_ |
|||
#define INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_ |
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include "bsp_MB_host.h" |
|||
#include "stdio.h" |
|||
#include "bsp_UART.h" |
|||
#include "usart.h" |
|||
#include "gpio.h" |
|||
|
|||
|
|||
extern struct UARTHandler *desulfurizer_message_UART_Handler; |
|||
void upper_Computer_UART_Handler_intialize(struct UARTHandler *Handler); |
|||
|
|||
void decode_command_from_computer(uint8_t *buffer, uint16_t length); |
|||
|
|||
|
|||
void send_data_to_upper_computer(double Angle, double WireLength, |
|||
double Thickness, char IsFittingPoint,char isMqtt,struct UARTHandler *send_UART_Handler); |
|||
#endif /* INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_ */ |
|||
@ -0,0 +1,13 @@ |
|||
/*
|
|||
* bsp_pv_setting.h |
|||
* |
|||
* Created on: Jan 8, 2025 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_CLIENT_SETTING_H_ |
|||
#define INC_BSP_BSP_CLIENT_SETTING_H_ |
|||
#include "BHBF_ROBOT.h" |
|||
|
|||
void client_setting_intialize(struct UARTHandler *Handler); |
|||
#endif /* INC_BSP_BSP_CLIENT_SETTING_H_ */ |
|||
@ -0,0 +1,81 @@ |
|||
/*
|
|||
* bsp_com_helper.h |
|||
* |
|||
* Created on: Oct 9, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_COM_HELPER_H_ |
|||
#define INC_BSP_BSP_COM_HELPER_H_ |
|||
#include "bsp_include.h" |
|||
|
|||
|
|||
typedef struct _Dispatcher |
|||
{ |
|||
//uint8_t IsDeleted;
|
|||
void (*dispache)(void); |
|||
|
|||
//struct _Dispatcher* pBefore;
|
|||
struct _Dispatcher* pNext; |
|||
}Dispatcher; |
|||
|
|||
|
|||
//通讯链表节点结构体
|
|||
typedef struct _ComHardWare |
|||
{ |
|||
//void (*dispache)(void);
|
|||
char Name[50]; |
|||
char IsOnline; |
|||
uint32_t BitFlag; |
|||
struct _ComHardWare* pNext; |
|||
}ComHardWare; |
|||
|
|||
|
|||
typedef struct _DispacherController |
|||
{ |
|||
Dispatcher *pHead; // = NULL; //环形链表中的数据头指针
|
|||
Dispatcher *pTail; // = NULL; //环形链表中的数据尾指针
|
|||
uint16_t DispacherNumber; |
|||
uint16_t DispacherCallTime; |
|||
uint16_t Dispacher_Counter; |
|||
uint16_t Dispacher_Enable; // = 0 disable 1 enable
|
|||
|
|||
void (*Add_Dispatcher_List)(struct _DispacherController* , |
|||
void (*dispacher)(void)); //链表添加调度程序
|
|||
|
|||
void (*Dispatcher_Run)(struct _DispacherController* ); //运行调度程序
|
|||
|
|||
}DispacherController; |
|||
|
|||
typedef struct _HardWareController |
|||
{ |
|||
struct _ComHardWare *pComHWHead; |
|||
struct _ComHardWare *pComHWTail; |
|||
uint16_t HardWare_Check_Counter; |
|||
uint16_t DispacherCallTime; //= 100; //2ms 一次,
|
|||
void (*Add_PCOMHardWare)(struct _HardWareController *, char* , char ,uint32_t); |
|||
void (*PCOMHardWare_Check)(struct _HardWareController *); |
|||
int (*Set_PCOMHardWare)(struct _HardWareController *, char* , char ); |
|||
|
|||
|
|||
} HardWareController; |
|||
|
|||
|
|||
|
|||
|
|||
void Dispatch_t(DispacherController *uartHandler); |
|||
|
|||
void Dispatcher_List_Add_t(DispacherController *uartHandler,void (*dispache)(void)); |
|||
// void Dispatcher_List_Add_t(DispacherController *uartHandler,
|
|||
// void (*dispache)(void),void (*Decode)(uint8_t*, uint16_t));
|
|||
// void ComHardWare_List_Add_t(HardWareController *uartHandler, char *name,char value);
|
|||
|
|||
void PCOMHardWare_Check_t(HardWareController *uartHandler); |
|||
|
|||
int Set_PCOMHardWare_t(HardWareController *uartHandler, char *name, char value); |
|||
|
|||
void ComHardWare_List_Add_t(HardWareController *uartHandler, char *name, |
|||
char value,uint32_t bitFlag); |
|||
|
|||
|
|||
#endif /* INC_BSP_BSP_COM_HELPER_H_ */ |
|||
@ -0,0 +1,66 @@ |
|||
/*
|
|||
* bsp_cpu_flash.h |
|||
* |
|||
* Created on: Aug 28, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef SRC_BSP_BSP_CPU_FLASH_H_ |
|||
#define SRC_BSP_BSP_CPU_FLASH_H_ |
|||
|
|||
#include "main.h" |
|||
|
|||
#include <bsp_qspi_w25q128.h> |
|||
#include "quadspi.h" |
|||
|
|||
#define ENABLE_INT() __set_PRIMASK(0) /* 使能全局中断 */ |
|||
#define DISABLE_INT() __set_PRIMASK(1) /* 禁止全局中断 */ |
|||
|
|||
|
|||
#define CPU_FLASH_BASE_ADDR (uint32_t)(FLASH_BASE) /* 0x08000000 */ |
|||
#define CPU_FLASH_END_ADDR (uint32_t)(0x081FFFFF) |
|||
|
|||
#define CPU_FLASH_SIZE (2 * 1024 * 1024) /* FLASH总容量 */ |
|||
#define CPU_FLASH_SECTOR_SIZE (128 * 1024) /* 扇区大小,字节 */ |
|||
|
|||
/* Base address of the Flash sectors Bank 1 */ |
|||
#define ADDR_FLASH_SECTOR_0_BANK1 ((uint32_t)0x08000000) /* Base @ of Sector 0, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_1_BANK1 ((uint32_t)0x08020000) /* Base @ of Sector 1, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_2_BANK1 ((uint32_t)0x08040000) /* Base @ of Sector 2, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_3_BANK1 ((uint32_t)0x08060000) /* Base @ of Sector 3, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_4_BANK1 ((uint32_t)0x08080000) /* Base @ of Sector 4, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_5_BANK1 ((uint32_t)0x080A0000) /* Base @ of Sector 5, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_6_BANK1 ((uint32_t)0x080C0000) /* Base @ of Sector 6, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_7_BANK1 ((uint32_t)0x080E0000) /* Base @ of Sector 7, 128 Kbytes */ |
|||
|
|||
/* Base address of the Flash sectors Bank 2 */ |
|||
#define ADDR_FLASH_SECTOR_0_BANK2 ((uint32_t)0x08100000) /* Base @ of Sector 0, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_1_BANK2 ((uint32_t)0x08120000) /* Base @ of Sector 1, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_2_BANK2 ((uint32_t)0x08140000) /* Base @ of Sector 2, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_3_BANK2 ((uint32_t)0x08160000) /* Base @ of Sector 3, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_4_BANK2 ((uint32_t)0x08180000) /* Base @ of Sector 4, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_5_BANK2 ((uint32_t)0x081A0000) /* Base @ of Sector 5, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_6_BANK2 ((uint32_t)0x081C0000) /* Base @ of Sector 6, 128 Kbytes */ |
|||
#define ADDR_FLASH_SECTOR_7_BANK2 ((uint32_t)0x081E0000) /* Base @ of Sector 7, 128 Kbytes */ |
|||
|
|||
#define FLASH_IS_EQU 0 /* Flash内容和待写入的数据相等,不需要擦除和写操作 */ |
|||
#define FLASH_REQ_WRITE 1 /* Flash不需要擦除,直接写 */ |
|||
#define FLASH_REQ_ERASE 2 /* Flash需要先擦除,再写 */ |
|||
#define FLASH_PARAM_ERR 3 /* 函数参数错误 */ |
|||
|
|||
|
|||
#define App_Start_Addr 0x08000000 |
|||
#define App_Run_Addr 0x08020000 |
|||
#define App_Download_Addr 0x08080000 // ADDR_FLASH_SECTOR_4_BANK1
|
|||
|
|||
|
|||
|
|||
uint8_t bsp_ReadCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpDst, uint32_t _ulSize); |
|||
uint8_t bsp_WriteCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpSrc, uint32_t _ulSize); |
|||
uint8_t bsp_CmpCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpBuf, uint32_t _ulSize); |
|||
void JumpToApp(void); |
|||
void Copy_Peripheral_Download_Flash_to_App_Start(uint32_t totalBytes); |
|||
uint8_t bsp_EraseCpuFlash(uint32_t _ulFlashAddr); |
|||
void Erase_App_Download_Flash_Addr(); |
|||
void Copy_Download_Flash_to_Start(); |
|||
#endif /* SRC_BSP_BSP_CPU_FLASH_H_ */ |
|||
@ -0,0 +1,40 @@ |
|||
/*
|
|||
* bsp_decode_command.h |
|||
* |
|||
* Created on: Sep 24, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_DECODE_COMMAND_H_ |
|||
#define INC_BSP_BSP_DECODE_COMMAND_H_ |
|||
#include "main.h" |
|||
#include "msp_WH_LTE_7S0.h" |
|||
#include "msp_Angle_Encoder_YL159.h" |
|||
#include "pb_decode.h" |
|||
#include "pb_encode.h" |
|||
#include "bsp_include.h" |
|||
#include "pb.h" |
|||
#include "bsp_Desulfurizer.pb.h" |
|||
#include "bsp_Cmd.pb.h" |
|||
#include <stdio.h> |
|||
#include <stdbool.h> |
|||
#include <stdlib.h> |
|||
#include "bsp_Log.h" |
|||
#include "msp_Steering_Engine.h" |
|||
#include "BHBF_ROBOT.h" |
|||
#include "bsp_cpu_flash.h" |
|||
#include <bsp_qspi_w25q128.h> |
|||
#include <bsp_UpperComputer_Handler.h> |
|||
#include "bsp_ReCmd.pb.h" |
|||
#include "bsp_IV.pb.h" |
|||
|
|||
void send_received_data_to_upper_computer(uint8_t *buffer, uint16_t length); |
|||
void decode_command_and_feedback(uint8_t *buffer, uint16_t length, char isMqtt, |
|||
struct UARTHandler *send_Handler); |
|||
|
|||
void WrapInCmdAndSend(ReCmd send_Cmd, uint8_t *buf, char isMqtt,struct UARTHandler *send_Handler); |
|||
|
|||
|
|||
void WrapInCmdAndSendMessage(ReCmd send_Cmd,int8_t functionNum,char isSuccess, uint8_t *buf, char isMqtt, |
|||
struct UARTHandler *send_Handler); |
|||
#endif /* INC_BSP_BSP_DECODE_COMMAND_H_ */ |
|||
@ -0,0 +1,57 @@ |
|||
/*
|
|||
* bsp_include.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_INCLUDE_H_ |
|||
#define INC_BSP_INCLUDE_H_ |
|||
|
|||
#include "main.h" |
|||
#include "dma.h" |
|||
#include "fdcan.h" |
|||
#include "i2c.h" |
|||
#include "tim.h" |
|||
#include "usart.h" |
|||
#include "gpio.h" |
|||
|
|||
#include "bsp_EEPROM.h" |
|||
#include "bsp_GPIO.h" |
|||
#include "bsp_FDCAN.h" |
|||
#include "bsp_IMU.h" |
|||
#include "bsp_TIMER.h" |
|||
#include "bsp_PV.pb.h" |
|||
|
|||
#include "bsp_GV.pb.h" |
|||
#include "bsp_CV.pb.h" |
|||
#include "pb.h" |
|||
#include "pb_decode.h" |
|||
#include "pb_common.h" |
|||
#include "msp_MPU6050.pb.h" |
|||
//一个中断回调函数支持多少个回调函数链接
|
|||
#define DF_BSP_InterCall_Num 20 |
|||
|
|||
//一共支持多少种中断函数
|
|||
#define DF_BSP_InterCall_Type_Num 11 |
|||
|
|||
enum DF_BSP_InterCall_Type |
|||
{ |
|||
DF_BSP_InterCall_FDCAN1_RxFifo0Callback = 0, |
|||
DF_BSP_InterCall_FDCAN2_RxFifo0Callback, |
|||
DF_BSP_InterCall_RS485_1_RxCpltCallback, |
|||
DF_BSP_InterCall_RS485_2_RxCpltCallback, |
|||
DF_BSP_InterCall_RS485_3_RxCpltCallback, |
|||
DF_BSP_InterCall_RS485_4_RxCpltCallback, |
|||
DF_BSP_InterCall_DEBUG_RxCpltCallback, |
|||
DF_BSP_InterCall_E22_Serial_RxCpltCallback, |
|||
DF_BSP_InterCall_E28_SBUS_RxFifo0Callback, |
|||
DF_BSP_InterCall_TIM1_100ms_PeriodElapsedCallback, |
|||
DF_BSP_InterCall_TIM8_2ms_PeriodElapsedCallback |
|||
}; |
|||
|
|||
uint8_t GF_BSP_Interrupt_Add_CallBack(enum DF_BSP_InterCall_Type _type, |
|||
void (*_fn)(void)); |
|||
void GF_BSP_Interrupt_Run_CallBack(enum DF_BSP_InterCall_Type _type); |
|||
|
|||
#endif /* INC_BSP_INCLUDE_H_ */ |
|||
@ -0,0 +1,36 @@ |
|||
|
|||
#ifndef __BSP_MQTT_H |
|||
#define __BSP_MQTT_H |
|||
|
|||
/*-----------------------------------------------------------
|
|||
* Includes files |
|||
*----------------------------------------------------------*/ |
|||
|
|||
/*-----------------------------------------------------------
|
|||
* Exported constants |
|||
*----------------------------------------------------------*/ |
|||
|
|||
|
|||
/*-----------------------------------------------------------
|
|||
* Exported macro |
|||
*----------------------------------------------------------*/ |
|||
|
|||
/*-----------------------------------------------------------
|
|||
* Exported function |
|||
*----------------------------------------------------------*/ |
|||
/*!
|
|||
* @brief 封装 MQTT 初始化接口 |
|||
* 执行条件:无 |
|||
* |
|||
* @retval: 无 |
|||
*/ |
|||
void bsp_mqtt_init(void); |
|||
void bsp_mqtt_test(void); |
|||
|
|||
|
|||
extern void bsp_mqtt_pub_send(char topic[],char buf[],size_t len); |
|||
|
|||
|
|||
#include "bsp_pb_decode_encode.h" |
|||
|
|||
#endif /* __BSP_WOLFSSL_H */ |
|||
@ -0,0 +1,26 @@ |
|||
/*
|
|||
* bsp_mqtt_pub.h |
|||
* |
|||
* Created on: Jul 9, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_MQTT_PUB_H_ |
|||
#define INC_BSP_BSP_MQTT_PUB_H_ |
|||
|
|||
#include "bsp_pb_decode_encode.h" |
|||
#include "pb_decode.h" |
|||
#include "pb_encode.h" |
|||
#include "bsp_CV.pb.h" |
|||
#include "bsp_pb_decode_encode.h" |
|||
#include "bsp_EEPROM.h" |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
extern void log_info(char logger[], char message[]); |
|||
extern void log_debug(char logger[], char message[]); |
|||
extern void log_err(char logger[], char message[]); |
|||
|
|||
#endif /* INC_BSP_BSP_MQTT_PUB_H_ */ |
|||
@ -0,0 +1,51 @@ |
|||
/*
|
|||
* bsp_pb_decode_encode.h |
|||
* |
|||
* Created on: Jul 5, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_PB_DECODE_ENCODE_H_ |
|||
#define INC_BSP_BSP_PB_DECODE_ENCODE_H_ |
|||
|
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include <stdlib.h> |
|||
#include <stdbool.h> |
|||
|
|||
#include "pb_decode.h" |
|||
#include "pb_encode.h" |
|||
#include "pb.h" |
|||
#include "bsp_CV.pb.h" |
|||
#include "bsp_GV.pb.h" |
|||
#include "msp_MK32.pb.h" |
|||
#include "msp_Motor.pb.h" |
|||
#include "bsp_PV.pb.h" |
|||
#include "bsp_CV.pb.h" |
|||
#include "bsp_CV.pb.h" |
|||
#include "pb_common.h" |
|||
#include "bsp_Trace.pb.h" |
|||
#include "bsp_IAP.pb.h" |
|||
IAP_struct_define pb_decode_IAP(uint8_t *buf, size_t length); |
|||
|
|||
typedef struct pb_buffer_arg |
|||
{ |
|||
/* Buffer to be written, or reference to read buffer */ |
|||
void const *buf; |
|||
/* Length of buf */ |
|||
size_t buf_len; |
|||
} pb_buffer_arg; |
|||
|
|||
|
|||
bool pb_encode_string_cb(pb_ostream_t *stream, const pb_field_t *field, void *const *arg); |
|||
bool pb_decode_string_cb(pb_istream_t *stream, const pb_field_t *field, void **arg); |
|||
|
|||
|
|||
extern CV_struct_define pb_decode_CV(char *buf, size_t length); |
|||
extern void Test_CV(); |
|||
|
|||
//extern void pb_encode_TraceMessage(char buf[], size_t buf_len,size_t* len,TraceLevel traceLevel, char logger[], char message[] );
|
|||
void pb_encode_TraceMessage(char buf[],size_t buf_len, size_t* len, |
|||
char traceLevel[], char logger[], char message[] ); |
|||
|
|||
#endif /* INC_BSP_BSP_PB_DECODE_ENCODE_H_ */ |
|||
@ -0,0 +1,107 @@ |
|||
/*
|
|||
* bsp_quadspi_W25Q128.h |
|||
* |
|||
* Created on: Apr 21, 2021 |
|||
* Author: Administrator |
|||
* |
|||
* 该bsp用于华邦的w25q128JV,跟华邦的w25q128JV不一样 |
|||
* 坑爹的 |
|||
*/ |
|||
|
|||
#ifndef BSP_QSPI_W25Q128_H_ |
|||
#define BSP_QSPI_W25Q128_H_ |
|||
|
|||
|
|||
#include "quadspi.h" |
|||
#include "stdio.h" |
|||
|
|||
/* 宏定义 --------------------------------------------------------------------*/ |
|||
#define FLASH_BEGIN_ADDRESS 0x00000 |
|||
|
|||
#define CODE_DOWNLOAD_FLASH_BEGIN_ADDRESS 0x00000 |
|||
#define CODE_FLASH_STORAGE_SIZE 1024*1024 // 留下1M的空间存储数据
|
|||
|
|||
#define W25Q128FV_FLASH_SIZE 0x1000000 /* 128 MBits => 16MBytes */ |
|||
#define W25Q128FV_BLOCK_SIZE 0x10000 /* 256 Blocks of 64KBytes */ |
|||
#define W25Q128FV_HALF_BLOCK_SIZE 0x8000 /* 128 Blocks of 32KBytes */ |
|||
#define W25Q128FV_SECTOR_SIZE 0x1000 /* 4096 sectors of 4kBytes */ |
|||
#define W25Q128FV_PAGE_SIZE 0x100 /* 65536 pages of 256 bytes */ |
|||
|
|||
#define W25Q128FV_DUMMY_CYCLES_READ 4 |
|||
#define W25Q128FV_DUMMY_CYCLES_READ_QUAD 10 |
|||
|
|||
#define W25Q128FV_BULK_ERASE_MAX_TIME 250000//ms
|
|||
#define W25Q128FV_SECTOR_ERASE_MAX_TIME 3000 |
|||
#define W25Q128FV_SUBSECTOR_ERASE_MAX_TIME 800 |
|||
|
|||
#define W25Q128FV_FLASH_ID 0XEF4018 |
|||
/* W25Q128FV 指令 */ |
|||
/* 复位操作 */ |
|||
#define RESET_ENABLE_CMD 0x66 |
|||
#define RESET_MEMORY_CMD 0x99 |
|||
|
|||
#define ENTER_QPI_MODE_CMD 0x38 |
|||
#define EXIT_QPI_MODE_CMD 0xFF |
|||
|
|||
/* 读取ID指令 */ |
|||
#define READ_ID_CMD 0x90 |
|||
#define DUAL_READ_ID_CMD 0x92 |
|||
#define QUAD_READ_ID_CMD 0x94 |
|||
#define READ_JEDEC_ID_CMD 0x9F |
|||
|
|||
/* 读操作指令 */ |
|||
#define READ_CMD 0x03 |
|||
#define FAST_READ_CMD 0x0B |
|||
#define DUAL_OUT_FAST_READ_CMD 0x3B |
|||
#define DUAL_INOUT_FAST_READ_CMD 0xBB |
|||
#define QUAD_OUT_FAST_READ_CMD 0x6B |
|||
#define QUAD_INOUT_FAST_READ_CMD 0xEB |
|||
|
|||
/* 写使能操作指令 */ |
|||
#define WRITE_ENABLE_CMD 0x06 |
|||
#define WRITE_DISABLE_CMD 0x04 |
|||
|
|||
/* 读写状态寄存器操作指令 */ |
|||
#define READ_STATUS_REG1_CMD 0x05 |
|||
#define READ_STATUS_REG2_CMD 0x35 |
|||
#define READ_STATUS_REG3_CMD 0x15 |
|||
|
|||
#define WRITE_STATUS_REG1_CMD 0x01 |
|||
#define WRITE_STATUS_REG2_CMD 0x31 |
|||
#define WRITE_STATUS_REG3_CMD 0x11 |
|||
|
|||
/* 编程指令 */ |
|||
#define PAGE_PROG_CMD 0x02 |
|||
#define QUAD_INPUT_PAGE_PROG_CMD 0x32 |
|||
|
|||
/* 擦除Flash指令 */ |
|||
#define SECTOR_ERASE_CMD 0x20 |
|||
#define BLOCK_32KB_ERASE_CMD 0x52 |
|||
#define BLOCK_64KB_ERASE_CMD 0xD8 |
|||
#define CHIP_ERASE_CMD 0xC7 |
|||
|
|||
#define PROG_ERASE_RESUME_CMD 0x7A |
|||
#define PROG_ERASE_SUSPEND_CMD 0x75 |
|||
|
|||
/* 状态寄存器标志位 */ |
|||
#define W25Q128FV_FSR_BUSY ((uint8_t)0x01) /* busy */ |
|||
#define W25Q128FV_FSR_WREN ((uint8_t)0x02) /* write enable */ |
|||
#define W25Q128FV_FSR_QE ((uint8_t)0x02) /* quad enable */ |
|||
|
|||
/* Flash 状态码*/ |
|||
#define FLASH_OK ((uint8_t)0x00) |
|||
#define FLASH_ERROR ((uint8_t)0x01) |
|||
#define FLASH_BUSY ((uint8_t)0x02) |
|||
#define FLASH_NOT_SUPPORTED ((uint8_t)0x04) |
|||
#define FLASH_SUSPENDED ((uint8_t)0x08) |
|||
|
|||
|
|||
|
|||
uint32_t QSPI_W25Qx_ReadID(void); |
|||
void QSPI_W25Qx_Reset_Memory(); |
|||
void QSPI_W25Qx_EraseSector(uint32_t _SectorAddr); |
|||
uint8_t QSPI_W25Qx_Write_Buffer(uint8_t *_pBuf,uint32_t _write_Addr,uint16_t _write_Size); |
|||
void QSPI_W25Qx_Read_Buffer(uint8_t *_pBuf,uint32_t _read_Addr,uint32_t _read_Size); |
|||
void QSPI_W25Qx_EraseDownLoadFlash(); |
|||
void user_Assert(char *file,uint32_t line); |
|||
#endif /* BSP_QSPI_W25Q128_H_ */ |
|||
@ -0,0 +1,19 @@ |
|||
/*
|
|||
* bsp_adc.h |
|||
* |
|||
* Created on: Feb 21, 2025 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_BSP_TEMPATURE_H_ |
|||
#define INC_BSP_BSP_TEMPATURE_H_ |
|||
|
|||
|
|||
#include "main.h" |
|||
#include "DLT/DLTuc.h" |
|||
|
|||
int32_t read_temperature(); |
|||
void ADC_Intialize(); |
|||
|
|||
extern int32_t * tempature; |
|||
#endif /* INC_BSP_BSP_TEMPATURE_H_ */ |
|||
@ -0,0 +1,917 @@ |
|||
/* Common parts of the nanopb library. Most of these are quite low-level
|
|||
* stuff. For the high-level interface, see pb_encode.h and pb_decode.h. |
|||
*/ |
|||
|
|||
#ifndef PB_H_INCLUDED |
|||
#define PB_H_INCLUDED |
|||
|
|||
/*****************************************************************
|
|||
* Nanopb compilation time options. You can change these here by * |
|||
* uncommenting the lines, or on the compiler command line. * |
|||
*****************************************************************/ |
|||
|
|||
/* Enable support for dynamically allocated fields */ |
|||
/* #define PB_ENABLE_MALLOC 1 */ |
|||
|
|||
/* Define this if your CPU / compiler combination does not support
|
|||
* unaligned memory access to packed structures. Note that packed |
|||
* structures are only used when requested in .proto options. */ |
|||
/* #define PB_NO_PACKED_STRUCTS 1 */ |
|||
|
|||
/* Increase the number of required fields that are tracked.
|
|||
* A compiler warning will tell if you need this. */ |
|||
/* #define PB_MAX_REQUIRED_FIELDS 256 */ |
|||
|
|||
/* Add support for tag numbers > 65536 and fields larger than 65536 bytes. */ |
|||
/* #define PB_FIELD_32BIT 1 */ |
|||
|
|||
/* Disable support for error messages in order to save some code space. */ |
|||
/* #define PB_NO_ERRMSG 1 */ |
|||
|
|||
/* Disable support for custom streams (support only memory buffers). */ |
|||
/* #define PB_BUFFER_ONLY 1 */ |
|||
|
|||
/* Disable support for 64-bit datatypes, for compilers without int64_t
|
|||
or to save some code space. */ |
|||
/* #define PB_WITHOUT_64BIT 1 */ |
|||
|
|||
/* Don't encode scalar arrays as packed. This is only to be used when
|
|||
* the decoder on the receiving side cannot process packed scalar arrays. |
|||
* Such example is older protobuf.js. */ |
|||
/* #define PB_ENCODE_ARRAYS_UNPACKED 1 */ |
|||
|
|||
/* Enable conversion of doubles to floats for platforms that do not
|
|||
* support 64-bit doubles. Most commonly AVR. */ |
|||
/* #define PB_CONVERT_DOUBLE_FLOAT 1 */ |
|||
|
|||
/* Check whether incoming strings are valid UTF-8 sequences. Slows down
|
|||
* the string processing slightly and slightly increases code size. */ |
|||
/* #define PB_VALIDATE_UTF8 1 */ |
|||
|
|||
/* This can be defined if the platform is little-endian and has 8-bit bytes.
|
|||
* Normally it is automatically detected based on __BYTE_ORDER__ macro. */ |
|||
/* #define PB_LITTLE_ENDIAN_8BIT 1 */ |
|||
|
|||
/* Configure static assert mechanism. Instead of changing these, set your
|
|||
* compiler to C11 standard mode if possible. */ |
|||
/* #define PB_C99_STATIC_ASSERT 1 */ |
|||
/* #define PB_NO_STATIC_ASSERT 1 */ |
|||
|
|||
/******************************************************************
|
|||
* You usually don't need to change anything below this line. * |
|||
* Feel free to look around and use the defined macros, though. * |
|||
******************************************************************/ |
|||
|
|||
|
|||
/* Version of the nanopb library. Just in case you want to check it in
|
|||
* your own program. */ |
|||
#define NANOPB_VERSION "nanopb-0.4.8-dev" |
|||
|
|||
/* Include all the system headers needed by nanopb. You will need the
|
|||
* definitions of the following: |
|||
* - strlen, memcpy, memset functions |
|||
* - [u]int_least8_t, uint_fast8_t, [u]int_least16_t, [u]int32_t, [u]int64_t |
|||
* - size_t |
|||
* - bool |
|||
* |
|||
* If you don't have the standard header files, you can instead provide |
|||
* a custom header that defines or includes all this. In that case, |
|||
* define PB_SYSTEM_HEADER to the path of this file. |
|||
*/ |
|||
#ifdef PB_SYSTEM_HEADER |
|||
#include PB_SYSTEM_HEADER |
|||
#else |
|||
#include <stdint.h> |
|||
#include <stddef.h> |
|||
#include <stdbool.h> |
|||
#include <string.h> |
|||
#include <limits.h> |
|||
|
|||
#ifdef PB_ENABLE_MALLOC |
|||
#include <stdlib.h> |
|||
#endif |
|||
#endif |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Macro for defining packed structures (compiler dependent).
|
|||
* This just reduces memory requirements, but is not required. |
|||
*/ |
|||
#if defined(PB_NO_PACKED_STRUCTS) |
|||
/* Disable struct packing */ |
|||
# define PB_PACKED_STRUCT_START |
|||
# define PB_PACKED_STRUCT_END |
|||
# define pb_packed |
|||
#elif defined(__GNUC__) || defined(__clang__) |
|||
/* For GCC and clang */ |
|||
# define PB_PACKED_STRUCT_START |
|||
# define PB_PACKED_STRUCT_END |
|||
# define pb_packed __attribute__((packed)) |
|||
#elif defined(__ICCARM__) || defined(__CC_ARM) |
|||
/* For IAR ARM and Keil MDK-ARM compilers */ |
|||
# define PB_PACKED_STRUCT_START _Pragma("pack(push, 1)") |
|||
# define PB_PACKED_STRUCT_END _Pragma("pack(pop)") |
|||
# define pb_packed |
|||
#elif defined(_MSC_VER) && (_MSC_VER >= 1500) |
|||
/* For Microsoft Visual C++ */ |
|||
# define PB_PACKED_STRUCT_START __pragma(pack(push, 1)) |
|||
# define PB_PACKED_STRUCT_END __pragma(pack(pop)) |
|||
# define pb_packed |
|||
#else |
|||
/* Unknown compiler */ |
|||
# define PB_PACKED_STRUCT_START |
|||
# define PB_PACKED_STRUCT_END |
|||
# define pb_packed |
|||
#endif |
|||
|
|||
/* Detect endianness */ |
|||
#ifndef PB_LITTLE_ENDIAN_8BIT |
|||
#if ((defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN) || \ |
|||
(defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || \ |
|||
defined(__LITTLE_ENDIAN__) || defined(__ARMEL__) || \ |
|||
defined(__THUMBEL__) || defined(__AARCH64EL__) || defined(_MIPSEL) || \ |
|||
defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM)) \ |
|||
&& CHAR_BIT == 8 |
|||
#define PB_LITTLE_ENDIAN_8BIT 1 |
|||
#endif |
|||
#endif |
|||
|
|||
/* Handly macro for suppressing unreferenced-parameter compiler warnings. */ |
|||
#ifndef PB_UNUSED |
|||
#define PB_UNUSED(x) (void)(x) |
|||
#endif |
|||
|
|||
/* Harvard-architecture processors may need special attributes for storing
|
|||
* field information in program memory. */ |
|||
#ifndef PB_PROGMEM |
|||
#ifdef __AVR__ |
|||
#include <avr/pgmspace.h> |
|||
#define PB_PROGMEM PROGMEM |
|||
#define PB_PROGMEM_READU32(x) pgm_read_dword(&x) |
|||
#else |
|||
#define PB_PROGMEM |
|||
#define PB_PROGMEM_READU32(x) (x) |
|||
#endif |
|||
#endif |
|||
|
|||
/* Compile-time assertion, used for checking compatible compilation options.
|
|||
* If this does not work properly on your compiler, use |
|||
* #define PB_NO_STATIC_ASSERT to disable it. |
|||
* |
|||
* But before doing that, check carefully the error message / place where it |
|||
* comes from to see if the error has a real cause. Unfortunately the error |
|||
* message is not always very clear to read, but you can see the reason better |
|||
* in the place where the PB_STATIC_ASSERT macro was called. |
|||
*/ |
|||
#ifndef PB_NO_STATIC_ASSERT |
|||
# ifndef PB_STATIC_ASSERT |
|||
# if defined(__ICCARM__) |
|||
/* IAR has static_assert keyword but no _Static_assert */ |
|||
# define PB_STATIC_ASSERT(COND,MSG) static_assert(COND,#MSG); |
|||
# elif defined(_MSC_VER) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112) |
|||
/* MSVC in C89 mode supports static_assert() keyword anyway */ |
|||
# define PB_STATIC_ASSERT(COND,MSG) static_assert(COND,#MSG); |
|||
# elif defined(PB_C99_STATIC_ASSERT) |
|||
/* Classic negative-size-array static assert mechanism */ |
|||
# define PB_STATIC_ASSERT(COND,MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND)?1:-1]; |
|||
# define PB_STATIC_ASSERT_MSG(MSG, LINE, COUNTER) PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) |
|||
# define PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) pb_static_assertion_##MSG##_##LINE##_##COUNTER |
|||
# elif defined(__cplusplus) |
|||
/* C++11 standard static_assert mechanism */ |
|||
# define PB_STATIC_ASSERT(COND,MSG) static_assert(COND,#MSG); |
|||
# else |
|||
/* C11 standard _Static_assert mechanism */ |
|||
# define PB_STATIC_ASSERT(COND,MSG) _Static_assert(COND,#MSG); |
|||
# endif |
|||
# endif |
|||
#else |
|||
/* Static asserts disabled by PB_NO_STATIC_ASSERT */ |
|||
# define PB_STATIC_ASSERT(COND,MSG) |
|||
#endif |
|||
|
|||
/* Test that PB_STATIC_ASSERT works
|
|||
* If you get errors here, you may need to do one of these: |
|||
* - Enable C11 standard support in your compiler |
|||
* - Define PB_C99_STATIC_ASSERT to enable C99 standard support |
|||
* - Define PB_NO_STATIC_ASSERT to disable static asserts altogether |
|||
*/ |
|||
PB_STATIC_ASSERT(1, STATIC_ASSERT_IS_NOT_WORKING) |
|||
|
|||
/* Number of required fields to keep track of. */ |
|||
#ifndef PB_MAX_REQUIRED_FIELDS |
|||
#define PB_MAX_REQUIRED_FIELDS 64 |
|||
#endif |
|||
|
|||
#if PB_MAX_REQUIRED_FIELDS < 64 |
|||
#error You should not lower PB_MAX_REQUIRED_FIELDS from the default value (64). |
|||
#endif |
|||
|
|||
#ifdef PB_WITHOUT_64BIT |
|||
#ifdef PB_CONVERT_DOUBLE_FLOAT |
|||
/* Cannot use doubles without 64-bit types */ |
|||
#undef PB_CONVERT_DOUBLE_FLOAT |
|||
#endif |
|||
#endif |
|||
|
|||
/* List of possible field types. These are used in the autogenerated code.
|
|||
* Least-significant 4 bits tell the scalar type |
|||
* Most-significant 4 bits specify repeated/required/packed etc. |
|||
*/ |
|||
|
|||
typedef uint_least8_t pb_type_t; |
|||
|
|||
/**** Field data types ****/ |
|||
|
|||
/* Numeric types */ |
|||
#define PB_LTYPE_BOOL 0x00U /* bool */ |
|||
#define PB_LTYPE_VARINT 0x01U /* int32, int64, enum, bool */ |
|||
#define PB_LTYPE_UVARINT 0x02U /* uint32, uint64 */ |
|||
#define PB_LTYPE_SVARINT 0x03U /* sint32, sint64 */ |
|||
#define PB_LTYPE_FIXED32 0x04U /* fixed32, sfixed32, float */ |
|||
#define PB_LTYPE_FIXED64 0x05U /* fixed64, sfixed64, double */ |
|||
|
|||
/* Marker for last packable field type. */ |
|||
#define PB_LTYPE_LAST_PACKABLE 0x05U |
|||
|
|||
/* Byte array with pre-allocated buffer.
|
|||
* data_size is the length of the allocated PB_BYTES_ARRAY structure. */ |
|||
#define PB_LTYPE_BYTES 0x06U |
|||
|
|||
/* String with pre-allocated buffer.
|
|||
* data_size is the maximum length. */ |
|||
#define PB_LTYPE_STRING 0x07U |
|||
|
|||
/* Submessage
|
|||
* submsg_fields is pointer to field descriptions */ |
|||
#define PB_LTYPE_SUBMESSAGE 0x08U |
|||
|
|||
/* Submessage with pre-decoding callback
|
|||
* The pre-decoding callback is stored as pb_callback_t right before pSize. |
|||
* submsg_fields is pointer to field descriptions */ |
|||
#define PB_LTYPE_SUBMSG_W_CB 0x09U |
|||
|
|||
/* Extension pseudo-field
|
|||
* The field contains a pointer to pb_extension_t */ |
|||
#define PB_LTYPE_EXTENSION 0x0AU |
|||
|
|||
/* Byte array with inline, pre-allocated byffer.
|
|||
* data_size is the length of the inline, allocated buffer. |
|||
* This differs from PB_LTYPE_BYTES by defining the element as |
|||
* pb_byte_t[data_size] rather than pb_bytes_array_t. */ |
|||
#define PB_LTYPE_FIXED_LENGTH_BYTES 0x0BU |
|||
|
|||
/* Number of declared LTYPES */ |
|||
#define PB_LTYPES_COUNT 0x0CU |
|||
#define PB_LTYPE_MASK 0x0FU |
|||
|
|||
/**** Field repetition rules ****/ |
|||
|
|||
#define PB_HTYPE_REQUIRED 0x00U |
|||
#define PB_HTYPE_OPTIONAL 0x10U |
|||
#define PB_HTYPE_SINGULAR 0x10U |
|||
#define PB_HTYPE_REPEATED 0x20U |
|||
#define PB_HTYPE_FIXARRAY 0x20U |
|||
#define PB_HTYPE_ONEOF 0x30U |
|||
#define PB_HTYPE_MASK 0x30U |
|||
|
|||
/**** Field allocation types ****/ |
|||
|
|||
#define PB_ATYPE_STATIC 0x00U |
|||
#define PB_ATYPE_POINTER 0x80U |
|||
#define PB_ATYPE_CALLBACK 0x40U |
|||
#define PB_ATYPE_MASK 0xC0U |
|||
|
|||
#define PB_ATYPE(x) ((x) & PB_ATYPE_MASK) |
|||
#define PB_HTYPE(x) ((x) & PB_HTYPE_MASK) |
|||
#define PB_LTYPE(x) ((x) & PB_LTYPE_MASK) |
|||
#define PB_LTYPE_IS_SUBMSG(x) (PB_LTYPE(x) == PB_LTYPE_SUBMESSAGE || \ |
|||
PB_LTYPE(x) == PB_LTYPE_SUBMSG_W_CB) |
|||
|
|||
/* Data type used for storing sizes of struct fields
|
|||
* and array counts. |
|||
*/ |
|||
#if defined(PB_FIELD_32BIT) |
|||
typedef uint32_t pb_size_t; |
|||
typedef int32_t pb_ssize_t; |
|||
#else |
|||
typedef uint_least16_t pb_size_t; |
|||
typedef int_least16_t pb_ssize_t; |
|||
#endif |
|||
#define PB_SIZE_MAX ((pb_size_t)-1) |
|||
|
|||
/* Data type for storing encoded data and other byte streams.
|
|||
* This typedef exists to support platforms where uint8_t does not exist. |
|||
* You can regard it as equivalent on uint8_t on other platforms. |
|||
*/ |
|||
typedef uint_least8_t pb_byte_t; |
|||
|
|||
/* Forward declaration of struct types */ |
|||
typedef struct pb_istream_s pb_istream_t; |
|||
typedef struct pb_ostream_s pb_ostream_t; |
|||
typedef struct pb_field_iter_s pb_field_iter_t; |
|||
|
|||
/* This structure is used in auto-generated constants
|
|||
* to specify struct fields. |
|||
*/ |
|||
typedef struct pb_msgdesc_s pb_msgdesc_t; |
|||
struct pb_msgdesc_s { |
|||
const uint32_t *field_info; |
|||
const pb_msgdesc_t * const * submsg_info; |
|||
const pb_byte_t *default_value; |
|||
|
|||
bool (*field_callback)(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field); |
|||
|
|||
pb_size_t field_count; |
|||
pb_size_t required_field_count; |
|||
pb_size_t largest_tag; |
|||
}; |
|||
|
|||
/* Iterator for message descriptor */ |
|||
struct pb_field_iter_s { |
|||
const pb_msgdesc_t *descriptor; /* Pointer to message descriptor constant */ |
|||
void *message; /* Pointer to start of the structure */ |
|||
|
|||
pb_size_t index; /* Index of the field */ |
|||
pb_size_t field_info_index; /* Index to descriptor->field_info array */ |
|||
pb_size_t required_field_index; /* Index that counts only the required fields */ |
|||
pb_size_t submessage_index; /* Index that counts only submessages */ |
|||
|
|||
pb_size_t tag; /* Tag of current field */ |
|||
pb_size_t data_size; /* sizeof() of a single item */ |
|||
pb_size_t array_size; /* Number of array entries */ |
|||
pb_type_t type; /* Type of current field */ |
|||
|
|||
void *pField; /* Pointer to current field in struct */ |
|||
void *pData; /* Pointer to current data contents. Different than pField for arrays and pointers. */ |
|||
void *pSize; /* Pointer to count/has field */ |
|||
|
|||
const pb_msgdesc_t *submsg_desc; /* For submessage fields, pointer to field descriptor for the submessage. */ |
|||
}; |
|||
|
|||
/* For compatibility with legacy code */ |
|||
typedef pb_field_iter_t pb_field_t; |
|||
|
|||
/* Make sure that the standard integer types are of the expected sizes.
|
|||
* Otherwise fixed32/fixed64 fields can break. |
|||
* |
|||
* If you get errors here, it probably means that your stdint.h is not |
|||
* correct for your platform. |
|||
*/ |
|||
#ifndef PB_WITHOUT_64BIT |
|||
PB_STATIC_ASSERT(sizeof(int64_t) == 2 * sizeof(int32_t), INT64_T_WRONG_SIZE) |
|||
PB_STATIC_ASSERT(sizeof(uint64_t) == 2 * sizeof(uint32_t), UINT64_T_WRONG_SIZE) |
|||
#endif |
|||
|
|||
/* This structure is used for 'bytes' arrays.
|
|||
* It has the number of bytes in the beginning, and after that an array. |
|||
* Note that actual structs used will have a different length of bytes array. |
|||
*/ |
|||
#define PB_BYTES_ARRAY_T(n) struct { pb_size_t size; pb_byte_t bytes[n]; } |
|||
#define PB_BYTES_ARRAY_T_ALLOCSIZE(n) ((size_t)n + offsetof(pb_bytes_array_t, bytes)) |
|||
|
|||
struct pb_bytes_array_s { |
|||
pb_size_t size; |
|||
pb_byte_t bytes[1]; |
|||
}; |
|||
typedef struct pb_bytes_array_s pb_bytes_array_t; |
|||
|
|||
/* This structure is used for giving the callback function.
|
|||
* It is stored in the message structure and filled in by the method that |
|||
* calls pb_decode. |
|||
* |
|||
* The decoding callback will be given a limited-length stream |
|||
* If the wire type was string, the length is the length of the string. |
|||
* If the wire type was a varint/fixed32/fixed64, the length is the length |
|||
* of the actual value. |
|||
* The function may be called multiple times (especially for repeated types, |
|||
* but also otherwise if the message happens to contain the field multiple |
|||
* times.) |
|||
* |
|||
* The encoding callback will receive the actual output stream. |
|||
* It should write all the data in one call, including the field tag and |
|||
* wire type. It can write multiple fields. |
|||
* |
|||
* The callback can be null if you want to skip a field. |
|||
*/ |
|||
typedef struct pb_callback_s pb_callback_t; |
|||
struct pb_callback_s { |
|||
/* Callback functions receive a pointer to the arg field.
|
|||
* You can access the value of the field as *arg, and modify it if needed. |
|||
*/ |
|||
union { |
|||
bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void **arg); |
|||
bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, void * const *arg); |
|||
} funcs; |
|||
|
|||
/* Free arg for use by callback */ |
|||
void *arg; |
|||
}; |
|||
|
|||
extern bool pb_default_field_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_t *field); |
|||
|
|||
/* Wire types. Library user needs these only in encoder callbacks. */ |
|||
typedef enum { |
|||
PB_WT_VARINT = 0, |
|||
PB_WT_64BIT = 1, |
|||
PB_WT_STRING = 2, |
|||
PB_WT_32BIT = 5, |
|||
PB_WT_PACKED = 255 /* PB_WT_PACKED is internal marker for packed arrays. */ |
|||
} pb_wire_type_t; |
|||
|
|||
/* Structure for defining the handling of unknown/extension fields.
|
|||
* Usually the pb_extension_type_t structure is automatically generated, |
|||
* while the pb_extension_t structure is created by the user. However, |
|||
* if you want to catch all unknown fields, you can also create a custom |
|||
* pb_extension_type_t with your own callback. |
|||
*/ |
|||
typedef struct pb_extension_type_s pb_extension_type_t; |
|||
typedef struct pb_extension_s pb_extension_t; |
|||
struct pb_extension_type_s { |
|||
/* Called for each unknown field in the message.
|
|||
* If you handle the field, read off all of its data and return true. |
|||
* If you do not handle the field, do not read anything and return true. |
|||
* If you run into an error, return false. |
|||
* Set to NULL for default handler. |
|||
*/ |
|||
bool (*decode)(pb_istream_t *stream, pb_extension_t *extension, |
|||
uint32_t tag, pb_wire_type_t wire_type); |
|||
|
|||
/* Called once after all regular fields have been encoded.
|
|||
* If you have something to write, do so and return true. |
|||
* If you do not have anything to write, just return true. |
|||
* If you run into an error, return false. |
|||
* Set to NULL for default handler. |
|||
*/ |
|||
bool (*encode)(pb_ostream_t *stream, const pb_extension_t *extension); |
|||
|
|||
/* Free field for use by the callback. */ |
|||
const void *arg; |
|||
}; |
|||
|
|||
struct pb_extension_s { |
|||
/* Type describing the extension field. Usually you'll initialize
|
|||
* this to a pointer to the automatically generated structure. */ |
|||
const pb_extension_type_t *type; |
|||
|
|||
/* Destination for the decoded data. This must match the datatype
|
|||
* of the extension field. */ |
|||
void *dest; |
|||
|
|||
/* Pointer to the next extension handler, or NULL.
|
|||
* If this extension does not match a field, the next handler is |
|||
* automatically called. */ |
|||
pb_extension_t *next; |
|||
|
|||
/* The decoder sets this to true if the extension was found.
|
|||
* Ignored for encoding. */ |
|||
bool found; |
|||
}; |
|||
|
|||
#define pb_extension_init_zero {NULL,NULL,NULL,false} |
|||
|
|||
/* Memory allocation functions to use. You can define pb_realloc and
|
|||
* pb_free to custom functions if you want. */ |
|||
#ifdef PB_ENABLE_MALLOC |
|||
# ifndef pb_realloc |
|||
# define pb_realloc(ptr, size) realloc(ptr, size) |
|||
# endif |
|||
# ifndef pb_free |
|||
# define pb_free(ptr) free(ptr) |
|||
# endif |
|||
#endif |
|||
|
|||
/* This is used to inform about need to regenerate .pb.h/.pb.c files. */ |
|||
#define PB_PROTO_HEADER_VERSION 40 |
|||
|
|||
/* These macros are used to declare pb_field_t's in the constant array. */ |
|||
/* Size of a structure member, in bytes. */ |
|||
#define pb_membersize(st, m) (sizeof ((st*)0)->m) |
|||
/* Number of entries in an array. */ |
|||
#define pb_arraysize(st, m) (pb_membersize(st, m) / pb_membersize(st, m[0])) |
|||
/* Delta from start of one member to the start of another member. */ |
|||
#define pb_delta(st, m1, m2) ((int)offsetof(st, m1) - (int)offsetof(st, m2)) |
|||
|
|||
/* Force expansion of macro value */ |
|||
#define PB_EXPAND(x) x |
|||
|
|||
/* Binding of a message field set into a specific structure */ |
|||
#define PB_BIND(msgname, structname, width) \ |
|||
const uint32_t structname ## _field_info[] PB_PROGMEM = \ |
|||
{ \ |
|||
msgname ## _FIELDLIST(PB_GEN_FIELD_INFO_ ## width, structname) \ |
|||
0 \ |
|||
}; \ |
|||
const pb_msgdesc_t* const structname ## _submsg_info[] = \ |
|||
{ \ |
|||
msgname ## _FIELDLIST(PB_GEN_SUBMSG_INFO, structname) \ |
|||
NULL \ |
|||
}; \ |
|||
const pb_msgdesc_t structname ## _msg = \ |
|||
{ \ |
|||
structname ## _field_info, \ |
|||
structname ## _submsg_info, \ |
|||
msgname ## _DEFAULT, \ |
|||
msgname ## _CALLBACK, \ |
|||
0 msgname ## _FIELDLIST(PB_GEN_FIELD_COUNT, structname), \ |
|||
0 msgname ## _FIELDLIST(PB_GEN_REQ_FIELD_COUNT, structname), \ |
|||
0 msgname ## _FIELDLIST(PB_GEN_LARGEST_TAG, structname), \ |
|||
}; \ |
|||
msgname ## _FIELDLIST(PB_GEN_FIELD_INFO_ASSERT_ ## width, structname) |
|||
|
|||
#define PB_GEN_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) +1 |
|||
#define PB_GEN_REQ_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) \ |
|||
+ (PB_HTYPE_ ## htype == PB_HTYPE_REQUIRED) |
|||
#define PB_GEN_LARGEST_TAG(structname, atype, htype, ltype, fieldname, tag) \ |
|||
* 0 + tag |
|||
|
|||
/* X-macro for generating the entries in struct_field_info[] array. */ |
|||
#define PB_GEN_FIELD_INFO_1(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_1(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_GEN_FIELD_INFO_2(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_2(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_GEN_FIELD_INFO_4(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_4(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_GEN_FIELD_INFO_8(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_8(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_GEN_FIELD_INFO_AUTO(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_ ## atype, _PB_HTYPE_ ## htype, _PB_LTYPE_ ## ltype), \ |
|||
tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_FIELDINFO_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) |
|||
|
|||
#define PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_FIELDINFO_ ## width(tag, type, data_offset, data_size, size_offset, array_size) |
|||
|
|||
/* X-macro for generating asserts that entries fit in struct_field_info[] array.
|
|||
* The structure of macros here must match the structure above in PB_GEN_FIELD_INFO_x(), |
|||
* but it is not easily reused because of how macro substitutions work. */ |
|||
#define PB_GEN_FIELD_INFO_ASSERT_1(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_ASSERT_1(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_GEN_FIELD_INFO_ASSERT_2(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_ASSERT_2(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_GEN_FIELD_INFO_ASSERT_4(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_ASSERT_4(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_GEN_FIELD_INFO_ASSERT_8(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_ASSERT_8(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_GEN_FIELD_INFO_ASSERT_AUTO(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_FIELDINFO_ASSERT_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_ ## atype, _PB_HTYPE_ ## htype, _PB_LTYPE_ ## ltype), \ |
|||
tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
|||
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
|||
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
|||
|
|||
#define PB_FIELDINFO_ASSERT_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) |
|||
|
|||
#define PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_FIELDINFO_ASSERT_ ## width(tag, type, data_offset, data_size, size_offset, array_size) |
|||
|
|||
#define PB_DATA_OFFSET_STATIC(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) |
|||
#define PB_DATA_OFFSET_POINTER(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) |
|||
#define PB_DATA_OFFSET_CALLBACK(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) |
|||
#define PB_DO_PB_HTYPE_REQUIRED(structname, fieldname) offsetof(structname, fieldname) |
|||
#define PB_DO_PB_HTYPE_SINGULAR(structname, fieldname) offsetof(structname, fieldname) |
|||
#define PB_DO_PB_HTYPE_ONEOF(structname, fieldname) offsetof(structname, PB_ONEOF_NAME(FULL, fieldname)) |
|||
#define PB_DO_PB_HTYPE_OPTIONAL(structname, fieldname) offsetof(structname, fieldname) |
|||
#define PB_DO_PB_HTYPE_REPEATED(structname, fieldname) offsetof(structname, fieldname) |
|||
#define PB_DO_PB_HTYPE_FIXARRAY(structname, fieldname) offsetof(structname, fieldname) |
|||
|
|||
#define PB_SIZE_OFFSET_STATIC(htype, structname, fieldname) PB_SO ## htype(structname, fieldname) |
|||
#define PB_SIZE_OFFSET_POINTER(htype, structname, fieldname) PB_SO_PTR ## htype(structname, fieldname) |
|||
#define PB_SIZE_OFFSET_CALLBACK(htype, structname, fieldname) PB_SO_CB ## htype(structname, fieldname) |
|||
#define PB_SO_PB_HTYPE_REQUIRED(structname, fieldname) 0 |
|||
#define PB_SO_PB_HTYPE_SINGULAR(structname, fieldname) 0 |
|||
#define PB_SO_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF2(structname, PB_ONEOF_NAME(FULL, fieldname), PB_ONEOF_NAME(UNION, fieldname)) |
|||
#define PB_SO_PB_HTYPE_ONEOF2(structname, fullname, unionname) PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) |
|||
#define PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) pb_delta(structname, fullname, which_ ## unionname) |
|||
#define PB_SO_PB_HTYPE_OPTIONAL(structname, fieldname) pb_delta(structname, fieldname, has_ ## fieldname) |
|||
#define PB_SO_PB_HTYPE_REPEATED(structname, fieldname) pb_delta(structname, fieldname, fieldname ## _count) |
|||
#define PB_SO_PB_HTYPE_FIXARRAY(structname, fieldname) 0 |
|||
#define PB_SO_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 0 |
|||
#define PB_SO_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 0 |
|||
#define PB_SO_PTR_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname) |
|||
#define PB_SO_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 0 |
|||
#define PB_SO_PTR_PB_HTYPE_REPEATED(structname, fieldname) PB_SO_PB_HTYPE_REPEATED(structname, fieldname) |
|||
#define PB_SO_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) 0 |
|||
#define PB_SO_CB_PB_HTYPE_REQUIRED(structname, fieldname) 0 |
|||
#define PB_SO_CB_PB_HTYPE_SINGULAR(structname, fieldname) 0 |
|||
#define PB_SO_CB_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname) |
|||
#define PB_SO_CB_PB_HTYPE_OPTIONAL(structname, fieldname) 0 |
|||
#define PB_SO_CB_PB_HTYPE_REPEATED(structname, fieldname) 0 |
|||
#define PB_SO_CB_PB_HTYPE_FIXARRAY(structname, fieldname) 0 |
|||
|
|||
#define PB_ARRAY_SIZE_STATIC(htype, structname, fieldname) PB_AS ## htype(structname, fieldname) |
|||
#define PB_ARRAY_SIZE_POINTER(htype, structname, fieldname) PB_AS_PTR ## htype(structname, fieldname) |
|||
#define PB_ARRAY_SIZE_CALLBACK(htype, structname, fieldname) 1 |
|||
#define PB_AS_PB_HTYPE_REQUIRED(structname, fieldname) 1 |
|||
#define PB_AS_PB_HTYPE_SINGULAR(structname, fieldname) 1 |
|||
#define PB_AS_PB_HTYPE_OPTIONAL(structname, fieldname) 1 |
|||
#define PB_AS_PB_HTYPE_ONEOF(structname, fieldname) 1 |
|||
#define PB_AS_PB_HTYPE_REPEATED(structname, fieldname) pb_arraysize(structname, fieldname) |
|||
#define PB_AS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname) |
|||
#define PB_AS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 1 |
|||
#define PB_AS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 1 |
|||
#define PB_AS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 1 |
|||
#define PB_AS_PTR_PB_HTYPE_ONEOF(structname, fieldname) 1 |
|||
#define PB_AS_PTR_PB_HTYPE_REPEATED(structname, fieldname) 1 |
|||
#define PB_AS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname[0]) |
|||
|
|||
#define PB_DATA_SIZE_STATIC(htype, structname, fieldname) PB_DS ## htype(structname, fieldname) |
|||
#define PB_DATA_SIZE_POINTER(htype, structname, fieldname) PB_DS_PTR ## htype(structname, fieldname) |
|||
#define PB_DATA_SIZE_CALLBACK(htype, structname, fieldname) PB_DS_CB ## htype(structname, fieldname) |
|||
#define PB_DS_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname) |
|||
#define PB_DS_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname) |
|||
#define PB_DS_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname) |
|||
#define PB_DS_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)) |
|||
#define PB_DS_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0]) |
|||
#define PB_DS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0]) |
|||
#define PB_DS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname[0]) |
|||
#define PB_DS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname[0]) |
|||
#define PB_DS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname[0]) |
|||
#define PB_DS_PTR_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)[0]) |
|||
#define PB_DS_PTR_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0]) |
|||
#define PB_DS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0][0]) |
|||
#define PB_DS_CB_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname) |
|||
#define PB_DS_CB_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname) |
|||
#define PB_DS_CB_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname) |
|||
#define PB_DS_CB_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)) |
|||
#define PB_DS_CB_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname) |
|||
#define PB_DS_CB_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname) |
|||
|
|||
#define PB_ONEOF_NAME(type, tuple) PB_EXPAND(PB_ONEOF_NAME_ ## type tuple) |
|||
#define PB_ONEOF_NAME_UNION(unionname,membername,fullname) unionname |
|||
#define PB_ONEOF_NAME_MEMBER(unionname,membername,fullname) membername |
|||
#define PB_ONEOF_NAME_FULL(unionname,membername,fullname) fullname |
|||
|
|||
#define PB_GEN_SUBMSG_INFO(structname, atype, htype, ltype, fieldname, tag) \ |
|||
PB_SUBMSG_INFO_ ## htype(_PB_LTYPE_ ## ltype, structname, fieldname) |
|||
|
|||
#define PB_SUBMSG_INFO_REQUIRED(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
|||
#define PB_SUBMSG_INFO_SINGULAR(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
|||
#define PB_SUBMSG_INFO_OPTIONAL(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
|||
#define PB_SUBMSG_INFO_ONEOF(ltype, structname, fieldname) PB_SUBMSG_INFO_ONEOF2(ltype, structname, PB_ONEOF_NAME(UNION, fieldname), PB_ONEOF_NAME(MEMBER, fieldname)) |
|||
#define PB_SUBMSG_INFO_ONEOF2(ltype, structname, unionname, membername) PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) |
|||
#define PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) PB_SI ## ltype(structname ## _ ## unionname ## _ ## membername ## _MSGTYPE) |
|||
#define PB_SUBMSG_INFO_REPEATED(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
|||
#define PB_SUBMSG_INFO_FIXARRAY(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
|||
#define PB_SI_PB_LTYPE_BOOL(t) |
|||
#define PB_SI_PB_LTYPE_BYTES(t) |
|||
#define PB_SI_PB_LTYPE_DOUBLE(t) |
|||
#define PB_SI_PB_LTYPE_ENUM(t) |
|||
#define PB_SI_PB_LTYPE_UENUM(t) |
|||
#define PB_SI_PB_LTYPE_FIXED32(t) |
|||
#define PB_SI_PB_LTYPE_FIXED64(t) |
|||
#define PB_SI_PB_LTYPE_FLOAT(t) |
|||
#define PB_SI_PB_LTYPE_INT32(t) |
|||
#define PB_SI_PB_LTYPE_INT64(t) |
|||
#define PB_SI_PB_LTYPE_MESSAGE(t) PB_SUBMSG_DESCRIPTOR(t) |
|||
#define PB_SI_PB_LTYPE_MSG_W_CB(t) PB_SUBMSG_DESCRIPTOR(t) |
|||
#define PB_SI_PB_LTYPE_SFIXED32(t) |
|||
#define PB_SI_PB_LTYPE_SFIXED64(t) |
|||
#define PB_SI_PB_LTYPE_SINT32(t) |
|||
#define PB_SI_PB_LTYPE_SINT64(t) |
|||
#define PB_SI_PB_LTYPE_STRING(t) |
|||
#define PB_SI_PB_LTYPE_UINT32(t) |
|||
#define PB_SI_PB_LTYPE_UINT64(t) |
|||
#define PB_SI_PB_LTYPE_EXTENSION(t) |
|||
#define PB_SI_PB_LTYPE_FIXED_LENGTH_BYTES(t) |
|||
#define PB_SUBMSG_DESCRIPTOR(t) &(t ## _msg), |
|||
|
|||
/* The field descriptors use a variable width format, with width of either
|
|||
* 1, 2, 4 or 8 of 32-bit words. The two lowest bytes of the first byte always |
|||
* encode the descriptor size, 6 lowest bits of field tag number, and 8 bits |
|||
* of the field type. |
|||
* |
|||
* Descriptor size is encoded as 0 = 1 word, 1 = 2 words, 2 = 4 words, 3 = 8 words. |
|||
* |
|||
* Formats, listed starting with the least significant bit of the first word. |
|||
* 1 word: [2-bit len] [6-bit tag] [8-bit type] [8-bit data_offset] [4-bit size_offset] [4-bit data_size] |
|||
* |
|||
* 2 words: [2-bit len] [6-bit tag] [8-bit type] [12-bit array_size] [4-bit size_offset] |
|||
* [16-bit data_offset] [12-bit data_size] [4-bit tag>>6] |
|||
* |
|||
* 4 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit array_size] |
|||
* [8-bit size_offset] [24-bit tag>>6] |
|||
* [32-bit data_offset] |
|||
* [32-bit data_size] |
|||
* |
|||
* 8 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit reserved] |
|||
* [8-bit size_offset] [24-bit tag>>6] |
|||
* [32-bit data_offset] |
|||
* [32-bit data_size] |
|||
* [32-bit array_size] |
|||
* [32-bit reserved] |
|||
* [32-bit reserved] |
|||
* [32-bit reserved] |
|||
*/ |
|||
|
|||
#define PB_FIELDINFO_1(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
(0 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(data_offset) & 0xFF) << 16) | \ |
|||
(((uint32_t)(size_offset) & 0x0F) << 24) | (((uint32_t)(data_size) & 0x0F) << 28)), |
|||
|
|||
#define PB_FIELDINFO_2(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
(1 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size) & 0xFFF) << 16) | (((uint32_t)(size_offset) & 0x0F) << 28)), \ |
|||
(((uint32_t)(data_offset) & 0xFFFF) | (((uint32_t)(data_size) & 0xFFF) << 16) | (((uint32_t)(tag) & 0x3c0) << 22)), |
|||
|
|||
#define PB_FIELDINFO_4(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
(2 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size) & 0xFFFF) << 16)), \ |
|||
((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), \ |
|||
(data_offset), (data_size), |
|||
|
|||
#define PB_FIELDINFO_8(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
(3 | (((tag) << 2) & 0xFF) | ((type) << 8)), \ |
|||
((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), \ |
|||
(data_offset), (data_size), (array_size), 0, 0, 0, |
|||
|
|||
/* These assertions verify that the field information fits in the allocated space.
|
|||
* The generator tries to automatically determine the correct width that can fit all |
|||
* data associated with a message. These asserts will fail only if there has been a |
|||
* problem in the automatic logic - this may be worth reporting as a bug. As a workaround, |
|||
* you can increase the descriptor width by defining PB_FIELDINFO_WIDTH or by setting |
|||
* descriptorsize option in .options file. |
|||
*/ |
|||
#define PB_FITS(value,bits) ((uint32_t)(value) < ((uint32_t)1<<bits)) |
|||
#define PB_FIELDINFO_ASSERT_1(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_STATIC_ASSERT(PB_FITS(tag,6) && PB_FITS(data_offset,8) && PB_FITS(size_offset,4) && PB_FITS(data_size,4) && PB_FITS(array_size,1), FIELDINFO_DOES_NOT_FIT_width1_field ## tag) |
|||
|
|||
#define PB_FIELDINFO_ASSERT_2(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_STATIC_ASSERT(PB_FITS(tag,10) && PB_FITS(data_offset,16) && PB_FITS(size_offset,4) && PB_FITS(data_size,12) && PB_FITS(array_size,12), FIELDINFO_DOES_NOT_FIT_width2_field ## tag) |
|||
|
|||
#ifndef PB_FIELD_32BIT |
|||
/* Maximum field sizes are still 16-bit if pb_size_t is 16-bit */ |
|||
#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_STATIC_ASSERT(PB_FITS(tag,16) && PB_FITS(data_offset,16) && PB_FITS((int_least8_t)size_offset,8) && PB_FITS(data_size,16) && PB_FITS(array_size,16), FIELDINFO_DOES_NOT_FIT_width4_field ## tag) |
|||
|
|||
#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_STATIC_ASSERT(PB_FITS(tag,16) && PB_FITS(data_offset,16) && PB_FITS((int_least8_t)size_offset,8) && PB_FITS(data_size,16) && PB_FITS(array_size,16), FIELDINFO_DOES_NOT_FIT_width8_field ## tag) |
|||
#else |
|||
/* Up to 32-bit fields supported.
|
|||
* Note that the checks are against 31 bits to avoid compiler warnings about shift wider than type in the test. |
|||
* I expect that there is no reasonable use for >2GB messages with nanopb anyway. |
|||
*/ |
|||
#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_STATIC_ASSERT(PB_FITS(tag,30) && PB_FITS(data_offset,31) && PB_FITS(size_offset,8) && PB_FITS(data_size,31) && PB_FITS(array_size,16), FIELDINFO_DOES_NOT_FIT_width4_field ## tag) |
|||
|
|||
#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \ |
|||
PB_STATIC_ASSERT(PB_FITS(tag,30) && PB_FITS(data_offset,31) && PB_FITS(size_offset,8) && PB_FITS(data_size,31) && PB_FITS(array_size,31), FIELDINFO_DOES_NOT_FIT_width8_field ## tag) |
|||
#endif |
|||
|
|||
|
|||
/* Automatic picking of FIELDINFO width:
|
|||
* Uses width 1 when possible, otherwise resorts to width 2. |
|||
* This is used when PB_BIND() is called with "AUTO" as the argument. |
|||
* The generator will give explicit size argument when it knows that a message |
|||
* structure grows beyond 1-word format limits. |
|||
*/ |
|||
#define PB_FIELDINFO_WIDTH_AUTO(atype, htype, ltype) PB_FI_WIDTH ## atype(htype, ltype) |
|||
#define PB_FI_WIDTH_PB_ATYPE_STATIC(htype, ltype) PB_FI_WIDTH ## htype(ltype) |
|||
#define PB_FI_WIDTH_PB_ATYPE_POINTER(htype, ltype) PB_FI_WIDTH ## htype(ltype) |
|||
#define PB_FI_WIDTH_PB_ATYPE_CALLBACK(htype, ltype) 2 |
|||
#define PB_FI_WIDTH_PB_HTYPE_REQUIRED(ltype) PB_FI_WIDTH ## ltype |
|||
#define PB_FI_WIDTH_PB_HTYPE_SINGULAR(ltype) PB_FI_WIDTH ## ltype |
|||
#define PB_FI_WIDTH_PB_HTYPE_OPTIONAL(ltype) PB_FI_WIDTH ## ltype |
|||
#define PB_FI_WIDTH_PB_HTYPE_ONEOF(ltype) PB_FI_WIDTH ## ltype |
|||
#define PB_FI_WIDTH_PB_HTYPE_REPEATED(ltype) 2 |
|||
#define PB_FI_WIDTH_PB_HTYPE_FIXARRAY(ltype) 2 |
|||
#define PB_FI_WIDTH_PB_LTYPE_BOOL 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_BYTES 2 |
|||
#define PB_FI_WIDTH_PB_LTYPE_DOUBLE 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_ENUM 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_UENUM 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_FIXED32 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_FIXED64 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_FLOAT 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_INT32 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_INT64 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_MESSAGE 2 |
|||
#define PB_FI_WIDTH_PB_LTYPE_MSG_W_CB 2 |
|||
#define PB_FI_WIDTH_PB_LTYPE_SFIXED32 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_SFIXED64 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_SINT32 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_SINT64 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_STRING 2 |
|||
#define PB_FI_WIDTH_PB_LTYPE_UINT32 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_UINT64 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_EXTENSION 1 |
|||
#define PB_FI_WIDTH_PB_LTYPE_FIXED_LENGTH_BYTES 2 |
|||
|
|||
/* The mapping from protobuf types to LTYPEs is done using these macros. */ |
|||
#define PB_LTYPE_MAP_BOOL PB_LTYPE_BOOL |
|||
#define PB_LTYPE_MAP_BYTES PB_LTYPE_BYTES |
|||
#define PB_LTYPE_MAP_DOUBLE PB_LTYPE_FIXED64 |
|||
#define PB_LTYPE_MAP_ENUM PB_LTYPE_VARINT |
|||
#define PB_LTYPE_MAP_UENUM PB_LTYPE_UVARINT |
|||
#define PB_LTYPE_MAP_FIXED32 PB_LTYPE_FIXED32 |
|||
#define PB_LTYPE_MAP_FIXED64 PB_LTYPE_FIXED64 |
|||
#define PB_LTYPE_MAP_FLOAT PB_LTYPE_FIXED32 |
|||
#define PB_LTYPE_MAP_INT32 PB_LTYPE_VARINT |
|||
#define PB_LTYPE_MAP_INT64 PB_LTYPE_VARINT |
|||
#define PB_LTYPE_MAP_MESSAGE PB_LTYPE_SUBMESSAGE |
|||
#define PB_LTYPE_MAP_MSG_W_CB PB_LTYPE_SUBMSG_W_CB |
|||
#define PB_LTYPE_MAP_SFIXED32 PB_LTYPE_FIXED32 |
|||
#define PB_LTYPE_MAP_SFIXED64 PB_LTYPE_FIXED64 |
|||
#define PB_LTYPE_MAP_SINT32 PB_LTYPE_SVARINT |
|||
#define PB_LTYPE_MAP_SINT64 PB_LTYPE_SVARINT |
|||
#define PB_LTYPE_MAP_STRING PB_LTYPE_STRING |
|||
#define PB_LTYPE_MAP_UINT32 PB_LTYPE_UVARINT |
|||
#define PB_LTYPE_MAP_UINT64 PB_LTYPE_UVARINT |
|||
#define PB_LTYPE_MAP_EXTENSION PB_LTYPE_EXTENSION |
|||
#define PB_LTYPE_MAP_FIXED_LENGTH_BYTES PB_LTYPE_FIXED_LENGTH_BYTES |
|||
|
|||
/* These macros are used for giving out error messages.
|
|||
* They are mostly a debugging aid; the main error information |
|||
* is the true/false return value from functions. |
|||
* Some code space can be saved by disabling the error |
|||
* messages if not used. |
|||
* |
|||
* PB_SET_ERROR() sets the error message if none has been set yet. |
|||
* msg must be a constant string literal. |
|||
* PB_GET_ERROR() always returns a pointer to a string. |
|||
* PB_RETURN_ERROR() sets the error and returns false from current |
|||
* function. |
|||
*/ |
|||
#ifdef PB_NO_ERRMSG |
|||
#define PB_SET_ERROR(stream, msg) PB_UNUSED(stream) |
|||
#define PB_GET_ERROR(stream) "(errmsg disabled)" |
|||
#else |
|||
#define PB_SET_ERROR(stream, msg) (stream->errmsg = (stream)->errmsg ? (stream)->errmsg : (msg)) |
|||
#define PB_GET_ERROR(stream) ((stream)->errmsg ? (stream)->errmsg : "(none)") |
|||
#endif |
|||
|
|||
#define PB_RETURN_ERROR(stream, msg) return PB_SET_ERROR(stream, msg), false |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#ifdef __cplusplus |
|||
#if __cplusplus >= 201103L |
|||
#define PB_CONSTEXPR constexpr |
|||
#else // __cplusplus >= 201103L
|
|||
#define PB_CONSTEXPR |
|||
#endif // __cplusplus >= 201103L
|
|||
|
|||
#if __cplusplus >= 201703L |
|||
#define PB_INLINE_CONSTEXPR inline constexpr |
|||
#else // __cplusplus >= 201703L
|
|||
#define PB_INLINE_CONSTEXPR PB_CONSTEXPR |
|||
#endif // __cplusplus >= 201703L
|
|||
|
|||
extern "C++" |
|||
{ |
|||
namespace nanopb { |
|||
// Each type will be partially specialized by the generator.
|
|||
template <typename GenMessageT> struct MessageDescriptor; |
|||
} // namespace nanopb
|
|||
} |
|||
#endif /* __cplusplus */ |
|||
|
|||
#endif |
|||
@ -0,0 +1,49 @@ |
|||
/* pb_common.h: Common support functions for pb_encode.c and pb_decode.c.
|
|||
* These functions are rarely needed by applications directly. |
|||
*/ |
|||
|
|||
#ifndef PB_COMMON_H_INCLUDED |
|||
#define PB_COMMON_H_INCLUDED |
|||
|
|||
#include "pb.h" |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initialize the field iterator structure to beginning.
|
|||
* Returns false if the message type is empty. */ |
|||
bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_msgdesc_t *desc, void *message); |
|||
|
|||
/* Get a field iterator for extension field. */ |
|||
bool pb_field_iter_begin_extension(pb_field_iter_t *iter, pb_extension_t *extension); |
|||
|
|||
/* Same as pb_field_iter_begin(), but for const message pointer.
|
|||
* Note that the pointers in pb_field_iter_t will be non-const but shouldn't |
|||
* be written to when using these functions. */ |
|||
bool pb_field_iter_begin_const(pb_field_iter_t *iter, const pb_msgdesc_t *desc, const void *message); |
|||
bool pb_field_iter_begin_extension_const(pb_field_iter_t *iter, const pb_extension_t *extension); |
|||
|
|||
/* Advance the iterator to the next field.
|
|||
* Returns false when the iterator wraps back to the first field. */ |
|||
bool pb_field_iter_next(pb_field_iter_t *iter); |
|||
|
|||
/* Advance the iterator until it points at a field with the given tag.
|
|||
* Returns false if no such field exists. */ |
|||
bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag); |
|||
|
|||
/* Find a field with type PB_LTYPE_EXTENSION, or return false if not found.
|
|||
* There can be only one extension range field per message. */ |
|||
bool pb_field_iter_find_extension(pb_field_iter_t *iter); |
|||
|
|||
#ifdef PB_VALIDATE_UTF8 |
|||
/* Validate UTF-8 text string */ |
|||
bool pb_validate_utf8(const char *s); |
|||
#endif |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
|
|||
@ -0,0 +1,193 @@ |
|||
/* pb_decode.h: Functions to decode protocol buffers. Depends on pb_decode.c.
|
|||
* The main function is pb_decode. You also need an input stream, and the |
|||
* field descriptions created by nanopb_generator.py. |
|||
*/ |
|||
|
|||
#ifndef PB_DECODE_H_INCLUDED |
|||
#define PB_DECODE_H_INCLUDED |
|||
|
|||
#include "pb.h" |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Structure for defining custom input streams. You will need to provide
|
|||
* a callback function to read the bytes from your storage, which can be |
|||
* for example a file or a network socket. |
|||
* |
|||
* The callback must conform to these rules: |
|||
* |
|||
* 1) Return false on IO errors. This will cause decoding to abort. |
|||
* 2) You can use state to store your own data (e.g. buffer pointer), |
|||
* and rely on pb_read to verify that no-body reads past bytes_left. |
|||
* 3) Your callback may be used with substreams, in which case bytes_left |
|||
* is different than from the main stream. Don't use bytes_left to compute |
|||
* any pointers. |
|||
*/ |
|||
struct pb_istream_s |
|||
{ |
|||
#ifdef PB_BUFFER_ONLY |
|||
/* Callback pointer is not used in buffer-only configuration.
|
|||
* Having an int pointer here allows binary compatibility but |
|||
* gives an error if someone tries to assign callback function. |
|||
*/ |
|||
int *callback; |
|||
#else |
|||
bool (*callback)(pb_istream_t *stream, pb_byte_t *buf, size_t count); |
|||
#endif |
|||
|
|||
void *state; /* Free field for use by callback implementation */ |
|||
size_t bytes_left; |
|||
|
|||
#ifndef PB_NO_ERRMSG |
|||
const char *errmsg; |
|||
#endif |
|||
}; |
|||
|
|||
#ifndef PB_NO_ERRMSG |
|||
#define PB_ISTREAM_EMPTY {0,0,0,0} |
|||
#else |
|||
#define PB_ISTREAM_EMPTY {0,0,0} |
|||
#endif |
|||
|
|||
/***************************
|
|||
* Main decoding functions * |
|||
***************************/ |
|||
|
|||
/* Decode a single protocol buffers message from input stream into a C structure.
|
|||
* Returns true on success, false on any failure. |
|||
* The actual struct pointed to by dest must match the description in fields. |
|||
* Callback fields of the destination structure must be initialized by caller. |
|||
* All other fields will be initialized by this function. |
|||
* |
|||
* Example usage: |
|||
* MyMessage msg = {}; |
|||
* uint8_t buffer[64]; |
|||
* pb_istream_t stream; |
|||
* |
|||
* // ... read some data into buffer ...
|
|||
* |
|||
* stream = pb_istream_from_buffer(buffer, count); |
|||
* pb_decode(&stream, MyMessage_fields, &msg); |
|||
*/ |
|||
bool pb_decode(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct); |
|||
|
|||
/* Extended version of pb_decode, with several options to control
|
|||
* the decoding process: |
|||
* |
|||
* PB_DECODE_NOINIT: Do not initialize the fields to default values. |
|||
* This is slightly faster if you do not need the default |
|||
* values and instead initialize the structure to 0 using |
|||
* e.g. memset(). This can also be used for merging two |
|||
* messages, i.e. combine already existing data with new |
|||
* values. |
|||
* |
|||
* PB_DECODE_DELIMITED: Input message starts with the message size as varint. |
|||
* Corresponds to parseDelimitedFrom() in Google's |
|||
* protobuf API. |
|||
* |
|||
* PB_DECODE_NULLTERMINATED: Stop reading when field tag is read as 0. This allows |
|||
* reading null terminated messages. |
|||
* NOTE: Until nanopb-0.4.0, pb_decode() also allows |
|||
* null-termination. This behaviour is not supported in |
|||
* most other protobuf implementations, so PB_DECODE_DELIMITED |
|||
* is a better option for compatibility. |
|||
* |
|||
* Multiple flags can be combined with bitwise or (| operator) |
|||
*/ |
|||
#define PB_DECODE_NOINIT 0x01U |
|||
#define PB_DECODE_DELIMITED 0x02U |
|||
#define PB_DECODE_NULLTERMINATED 0x04U |
|||
bool pb_decode_ex(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, unsigned int flags); |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define pb_decode_noinit(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_NOINIT) |
|||
#define pb_decode_delimited(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_DELIMITED) |
|||
#define pb_decode_delimited_noinit(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_DELIMITED | PB_DECODE_NOINIT) |
|||
#define pb_decode_nullterminated(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_NULLTERMINATED) |
|||
|
|||
/* Release any allocated pointer fields. If you use dynamic allocation, you should
|
|||
* call this for any successfully decoded message when you are done with it. If |
|||
* pb_decode() returns with an error, the message is already released. |
|||
*/ |
|||
void pb_release(const pb_msgdesc_t *fields, void *dest_struct); |
|||
|
|||
/**************************************
|
|||
* Functions for manipulating streams * |
|||
**************************************/ |
|||
|
|||
/* Create an input stream for reading from a memory buffer.
|
|||
* |
|||
* msglen should be the actual length of the message, not the full size of |
|||
* allocated buffer. |
|||
* |
|||
* Alternatively, you can use a custom stream that reads directly from e.g. |
|||
* a file or a network socket. |
|||
*/ |
|||
pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t msglen); |
|||
|
|||
/* Function to read from a pb_istream_t. You can use this if you need to
|
|||
* read some custom header data, or to read data in field callbacks. |
|||
*/ |
|||
bool pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count); |
|||
|
|||
|
|||
/************************************************
|
|||
* Helper functions for writing field callbacks * |
|||
************************************************/ |
|||
|
|||
/* Decode the tag for the next field in the stream. Gives the wire type and
|
|||
* field tag. At end of the message, returns false and sets eof to true. */ |
|||
bool pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof); |
|||
|
|||
/* Skip the field payload data, given the wire type. */ |
|||
bool pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type); |
|||
|
|||
/* Decode an integer in the varint format. This works for enum, int32,
|
|||
* int64, uint32 and uint64 field types. */ |
|||
#ifndef PB_WITHOUT_64BIT |
|||
bool pb_decode_varint(pb_istream_t *stream, uint64_t *dest); |
|||
#else |
|||
#define pb_decode_varint pb_decode_varint32 |
|||
#endif |
|||
|
|||
/* Decode an integer in the varint format. This works for enum, int32,
|
|||
* and uint32 field types. */ |
|||
bool pb_decode_varint32(pb_istream_t *stream, uint32_t *dest); |
|||
|
|||
/* Decode a bool value in varint format. */ |
|||
bool pb_decode_bool(pb_istream_t *stream, bool *dest); |
|||
|
|||
/* Decode an integer in the zig-zagged svarint format. This works for sint32
|
|||
* and sint64. */ |
|||
#ifndef PB_WITHOUT_64BIT |
|||
bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest); |
|||
#else |
|||
bool pb_decode_svarint(pb_istream_t *stream, int32_t *dest); |
|||
#endif |
|||
|
|||
/* Decode a fixed32, sfixed32 or float value. You need to pass a pointer to
|
|||
* a 4-byte wide C variable. */ |
|||
bool pb_decode_fixed32(pb_istream_t *stream, void *dest); |
|||
|
|||
#ifndef PB_WITHOUT_64BIT |
|||
/* Decode a fixed64, sfixed64 or double value. You need to pass a pointer to
|
|||
* a 8-byte wide C variable. */ |
|||
bool pb_decode_fixed64(pb_istream_t *stream, void *dest); |
|||
#endif |
|||
|
|||
#ifdef PB_CONVERT_DOUBLE_FLOAT |
|||
/* Decode a double value into float variable. */ |
|||
bool pb_decode_double_as_float(pb_istream_t *stream, float *dest); |
|||
#endif |
|||
|
|||
/* Make a limited-length substream for reading a PB_WT_STRING field. */ |
|||
bool pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream); |
|||
bool pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream); |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,185 @@ |
|||
/* pb_encode.h: Functions to encode protocol buffers. Depends on pb_encode.c.
|
|||
* The main function is pb_encode. You also need an output stream, and the |
|||
* field descriptions created by nanopb_generator.py. |
|||
*/ |
|||
|
|||
#ifndef PB_ENCODE_H_INCLUDED |
|||
#define PB_ENCODE_H_INCLUDED |
|||
|
|||
#include "pb.h" |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Structure for defining custom output streams. You will need to provide
|
|||
* a callback function to write the bytes to your storage, which can be |
|||
* for example a file or a network socket. |
|||
* |
|||
* The callback must conform to these rules: |
|||
* |
|||
* 1) Return false on IO errors. This will cause encoding to abort. |
|||
* 2) You can use state to store your own data (e.g. buffer pointer). |
|||
* 3) pb_write will update bytes_written after your callback runs. |
|||
* 4) Substreams will modify max_size and bytes_written. Don't use them |
|||
* to calculate any pointers. |
|||
*/ |
|||
struct pb_ostream_s |
|||
{ |
|||
#ifdef PB_BUFFER_ONLY |
|||
/* Callback pointer is not used in buffer-only configuration.
|
|||
* Having an int pointer here allows binary compatibility but |
|||
* gives an error if someone tries to assign callback function. |
|||
* Also, NULL pointer marks a 'sizing stream' that does not |
|||
* write anything. |
|||
*/ |
|||
const int *callback; |
|||
#else |
|||
bool (*callback)(pb_ostream_t *stream, const pb_byte_t *buf, size_t count); |
|||
#endif |
|||
void *state; /* Free field for use by callback implementation. */ |
|||
size_t max_size; /* Limit number of output bytes written (or use SIZE_MAX). */ |
|||
size_t bytes_written; /* Number of bytes written so far. */ |
|||
|
|||
#ifndef PB_NO_ERRMSG |
|||
const char *errmsg; |
|||
#endif |
|||
}; |
|||
|
|||
/***************************
|
|||
* Main encoding functions * |
|||
***************************/ |
|||
|
|||
/* Encode a single protocol buffers message from C structure into a stream.
|
|||
* Returns true on success, false on any failure. |
|||
* The actual struct pointed to by src_struct must match the description in fields. |
|||
* All required fields in the struct are assumed to have been filled in. |
|||
* |
|||
* Example usage: |
|||
* MyMessage msg = {}; |
|||
* uint8_t buffer[64]; |
|||
* pb_ostream_t stream; |
|||
* |
|||
* msg.field1 = 42; |
|||
* stream = pb_ostream_from_buffer(buffer, sizeof(buffer)); |
|||
* pb_encode(&stream, MyMessage_fields, &msg); |
|||
*/ |
|||
bool pb_encode(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct); |
|||
|
|||
/* Extended version of pb_encode, with several options to control the
|
|||
* encoding process: |
|||
* |
|||
* PB_ENCODE_DELIMITED: Prepend the length of message as a varint. |
|||
* Corresponds to writeDelimitedTo() in Google's |
|||
* protobuf API. |
|||
* |
|||
* PB_ENCODE_NULLTERMINATED: Append a null byte to the message for termination. |
|||
* NOTE: This behaviour is not supported in most other |
|||
* protobuf implementations, so PB_ENCODE_DELIMITED |
|||
* is a better option for compatibility. |
|||
*/ |
|||
#define PB_ENCODE_DELIMITED 0x02U |
|||
#define PB_ENCODE_NULLTERMINATED 0x04U |
|||
bool pb_encode_ex(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct, unsigned int flags); |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define pb_encode_delimited(s,f,d) pb_encode_ex(s,f,d, PB_ENCODE_DELIMITED) |
|||
#define pb_encode_nullterminated(s,f,d) pb_encode_ex(s,f,d, PB_ENCODE_NULLTERMINATED) |
|||
|
|||
/* Encode the message to get the size of the encoded data, but do not store
|
|||
* the data. */ |
|||
bool pb_get_encoded_size(size_t *size, const pb_msgdesc_t *fields, const void *src_struct); |
|||
|
|||
/**************************************
|
|||
* Functions for manipulating streams * |
|||
**************************************/ |
|||
|
|||
/* Create an output stream for writing into a memory buffer.
|
|||
* The number of bytes written can be found in stream.bytes_written after |
|||
* encoding the message. |
|||
* |
|||
* Alternatively, you can use a custom stream that writes directly to e.g. |
|||
* a file or a network socket. |
|||
*/ |
|||
pb_ostream_t pb_ostream_from_buffer(pb_byte_t *buf, size_t bufsize); |
|||
|
|||
/* Pseudo-stream for measuring the size of a message without actually storing
|
|||
* the encoded data. |
|||
* |
|||
* Example usage: |
|||
* MyMessage msg = {}; |
|||
* pb_ostream_t stream = PB_OSTREAM_SIZING; |
|||
* pb_encode(&stream, MyMessage_fields, &msg); |
|||
* printf("Message size is %d\n", stream.bytes_written); |
|||
*/ |
|||
#ifndef PB_NO_ERRMSG |
|||
#define PB_OSTREAM_SIZING {0,0,0,0,0} |
|||
#else |
|||
#define PB_OSTREAM_SIZING {0,0,0,0} |
|||
#endif |
|||
|
|||
/* Function to write into a pb_ostream_t stream. You can use this if you need
|
|||
* to append or prepend some custom headers to the message. |
|||
*/ |
|||
bool pb_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count); |
|||
|
|||
|
|||
/************************************************
|
|||
* Helper functions for writing field callbacks * |
|||
************************************************/ |
|||
|
|||
/* Encode field header based on type and field number defined in the field
|
|||
* structure. Call this from the callback before writing out field contents. */ |
|||
bool pb_encode_tag_for_field(pb_ostream_t *stream, const pb_field_iter_t *field); |
|||
|
|||
/* Encode field header by manually specifying wire type. You need to use this
|
|||
* if you want to write out packed arrays from a callback field. */ |
|||
bool pb_encode_tag(pb_ostream_t *stream, pb_wire_type_t wiretype, uint32_t field_number); |
|||
|
|||
/* Encode an integer in the varint format.
|
|||
* This works for bool, enum, int32, int64, uint32 and uint64 field types. */ |
|||
#ifndef PB_WITHOUT_64BIT |
|||
bool pb_encode_varint(pb_ostream_t *stream, uint64_t value); |
|||
#else |
|||
bool pb_encode_varint(pb_ostream_t *stream, uint32_t value); |
|||
#endif |
|||
|
|||
/* Encode an integer in the zig-zagged svarint format.
|
|||
* This works for sint32 and sint64. */ |
|||
#ifndef PB_WITHOUT_64BIT |
|||
bool pb_encode_svarint(pb_ostream_t *stream, int64_t value); |
|||
#else |
|||
bool pb_encode_svarint(pb_ostream_t *stream, int32_t value); |
|||
#endif |
|||
|
|||
/* Encode a string or bytes type field. For strings, pass strlen(s) as size. */ |
|||
bool pb_encode_string(pb_ostream_t *stream, const pb_byte_t *buffer, size_t size); |
|||
|
|||
/* Encode a fixed32, sfixed32 or float value.
|
|||
* You need to pass a pointer to a 4-byte wide C variable. */ |
|||
bool pb_encode_fixed32(pb_ostream_t *stream, const void *value); |
|||
|
|||
#ifndef PB_WITHOUT_64BIT |
|||
/* Encode a fixed64, sfixed64 or double value.
|
|||
* You need to pass a pointer to a 8-byte wide C variable. */ |
|||
bool pb_encode_fixed64(pb_ostream_t *stream, const void *value); |
|||
#endif |
|||
|
|||
#ifdef PB_CONVERT_DOUBLE_FLOAT |
|||
/* Encode a float value so that it appears like a double in the encoded
|
|||
* message. */ |
|||
bool pb_encode_float_as_double(pb_ostream_t *stream, float value); |
|||
#endif |
|||
|
|||
/* Encode a submessage field.
|
|||
* You need to pass the pb_field_t array and pointer to struct, just like |
|||
* with pb_encode(). This internally encodes the submessage twice, first to |
|||
* calculate message size and then to actually write it out. |
|||
*/ |
|||
bool pb_encode_submessage(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct); |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,38 @@ |
|||
|
|||
|
|||
/*
|
|||
* readme.h |
|||
* |
|||
* Created on: 2023年10月31日 |
|||
* Author: shiya |
|||
* |
|||
* CAN_H7_Bootloader程序存放位置 |
|||
* FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K |
|||
* 要求APP的存放位置为: |
|||
* FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 896K |
|||
* APP的中断向量表设置为: |
|||
* define VECT_TAB_OFFSET 0x00020000U |
|||
* |
|||
* Boot顺序(关联CAN总线2): |
|||
* Boot程序总线返回报文ID:0x1FF 类型:标准帧 |
|||
* 1. Boot启动,返回报文长度1的报文; |
|||
* 2. 延时100ms,期间等待报文0x110标准帧,首字节0x55,如果接收到 进入BootLoader程序 A; |
|||
* 3. 如果没有收到进入bootloader请求,返回报文长度3的报文,跳转到APP; |
|||
* |
|||
* A. 如果进入bootloader程序,返回报文长度2的报文,等待刷写; |
|||
* 刷写ID为0x222,逻辑参见“canbootloader.lua” |
|||
* B. 如果刷写过程存在失败,返回报文长度4的报文,可以重新尝试运行“canbootloader.lua”进行刷写; |
|||
* |
|||
* C. 刷写成功,返回报文长度3的报文,进入APP; |
|||
* PV 用户可修改数据 |
|||
* CV 管理员配置权限,CV中有PV |
|||
* GV 机器人数据 |
|||
* IV 机器人返回上位机的表征数据 |
|||
* |
|||
*/ |
|||
#ifndef INC_BSP_README_H_ |
|||
#define INC_BSP_README_H_ |
|||
|
|||
|
|||
|
|||
#endif /* INC_BSP_README_H_ */ |
|||
@ -0,0 +1,33 @@ |
|||
/*
|
|||
* SliderControl.h |
|||
* |
|||
* Created on: Dec 9, 2025 |
|||
* Author: bihon |
|||
*/ |
|||
#include "BHBF_ROBOT.h" |
|||
#include "bsp_FDCAN.h" |
|||
#include "bsp_Error_Detect.h" |
|||
|
|||
#ifndef INC_SLIDERCONTROL_H_ |
|||
#define INC_SLIDERCONTROL_H_ |
|||
|
|||
void SlideTestFunction(); |
|||
|
|||
void SlideTestFunction2(); |
|||
void Slide_Control_Function(); |
|||
|
|||
void SlideMotor_Controller_intialize_CAN2(FDCANHandler *Handler); |
|||
void SlideMotorSetSpeed(uint32_t TargetSpeed); |
|||
void SlideMotorSetCurrentPositionZero(); |
|||
void SlideMotorChangeToPositionMode(); |
|||
void SlideSetTargetPositionAndSpeed(int32_t TargetPosition, int32_t TargetSpeed); |
|||
void SlideMotionSetPosition(int32_t TargetPosition, int32_t TargetSpeed); |
|||
void SlideMotorPositionModeMove(); |
|||
uint8_t LimitPositionJudge(void); |
|||
uint8_t ppMode_ArrivalSignal(void); |
|||
extern char Slide_Motor_Need_To_Activate; |
|||
extern uint32_t StartPosition; |
|||
extern uint32_t WorkDistance; |
|||
extern uint32_t StopPosition; |
|||
|
|||
#endif /* INC_SLIDERCONTROL_H_ */ |
|||
@ -0,0 +1,309 @@ |
|||
/*
|
|||
* msp_fashion_star_uart_servo.h |
|||
* |
|||
* Created on: Jul 29, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef SRC_MSP_MSP_FASHION_STAR_UART_SERVO_H_ |
|||
#define SRC_MSP_MSP_FASHION_STAR_UART_SERVO_H_ |
|||
|
|||
#include "usart.h" |
|||
|
|||
#include "msp_ring_buffer.h" |
|||
|
|||
void FSUS_QueryServoAngle(uint8_t servo_id, uint8_t *sendbytes, uint8_t *length); |
|||
|
|||
// FSUS通信协议
|
|||
// 注: FSUS是Fashion Star Uart Servo的缩写
|
|||
|
|||
// 串口通讯超时设置
|
|||
#define FSUS_TIMEOUT_MS 100 |
|||
// 舵机用户自定义数据块的大小 单位Byte
|
|||
#define FSUS_SERVO_BATCH_DATA_SIZE 32 |
|||
// 返回的响应数据包最长的长度
|
|||
#define FSUS_PACK_RESPONSE_MAX_SIZE 50 |
|||
// 在串口舵机的通信系统设计里, 使用的字节序为Little Endian(低字节序/小端格式)
|
|||
// STM32系统的数值存储模式就是Little Endian
|
|||
// 所以0x4c12 这个数值, 在实际发送的时候低位会在前面 0x12, 0x4c
|
|||
#define FSUS_PACK_REQUEST_HEADER 0x4c12 |
|||
#define FSUS_PACK_RESPONSE_HEADER 0x1c05 |
|||
|
|||
// FSUS控制指令数据
|
|||
// 注: 一下所有的指令都是针对单个舵机的
|
|||
#define FSUS_CMD_NUM 17 |
|||
#define FSUS_CMD_PING 1 // 舵机通讯检测
|
|||
#define FSUS_CMD_RESET_USER_DATA 2 // 重置用户数据
|
|||
#define FSUS_CMD_READ_DATA 3 // 单个舵机 读取数据库
|
|||
#define FSUS_CMD_WRITE_DATA 4 // 单个舵机 写入数据块
|
|||
#define FSUS_CMD_READ_BATCH_DATA 5 // 单个舵机 批次读取(读取一个舵机所有的数据)
|
|||
#define FSUS_CMD_WRITE_BATCH_DATA 6 // 单个舵机 批次写入(写入一个舵机所有的数据)
|
|||
#define FSUS_CMD_SPIN 7 // 单个舵机 设置轮式模式
|
|||
#define FSUS_CMD_ROTATE 8 // 角度控制模式(设置舵机的角度))
|
|||
#define FSUS_CMD_DAMPING 9 // 阻尼模式
|
|||
#define FSUS_CMD_READ_ANGLE 10 // 舵机角度读取
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_BY_INTERVAL 11 // 角度设置(指定周期)
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_BY_VELOCITY 12 // 角度设置(指定转速)
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_MTURN 13 // 多圈角度设置
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_MTURN_BY_INTERVAL 14 // 多圈角度设置(指定周期)
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_MTURN_BY_VELOCITY 15 // 多圈角度设置(指定转速)
|
|||
#define FSUS_CMD_QUERY_SERVO_ANGLE_MTURN 16 // 查询舵机角度(多圈)
|
|||
|
|||
// FSUS状态码
|
|||
#define FSUS_STATUS uint8_t |
|||
#define FSUS_STATUS_SUCCESS 0 // 设置/读取成功
|
|||
#define FSUS_STATUS_FAIL 1 // 设置/读取失败
|
|||
#define FSUS_STATUS_TIMEOUT 2 // 等待超时
|
|||
#define FSUS_STATUS_WRONG_RESPONSE_HEADER 3 // 响应头不对
|
|||
#define FSUS_STATUS_UNKOWN_CMD_ID 4 // 未知的控制指令
|
|||
#define FSUS_STATUS_SIZE_TOO_BIG 5 // 参数的size大于FSUS_PACK_RESPONSE_MAX_SIZE里面的限制
|
|||
#define FSUS_STATUS_CHECKSUM_ERROR 6 // 校验和错误
|
|||
#define FSUS_STATUS_ID_NOT_MATCH 7 // 请求的舵机ID跟反馈回来的舵机ID不匹配
|
|||
|
|||
// 静止状态判断条件
|
|||
#define FSUS_ANGLE_DEADAREA 1.0f // 电机角度死区
|
|||
#define FSUS_WAIT_COUNT_MAX 10000 // 等待重复查询角度的最大次数
|
|||
|
|||
/* 舵机用户自定义参数的数据ID及使用说明 (可度也可写)*/ |
|||
|
|||
/* 此项设置同时具备两个功能
|
|||
* 在轮式模式与角度控制模式下 |
|||
* 1. 舵机指令是否可以中断 interruptable? |
|||
* 2. 是否产生反馈数据? |
|||
* 0x00(默认) |
|||
* 舵机控制指令执行可以被中断, 新的指令覆盖旧的指令 |
|||
* 无反馈数据 |
|||
* 0x01 |
|||
* 舵机控制指令不可以被中断, 新的指令添加到等候队列里面 |
|||
* 等候队列的长度是1, 需要自己在程序里面维护一个队列 |
|||
* 当新的控制指令超出了缓冲区的大小之后, 新添加的指令被忽略 |
|||
* 指令执行结束之后发送反馈数据 |
|||
*/ |
|||
#define FSUS_PARAM_RESPONSE_SWITCH 33 |
|||
/*
|
|||
* 舵机的ID号, (字节长度 1) |
|||
* 取值范围是 0-254 |
|||
* 255号为广播地址,不能赋值给舵机 广播地址在PING指令中使用。 |
|||
*/ |
|||
#define FSUS_PARAM_SERVO_ID 34 |
|||
/*
|
|||
* 串口通讯的波特率ID (字节长度 1) |
|||
* 取值范围 [0x01,0x07] , 默认值0x05 |
|||
* 0x01-9600, |
|||
* 0x02-19200, |
|||
* 0x03-38400, |
|||
* 0x04-57600, |
|||
* 0x05-115200 (默认波特率), |
|||
* 0x06-250000, |
|||
* 0x07-500000, |
|||
* 波特率设置时即生效 |
|||
*/ |
|||
#define FSUS_PARAM_BAUDRATE 36 |
|||
|
|||
/* 舵机保护值相关设置, 超过阈值舵机就进入保护模式 */ |
|||
/*
|
|||
* 舵机堵转保护模式 (字节长度 1) |
|||
* 0x00-模式1 降功率到堵轉功率上限 |
|||
* 0x01-模式2 释放舵机锁力 |
|||
*/ |
|||
#define FSUS_PARAM_STALL_PROTECT 37 |
|||
/* 舵机堵转功率上限, (单位mW) (字节长度 2) */ |
|||
#define FSUS_PARAM_STALL_POWER_LIMIT 38 |
|||
/* 舵机电压下限 (单位mV) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_VOLT_LOW 39 |
|||
/* 舵机电压上限 (单位mV) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_VOLT_HIGH 40 |
|||
/* 舵机温度上限 (单位 摄氏度) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_TEMPERATURE 41 |
|||
/* 舵机功率上限 (单位mW) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_POWER 42 |
|||
/* 舵机电流上限 (单位mA) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_CURRENT 43 |
|||
/*
|
|||
* 舵机启动加速度处理开关 (字节长度 1) |
|||
* 0x00 不启动加速度处理 (无效设置) |
|||
* 0x01 启用加速度处理(默认值) |
|||
* 舵机梯形速度控制,根据时间t推算加速度a |
|||
* 行程前1/4 加速 |
|||
* 行程中间1/2保持匀速 |
|||
* 行程后1/4 |
|||
*/ |
|||
#define FSUS_PARAM_ACCEL_SWITCH 44 |
|||
/*
|
|||
* 舵机上电锁力开关 (字节长度 1) |
|||
* 0x00 上电舵机释放锁力(默认值) |
|||
* 0x11 上电时刹车 |
|||
*/ |
|||
#define FSUS_PARAM_POWER_ON_LOCK_SWITCH 46 |
|||
/*
|
|||
* [轮式模式] 轮式模式刹车开关 (字节长度 1) |
|||
* 0x00 停止时舵机释放锁力(默认) |
|||
* 0x01 停止时刹车 |
|||
*/ |
|||
#define FSUS_PARAM_WHEEL_MODE_BRAKE_SWITCH 47 |
|||
/*
|
|||
* [角度模式] 角度限制开关 (字节长度 1) |
|||
* 0x00 关闭角度限制 |
|||
* 0x01 开启角度限制 |
|||
* 注: 只有角度限制模式开启之后, 角度上限下限才有效 |
|||
*/ |
|||
#define FSUS_PARAM_ANGLE_LIMIT_SWITCH 48 |
|||
/*
|
|||
* [角度模式] 舵机上电首次角度设置缓慢执行 (字节长度 1) |
|||
* 0x00 关闭 |
|||
* 0x01 开启 |
|||
* 开启后更安全 |
|||
* 缓慢旋转的时间周期即为下方的”舵机上电启动时间“ |
|||
*/ |
|||
#define FSUS_PARAM_SOFT_START_SWITCH 49 |
|||
/*
|
|||
* [角度模式] 舵机上电启动时间 (单位ms)(字节长度 2) |
|||
* 默认值: 0x0bb8 |
|||
*/ |
|||
#define FSUS_PARAM_SOFT_START_TIME 50 |
|||
/*
|
|||
* [角度模式] 舵机角度上限 (单位0.1度)(字节长度 2) |
|||
*/ |
|||
#define FSUS_PARAM_ANGLE_LIMIT_HIGH 51 |
|||
/*
|
|||
* [角度模式] 舵机角度下限 (单位0.1度)(字节长度 2) |
|||
*/ |
|||
#define FSUS_PARAM_ANGLE_LIMIT_LOW 52 |
|||
/*
|
|||
* [角度模式] 舵机中位角度偏移 (单位0.1度)(字节长度 2) |
|||
*/ |
|||
#define FSUS_PARAM_ANGLE_MID_OFFSET 53 |
|||
|
|||
// 帧头接收完成的标志位
|
|||
#define FSUS_RECV_FLAG_HEADER 0x01 |
|||
// 控制指令接收完成的标志位
|
|||
#define FSUS_RECV_FLAG_CMD_ID 0x02 |
|||
// 内容长度接收完成的标志位
|
|||
#define FSUS_RECV_FLAG_SIZE 0x04 |
|||
// 内容接收完成的标志位
|
|||
#define FSUS_RECV_FLAG_CONTENT 0x08 |
|||
// 校验和接收的标志位
|
|||
#define FSUS_RECV_FLAG_CHECKSUM 0x10 |
|||
|
|||
// 轮式模式参数定义
|
|||
// Bit 0 是否运行
|
|||
#define FSUS_SPIN_METHOD_STOP 0x00 // 轮子停止旋转
|
|||
#define FSUS_SPIN_METHOD_START 0x01 // 轮子旋转
|
|||
#define FSUS_SPIN_METHOD_CIRCLE 0x02 // 轮子定圈
|
|||
#define FSUS_SPIN_METHOD_TIME 0x03 // 轮子定时
|
|||
#define FSUS_SPIN_METHOD_CCW 0x00 // 轮子逆时针旋转
|
|||
#define FSUS_SPIN_METHOD_CW 0x80 // 轮子顺时针旋转
|
|||
|
|||
// 串口舵机用户自定义设置
|
|||
// 是否开启响应模式
|
|||
#define FSUS_IS_RESPONSE_ON 0 |
|||
|
|||
// 请求数据帧的结构体
|
|||
typedef struct |
|||
{ |
|||
uint16_t header; // 请求头
|
|||
uint8_t cmdId; // 指令ID号
|
|||
uint8_t size; // 包的长度
|
|||
uint8_t content[FSUS_PACK_RESPONSE_MAX_SIZE]; // 包的内容
|
|||
uint8_t checksum; // 校验和
|
|||
// 用于帧的接收
|
|||
// 数据帧的接收状态 flag标志位
|
|||
uint8_t status; |
|||
} PackageTypeDef; |
|||
|
|||
// 数据帧转换为字节数组
|
|||
void FSUS_Package2RingBuffer(PackageTypeDef *pkg, RingBufferTypeDef *ringBuf); |
|||
|
|||
// 销毁数据帧 (释放数据帧申请的内存)
|
|||
void FSUS_DestroyPackage(PackageTypeDef *pkg); |
|||
|
|||
// 计算校验和
|
|||
uint8_t FSUS_CalcChecksum(PackageTypeDef *pkg); |
|||
|
|||
// 判断是否为有效的请求头的
|
|||
FSUS_STATUS FSUS_IsValidResponsePackage(PackageTypeDef *pkg); |
|||
|
|||
// 字节数组转换为数据帧
|
|||
FSUS_STATUS FSUS_RingBuffer2Package(RingBufferTypeDef *ringBuf, |
|||
PackageTypeDef *pkg); |
|||
|
|||
// 构造发送数据帧
|
|||
//void FSUS_SendPackage(Usart_DataTypeDef *usart, uint8_t cmdId, uint8_t size, uint8_t *content);
|
|||
|
|||
// 接收数据帧 (在接收的时候动态的申请内存)
|
|||
//FSUS_STATUS FSUS_RecvPackage(Usart_DataTypeDef *usart, PackageTypeDef *pkg);
|
|||
|
|||
// 舵机通讯检测
|
|||
// 注: 如果没有舵机响应这个Ping指令的话, 就会超时
|
|||
//FSUS_STATUS FSUS_Ping(Usart_DataTypeDef *usart, uint8_t servo_id);
|
|||
|
|||
// 重置舵机的用户资料
|
|||
//FSUS_STATUS FSUS_ResetUserData(Usart_DataTypeDef *usart, uint8_t servo_id);
|
|||
|
|||
// 读取数据
|
|||
//FSUS_STATUS FSUS_ReadData(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t address, uint8_t *value, uint8_t *size);
|
|||
|
|||
// 写入数据
|
|||
//FSUS_STATUS FSUS_WriteData(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t address, uint8_t *value, uint8_t size);
|
|||
|
|||
// 读取单个舵机所有的资料信息(注: 未实现)
|
|||
// 写入单个舵机所有的资料信息(注: 未实现)
|
|||
// 批次写入过于麻烦, 用户手动配置单个舵机就得写至少32行参数设置代码
|
|||
// 而且不同的控制模式, 有些是不需要设置的.
|
|||
// 推荐单项设置
|
|||
|
|||
/*
|
|||
* 轮式控制模式 |
|||
* speed单位 °/s |
|||
*/ |
|||
//FSUS_STATUS FSUS_WheelMove(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t method, uint16_t speed, uint16_t value);
|
|||
// 轮式模式, 舵机停止转动
|
|||
FSUS_STATUS FSUS_WheelStop(uint8_t servo_id, uint8_t *sendbytes, |
|||
uint8_t *length); |
|||
|
|||
// 轮式模式
|
|||
FSUS_STATUS FSUS_WheelKeepMove(uint8_t servo_id, uint8_t is_cw, uint16_t speed, |
|||
uint8_t *sendbytes, uint8_t *length); |
|||
|
|||
// 轮式模式 按照特定的速度旋转特定的时间
|
|||
//FSUS_STATUS FSUS_WheelMoveTime(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t is_cw, uint16_t speed, uint16_t nTime);
|
|||
|
|||
// 轮式模式 旋转特定的圈数
|
|||
//FSUS_STATUS FSUS_WheelMoveNCircle(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t is_cw, uint16_t speed, uint16_t nCircle);
|
|||
|
|||
// 设置舵机的角度
|
|||
// @angle 单位度
|
|||
// @interval 单位ms
|
|||
// @power 舵机执行功率 单位mW
|
|||
// 若power=0或者大于保护值
|
|||
//FSUS_STATUS FSUS_SetServoAngle(Usart_DataTypeDef *usart, uint8_t servo_id, float angle, uint16_t interval, uint16_t power, uint8_t wait);
|
|||
|
|||
/* 设置舵机的角度(指定周期) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleByInterval(Usart_DataTypeDef *usart, uint8_t servo_id, \ |
|||
float angle, uint16_t interval, uint16_t t_acc, \ |
|||
uint16_t t_dec, uint16_t power, uint8_t wait); |
|||
/* 设置舵机的角度(指定转速) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleByVelocity(Usart_DataTypeDef *usart, uint8_t servo_id, \ |
|||
float angle, float velocity, uint16_t t_acc, \ |
|||
uint16_t t_dec, uint16_t power, uint8_t wait); |
|||
/* 查询单个舵机的角度信息 angle 单位度 */ |
|||
//FSUS_STATUS FSUS_QueryServoAngle(Usart_DataTypeDef *usart, uint8_t servo_id, float *angle);
|
|||
/* 设置舵机的角度(多圈模式) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleMTurn(Usart_DataTypeDef *usart, uint8_t servo_id, float angle, \ |
|||
uint32_t interval, uint16_t power, uint8_t wait); |
|||
/* 设置舵机的角度(多圈模式, 指定周期) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleMTurnByInterval(Usart_DataTypeDef *usart, uint8_t servo_id, float angle, \ |
|||
uint32_t interval, uint16_t t_acc, uint16_t t_dec, uint16_t power, uint8_t wait); |
|||
/* 设置舵机的角度(多圈模式, 指定转速) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleMTurnByVelocity(Usart_DataTypeDef *usart, uint8_t servo_id, float angle, \ |
|||
float velocity, uint16_t t_acc, uint16_t t_dec, uint16_t power, uint8_t wait); |
|||
/* 查询舵机的角度(多圈模式) */ |
|||
//FSUS_STATUS FSUS_QueryServoAngleMTurn(Usart_DataTypeDef *usart, uint8_t servo_id, float *angle);
|
|||
/* 舵机阻尼模式 */ |
|||
//FSUS_STATUS FSUS_DampingMode(Usart_DataTypeDef *usart, uint8_t servo_id, uint16_t power);
|
|||
/* 等待电机旋转到特定的位置 */ |
|||
//FSUS_STATUS FSUS_Wait(Usart_DataTypeDef *usart, uint8_t servo_id, float target_angle, uint8_t is_mturn);
|
|||
FSUS_STATUS FSUS_SetServoAngle(uint8_t servo_id, float angle, uint16_t interval, |
|||
uint16_t power, uint8_t wait, uint8_t *sendbytes, uint8_t *length); |
|||
|
|||
#endif /* SRC_MSP_MSP_FASHION_STAR_UART_SERVO_H_ */ |
|||
@ -0,0 +1,82 @@ |
|||
/*
|
|||
* msp_ring_buffer.h |
|||
* |
|||
* Created on: Jul 29, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_RING_BUFFER_H_ |
|||
#define INC_MSP_MSP_RING_BUFFER_H_ |
|||
//#include "sys.h"
|
|||
#include "stdint.h" |
|||
|
|||
#include<stdio.h> |
|||
#include <string.h> |
|||
#include <stdlib.h> |
|||
|
|||
// 环形队列结构体
|
|||
typedef struct |
|||
{ |
|||
uint8_t *buffer; // 缓冲区
|
|||
uint16_t head; // 队首指针
|
|||
uint16_t tail; // 队尾指针
|
|||
uint16_t size; // 环形队列的尺寸
|
|||
} RingBufferTypeDef; |
|||
|
|||
// 创建队列
|
|||
void RingBuffer_Init(RingBufferTypeDef *ringBuf, uint16_t capacity, |
|||
uint8_t *buffer); |
|||
// 队列重置
|
|||
void RingBuffer_Reset(RingBufferTypeDef *ringBuf); |
|||
// 销毁队列
|
|||
void RingBuffer_Destory(RingBufferTypeDef *ringBuf); |
|||
// 获取队列的容量
|
|||
uint16_t RingBuffer_GetCapacity(RingBufferTypeDef *ringBuf); |
|||
// 获取环形队列已经存好的字节数
|
|||
uint16_t RingBuffer_GetByteUsed(RingBufferTypeDef *ringBuf); |
|||
// 获取队列的剩余的空闲字节
|
|||
uint16_t RingBuffer_GetByteFree(RingBufferTypeDef *ringBuf); |
|||
// 队列是否为空
|
|||
uint8_t RingBuffer_IsEmpty(RingBufferTypeDef *ringBuf); |
|||
// 队列是否已满
|
|||
uint8_t RingBuffer_IsFull(RingBufferTypeDef *ringBuf); |
|||
// 根据索引号读取第i个元素
|
|||
uint8_t RingBuffer_GetValueByIndex(RingBufferTypeDef *ringBuf, uint16_t index); |
|||
// 弹出队首元素
|
|||
uint8_t RingBuffer_Pop(RingBufferTypeDef *ringBuf); |
|||
// 读取单个字节
|
|||
uint8_t RingBuffer_ReadByte(RingBufferTypeDef *ringBuf); |
|||
// 读取字节数组
|
|||
void RingBuffer_ReadByteArray(RingBufferTypeDef *ringBuf, uint8_t *dest, |
|||
uint16_t size); |
|||
// 读取有符号Short整数(两个字节)
|
|||
int16_t RingBuffer_ReadShort(RingBufferTypeDef *ringBuf); |
|||
// 读取无符号Short整数(两个字节)
|
|||
uint16_t RingBuffer_ReadUShort(RingBufferTypeDef *ringBuf); |
|||
// 读取有符号Long类型的整数(四个字节)
|
|||
int32_t RingBuffer_ReadLong(RingBufferTypeDef *ringBuf); |
|||
// 读取无符号Long类型的整数(四个字节)
|
|||
uint32_t RingBuffer_ReadULong(RingBufferTypeDef *ringBuf); |
|||
// 读取浮点数(四个字节)
|
|||
float RingBuffer_ReadFloat(RingBufferTypeDef *ringBuf); |
|||
// 写入队尾元素
|
|||
void RingBuffer_Push(RingBufferTypeDef *ringBuf, uint8_t value); |
|||
// 写入单个字节
|
|||
void RingBuffer_WriteByte(RingBufferTypeDef *ringBuf, uint8_t value); |
|||
// 写入字节数组
|
|||
void RingBuffer_WriteByteArray(RingBufferTypeDef *ringBuf, uint8_t *src, |
|||
uint16_t size); |
|||
// 写入有符号Short整数(两个字节)
|
|||
void RingBuffer_WriteShort(RingBufferTypeDef *ringBuf, int16_t value); |
|||
// 写入无符号Short整数(两个字节)
|
|||
void RingBuffer_WriteUShort(RingBufferTypeDef *ringBuf, uint16_t value); |
|||
// 写入有符号Long类型的整数(四个字节)
|
|||
void RingBuffer_WriteLong(RingBufferTypeDef *ringBuf, int32_t value); |
|||
// 写入无符号Long类型的整数(四个字节)
|
|||
void RingBuffer_WriteULong(RingBufferTypeDef *ringBuf, uint32_t value); |
|||
// 写入浮点数(四个字节)
|
|||
void RingBuffer_WriteFloat(RingBufferTypeDef *ringBuf, float value); |
|||
// 计算缓冲区所有自己的校验和()
|
|||
uint8_t RingBuffer_GetChecksum(RingBufferTypeDef *ringBuf); |
|||
|
|||
#endif /* INC_MSP_MSP_RING_BUFFER_H_ */ |
|||
@ -0,0 +1,27 @@ |
|||
/*
|
|||
* msp_Angle_Encoder_YL159.h |
|||
* |
|||
* Created on: Jul 24, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_ANGLE_ENCODER_YL159_H_ |
|||
#define INC_MSP_MSP_ANGLE_ENCODER_YL159_H_ |
|||
|
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include "bsp_MB_host.h" |
|||
#include "stdio.h" |
|||
#include "bsp_UART.h" |
|||
#include "usart.h" |
|||
#include "gpio.h" |
|||
|
|||
|
|||
extern void Test(); |
|||
extern void read_angle(); |
|||
void decode_Angle(uint8_t *buffer, uint16_t length); |
|||
void reset_position_value(); |
|||
|
|||
extern int32_t* Desulfurizer_Angle; |
|||
void angle_encoder_intialize(struct UARTHandler *Handler); |
|||
#endif /* INC_MSP_MSP_ANGLE_ENCODER_YL159_H_ */ |
|||
@ -0,0 +1,19 @@ |
|||
/*
|
|||
* msp_DAM0404D.h |
|||
* |
|||
* Created on: Nov 22, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_DAM0404D_H_ |
|||
#define INC_MSP_MSP_DAM0404D_H_ |
|||
#include "BHBF_ROBOT.h" |
|||
extern int32_t* DMA_DAM0404D_Output_Value[4]; |
|||
void decode040D_DAM(uint8_t *buffer, uint16_t length); |
|||
void DAM040D_0_Set(); |
|||
void DAM040D_1_Set(); |
|||
void DAM040D_2_Set(); |
|||
void DAM040D_3_Set(); |
|||
|
|||
|
|||
#endif /* INC_MSP_MSP_DAM0404D_H_ */ |
|||
@ -0,0 +1,14 @@ |
|||
/*
|
|||
* msp_DAM_Relay.h |
|||
* |
|||
* Created on: Nov 5, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_DAM_RELAY_H_ |
|||
#define INC_MSP_MSP_DAM_RELAY_H_ |
|||
#include "BHBF_ROBOT.h" |
|||
|
|||
extern int32_t* DMA_DO_Value_[4]; |
|||
|
|||
#endif /* INC_MSP_MSP_DAM_RELAY_H_ */ |
|||
@ -0,0 +1,87 @@ |
|||
/*
|
|||
* msp_DC_CAN.h |
|||
* |
|||
* Created on: 2024年6月21日 |
|||
* Author: SQ-X |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_DC_CAN_SWING_CONTROLLER_H_ |
|||
#define INC_MSP_MSP_DC_CAN_SWING_CONTROLLER_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
typedef struct _DHCANopenData0x2E4 |
|||
{ |
|||
|
|||
uint8_t EmergencyStop :1; //first byte
|
|||
uint8_t Forwards :1; |
|||
uint8_t BackWards :1; |
|||
uint8_t TurnLeft :1; |
|||
uint8_t TurnRight :1; |
|||
uint8_t Speed1 :1; |
|||
uint8_t Speed2 :1; |
|||
uint8_t Speed3 :1; //8 bit
|
|||
|
|||
uint8_t Speed4 :1; |
|||
uint8_t Speed5 :1; |
|||
uint8_t Speed6 :1; |
|||
uint8_t Speed7 :1; |
|||
uint8_t Speed8 :1; |
|||
uint8_t Speed9 :1; |
|||
uint8_t Speed10 :1; |
|||
uint8_t Mode0 :1; //8 bit
|
|||
|
|||
uint8_t Mode1 :1; |
|||
uint8_t Mode2 :1; |
|||
uint8_t Mode3 :1; |
|||
uint8_t Mode4 :1; |
|||
uint8_t Mode5 :1; |
|||
uint8_t Mode6 :1; |
|||
uint8_t Mode7 :1; |
|||
uint8_t Mode8 :1; //8 bit
|
|||
|
|||
uint8_t Mode9 :1; // third byte
|
|||
uint8_t Mode10 :1; |
|||
|
|||
uint8_t Incresss :1; |
|||
uint8_t Decresss :1; |
|||
uint8_t TaskStart :1; //作业开始
|
|||
uint8_t LaneChnge :1; |
|||
uint8_t UpWards :1; |
|||
uint8_t DownWards :1; //8 bit
|
|||
|
|||
uint8_t SwingLeft :1; |
|||
uint8_t SwingRight :1; |
|||
uint8_t None4 :6; //8 bit
|
|||
|
|||
uint8_t None5 :8; |
|||
uint8_t None6 :8; |
|||
|
|||
uint8_t None7 :6; |
|||
uint8_t HeartBeat :1; |
|||
uint8_t WireState :1; //8 bit
|
|||
} DHCANopenData0x2E4; |
|||
|
|||
//region 对外数据接口
|
|||
|
|||
extern DH_CAN_Remote *DH_CAN; //对外数据接口
|
|||
extern int32_t *Send_Left_Compensation; |
|||
extern int32_t *Send_Right_Compensation; |
|||
extern int32_t *Send_BackwardDistance; |
|||
extern int32_t *Send_LaneChangeDistance; |
|||
extern int32_t *Send_Swing_Speed; |
|||
extern int32_t *Send_Swing_Angle; |
|||
extern int32_t *Send_Move_Speed; |
|||
extern int32_t *Send_Robot_Angle; |
|||
|
|||
extern int32_t *Robot_Move_Speed; |
|||
|
|||
// Region 对外函数接口
|
|||
|
|||
void DecodeCAN(uint32_t canID, uint8_t *buffer, uint32_t length); |
|||
void SendCANTest(); |
|||
void SendRobtDataToController_0x364(); //Send 换道距离, 0x364
|
|||
void SendRobtDataToController_0x264(); |
|||
int32_t GetMode(DHCANopenData0x2E4 dHCANopenData0x2E4); |
|||
int32_t GetSpeed(DHCANopenData0x2E4 dHCANopenData0x2E4); |
|||
#endif /* INC_MSP_MSP_DC_CAN_SWING_CONTROLLER_H_ */ |
|||
@ -0,0 +1,57 @@ |
|||
/*
|
|||
* msp_DH_Remote_Controller.h |
|||
* |
|||
* Created on: Jul 31, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_DH_REMOTE_CONTROLLER_H_ |
|||
#define INC_MSP_MSP_DH_REMOTE_CONTROLLER_H_ |
|||
|
|||
#include "BHBF_ROBOT.h" |
|||
#include "bsp_include.h" |
|||
//小端存储,和大段存储完全反过来了
|
|||
struct DeChiMoveState |
|||
{ |
|||
uint16_t Emergency_Stop :1; |
|||
uint16_t Wireless_State :1; |
|||
uint16_t Forwards :1; |
|||
uint16_t Backwards :1; |
|||
uint16_t Left_Turn :1; |
|||
uint16_t Right_Turn :1; |
|||
uint16_t Vehicle_Speed1 :1; |
|||
uint16_t Vehicle_Speed2 :1; |
|||
uint16_t Vehicle_Speed3 :1; |
|||
uint16_t Vehicle_Speed4 :1; |
|||
uint16_t Vehicle_Speed5 :1; |
|||
uint16_t Vehicle_Speed6 :1; |
|||
uint16_t Vehicle_Speed7 :1; |
|||
uint16_t Vehicle_Speed8 :1; |
|||
uint16_t Vehicle_Speed9 :1; |
|||
uint16_t Vehicle_Speed10 :1; |
|||
|
|||
}; |
|||
struct DeChiFunctionState |
|||
{ |
|||
uint16_t Task_Start :1; //作业开启
|
|||
uint16_t Task_Stop :1; //作业关闭
|
|||
uint16_t Vertical_Upwards_Change :1; //竖直上换道
|
|||
uint16_t Vertical_Downwards_Change :1; //竖直下换道
|
|||
|
|||
uint16_t Test_Start :1; //测试开始
|
|||
uint16_t Test_Stop :1; //测试停止
|
|||
uint16_t Open :1; //开启
|
|||
uint16_t Close :1; //关闭
|
|||
uint16_t Vehicle_speed10 :8; //没有用,只是为了占一个字节、8个位
|
|||
}; |
|||
|
|||
extern struct DeChiMoveState *DeChiMoveCurrentState; |
|||
extern struct DeChiFunctionState *DeChiFunctionCurrentState; |
|||
|
|||
extern uint16_t De_Chi_For_Back_Wards_Speed; |
|||
extern uint16_t De_Chi_Left_Rigth_Wards_Speed; |
|||
void read_DeChi_Data(void); |
|||
void decode_DeChi(uint8_t *buffer, uint16_t length); |
|||
void set_DeChi_Display(uint16_t Angle, uint16_t Speed); |
|||
|
|||
#endif /* INC_MSP_MSP_DH_REMOTE_CONTROLLER_H_ */ |
|||
@ -0,0 +1,121 @@ |
|||
/*
|
|||
* msp_DH_Roughening.h |
|||
* |
|||
* Created on: Nov 22, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_DH_ROUGHENING_H_ |
|||
#define INC_MSP_MSP_DH_ROUGHENING_H_ |
|||
#include "bsp_include.h" |
|||
|
|||
//typedef struct _DHRoughening
|
|||
//{
|
|||
//
|
|||
// uint16_t Forward_Backward_Speed;
|
|||
// uint16_t Left_Right_Turn_Speed;
|
|||
// uint16_t Left_Compensation;
|
|||
// uint16_t Right_Compensation;
|
|||
|
|||
|
|||
|
|||
// uint16_t Vehicle_Speed3 :1;
|
|||
// uint16_t Vehicle_Speed4 :1;
|
|||
// uint16_t Vehicle_Speed5 :1;
|
|||
// uint16_t Vehicle_Speed6 :1;
|
|||
// uint16_t Vehicle_Speed7 :1;
|
|||
// uint16_t Vehicle_Speed8 :1;
|
|||
// uint16_t Vehicle_Speed9 :1;
|
|||
// uint16_t Vehicle_Speed10 :1;
|
|||
|
|||
// uint16_t Emergency_Stop :1;
|
|||
// uint16_t Wireless_State :1;
|
|||
// uint16_t Forwards :1;
|
|||
// uint16_t Backwards :1;
|
|||
// uint16_t Left_Turn :1;
|
|||
// uint16_t Right_Turn :1;
|
|||
// uint16_t Vehicle_Speed1 :1;
|
|||
// uint16_t Vehicle_Speed2 :1;
|
|||
|
|||
|
|||
|
|||
// uint16_t Roughening_Start :1;//拉毛开启
|
|||
// uint16_t Roughening_Stop :1;//拉毛关闭
|
|||
// uint16_t LaneChangeDistance_0 :1;//换道距离0 -5
|
|||
// uint16_t LaneChangeDistance_1 :1;//
|
|||
// uint16_t LaneChangeDistance_2 :1;//
|
|||
// uint16_t LaneChangeDistance_3 :1;//
|
|||
// uint16_t LaneChangeDistance_4 :1;//
|
|||
// uint16_t LaneChangeDistance_5 :1;//
|
|||
|
|||
// uint16_t Horizontal_Task :1;//水平作业
|
|||
// uint16_t Vertical_Task :1;//竖直作业
|
|||
// uint16_t LaneChange_Up_Left :1;//左上换道
|
|||
// uint16_t LaneChange_Right_Down :1;//右下换道
|
|||
// uint16_t NULL0 :1;//
|
|||
// uint16_t NULL1 :1;//
|
|||
// uint16_t End_Up :1;//前端上升
|
|||
// uint16_t End_Down :1;//前端下降
|
|||
|
|||
//}DHRoughening;
|
|||
|
|||
|
|||
|
|||
|
|||
typedef struct _DHRoughening |
|||
{ |
|||
|
|||
uint16_t Forward_Backward_Speed; |
|||
uint16_t Left_Right_Turn_Speed; |
|||
uint16_t Left_Compensation; |
|||
uint16_t Right_Compensation; |
|||
|
|||
uint16_t Vehicle_Speed3 :1; |
|||
uint16_t Vehicle_Speed4 :1; |
|||
uint16_t Vehicle_Speed5 :1; |
|||
uint16_t Vehicle_Speed6 :1; |
|||
uint16_t Vehicle_Speed7 :1; |
|||
uint16_t Vehicle_Speed8 :1; |
|||
uint16_t Vehicle_Speed9 :1; |
|||
uint16_t Vehicle_Speed10 :1; |
|||
|
|||
uint16_t Emergency_Stop :1; |
|||
uint16_t Wireless_State :1; |
|||
uint16_t Forwards :1; |
|||
uint16_t Backwards :1; |
|||
uint16_t Left_Turn :1; |
|||
uint16_t Right_Turn :1; |
|||
uint16_t Vehicle_Speed1 :1; |
|||
uint16_t Vehicle_Speed2 :1; |
|||
|
|||
uint16_t Roughening_Start :1;//拉毛开启
|
|||
uint16_t Roughening_Stop :1;//拉毛关闭
|
|||
uint16_t NULLValue :6;//换道距离0 -5
|
|||
|
|||
uint16_t Horizontal_Task :1;//水平作业
|
|||
uint16_t Vertical_Task :1;//竖直作业
|
|||
uint16_t LaneChange_Vertical_Up :1;//竖直上换道
|
|||
uint16_t LaneChange_Vertical_Down :1;//竖直下换道
|
|||
uint16_t LaneChange_Horizontal_Left :1;//水平左换道
|
|||
uint16_t LaneChange_Horizontal_Right:1;//水平右左换道
|
|||
uint16_t End_Up :1;//前端上升
|
|||
uint16_t End_Down :1;//前端下降
|
|||
|
|||
|
|||
}DHRoughening; |
|||
|
|||
|
|||
|
|||
extern DHRoughening DHRougheningContrller; |
|||
|
|||
|
|||
void read_DHRoughening_Data(void); |
|||
void decode_DHRoughening(uint8_t *buffer, uint16_t length); |
|||
void set_DHRoughening_Display(uint16_t LeftCompensation, uint16_t RightCompensation, |
|||
uint16_t Angle, uint16_t Speed); |
|||
void send_to_DHRoughening(); |
|||
|
|||
|
|||
int32_t DHRougheningGetSpeed(DHRoughening DHRougheningContrller); |
|||
int32_t DHRougheningGetLaneChangeDistance(DHRoughening DHRougheningContrller); |
|||
#endif /* INC_MSP_MSP_DH_ROUGHENING_H_ */ |
|||
@ -0,0 +1,17 @@ |
|||
/*
|
|||
* msp_DMK_485_Motor.h |
|||
* |
|||
* Created on: Jan 21, 2025 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_DMKE_485_MOTOR_H_ |
|||
#define INC_MSP_MSP_DMKE_485_MOTOR_H_ |
|||
|
|||
#include "BHBF_ROBOT.h" |
|||
#include "bsp_DMKE.pb.h" |
|||
|
|||
extern DMKE_struct_define *DMKE_Motors[3]; |
|||
void DMAKE_intialize(struct UARTHandler *Handler); |
|||
|
|||
#endif /* INC_MSP_MSP_DMKE_485_MOTOR_H_ */ |
|||
@ -0,0 +1,13 @@ |
|||
/*
|
|||
* msp_Force_Sensor.h |
|||
* |
|||
* Created on: Oct 8, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_FORCE_SENSOR_H_ |
|||
#define INC_MSP_MSP_FORCE_SENSOR_H_ |
|||
#include "bsp_MB_host.h" |
|||
extern void force_sensor_intialize(struct UARTHandler *Handler); |
|||
extern int32_t* ForceValue; |
|||
#endif /* INC_MSP_MSP_FORCE_SENSOR_H_ */ |
|||
@ -0,0 +1,15 @@ |
|||
/*
|
|||
* msp_JTBATTERY.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_JTBATTERY_H_ |
|||
#define INC_MSP_MSP_JTBATTERY_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
|
|||
|
|||
#endif /* INC_MSP_MSP_JTBATTERY_H_ */ |
|||
@ -0,0 +1,44 @@ |
|||
/*
|
|||
* msp_LeiSai_ISV2_CAN.h |
|||
* |
|||
* Created on: Oct 22, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_LEISAI_ISV2_CAN_H_ |
|||
#define INC_MSP_MSP_LEISAI_ISV2_CAN_H_ |
|||
|
|||
#include "BHBF_ROBOT.h" |
|||
#include "bsp_FDCAN.h" |
|||
#include "msp_LS_MotorParameters.pb.h" |
|||
|
|||
//extern LS_MotorParameters* LS_Motor[7];
|
|||
extern double wheel_diameter_m; //1m 260mm
|
|||
extern double motor_pulses_rer_rotation; //1 pulse
|
|||
extern double wheel_reduction_ratio; |
|||
extern double wheel_001m_per_min_to_plus_per_s_ratio; |
|||
extern double wheel_plus_per_s_to_m_per_min_ratio; |
|||
|
|||
void LS_Analytic_Fun(int32_t MotorID, uint8_t *buffer); |
|||
void LS_DO_Set(int32_t MotorID, int32_t Do, uint8_t state, FDCANHandler *Motor_Controller, int32_t WaitTime); |
|||
void LS_Request_Position(int32_t MotorID,FDCANHandler *Motor_Controller,int32_t WaitTime); |
|||
void LS_Request_Velocity(int32_t MotorID,FDCANHandler *Motor_Controller,int32_t WaitTime); |
|||
void LS_Request_Torque(int32_t MotorID,FDCANHandler *Motor_Controller,int32_t WaitTime); |
|||
void LS_Request_Fault(int32_t MotorID,FDCANHandler *Motor_Controller,int32_t WaitTime); |
|||
void LS_Reset_All_Motors(FDCANHandler *Motor_Controller, int32_t WaitTime); |
|||
void LS_Activate_All_Motors(FDCANHandler *Motor_Controller, int32_t WaitTime); |
|||
void LS_SpeedModeSetup(int32_t MotorID,FDCANHandler *Motor_Controller,int32_t WaitTime); |
|||
void LS_SpeedMode_Set_TargetSpeed(int32_t MotorID,FDCANHandler *Motor_Controller,int32_t WaitTime,int32_t TargetSpeed); |
|||
void LS_PostionModeSetUp(int32_t MotorID, FDCANHandler *Motor_Controller, int32_t WaitTime); |
|||
void LS_PostionMode_Set_Position(int32_t MotorID, int32_t TargetPosition,FDCANHandler *Motor_Controller,int32_t WaitTime); |
|||
void LS_Set_Current_Positon_Zero(uint8_t MotorID, FDCANHandler *Motor_Controller, int32_t WaitTime); |
|||
void LS_Requese_MotorState(int32_t MotorID, FDCANHandler *Motor_Controller, |
|||
int32_t WaitTime); |
|||
void LS_Requese_IOstate(int32_t MotorID, FDCANHandler *Motor_Controller, |
|||
int32_t WaitTime); |
|||
void LS_PositionMode_Start_Move(int32_t MotorID, |
|||
FDCANHandler *Motor_Controller, int32_t WaitTime); |
|||
void LS_PositonMode_Set_TargetSpeed_And_Position(int32_t MotorID, |
|||
FDCANHandler *Motor_Controller, int32_t WaitTime, |
|||
int32_t TargetSpeed, int32_t TargetPosition); |
|||
#endif /* INC_MSP_MSP_LEISAI_ISV2_CAN_H_ */ |
|||
@ -0,0 +1,21 @@ |
|||
/*
|
|||
* msp_MK32_1.h |
|||
* |
|||
* Created on: Oct 8, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
|
|||
|
|||
#ifndef INC_MSP_MSP_MK32_1_H_ |
|||
#define INC_MSP_MSP_MK32_1_H_ |
|||
#include "bsp_UART.h" |
|||
#include "msp_MK32.pb.h" |
|||
|
|||
extern SP_MSP_MK32_Button *P_MK32; |
|||
|
|||
void Sbus_Data_Count(uint8_t *buf, int32_t *But_Value); |
|||
extern SP_MSP_MK32_Button *P_MK32; |
|||
//
|
|||
void MK32_Sbus_UART_Handler_intialize(struct UARTHandler* Handler); |
|||
#endif /* INC_MSP_MSP_MK32_1_H_ */ |
|||
@ -0,0 +1,33 @@ |
|||
/*
|
|||
* msp_OBD.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
* 主要功能: |
|||
* 1.配置跳转进入bootloader |
|||
* 2.周期性上传GV |
|||
* ——每2ms上传一帧报文 |
|||
* ——循环上传报文 |
|||
* 3.配置GV上传选项 |
|||
* ——可选择上传那一个元素 |
|||
* ——默认不上传 |
|||
* 4.设置CV的值 |
|||
* 5.读取CV的值 |
|||
* 6.配置CV的值更新入EEPROM |
|||
* 7.CV的值存入EEPROM |
|||
* 8.从EEPROM读取CV的值 |
|||
* ——在GF_MSP_OBD_Init()中执行读取更新 |
|||
* |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_OBD_H_ |
|||
#define INC_MSP_MSP_OBD_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
uint8_t GF_MSP_OBD_Init(uint8_t FDCAN_CH); |
|||
|
|||
void GF_MSP_OBD_Rx_CallBack(); |
|||
void GF_MSP_OBD_Run_Timer(void); |
|||
|
|||
#endif /* INC_MSP_MSP_OBD_H_ */ |
|||
@ -0,0 +1,27 @@ |
|||
/*
|
|||
* msp_PID.h |
|||
* |
|||
* Created on: 2024年1月22日 |
|||
* Author: Administrator |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_PID_H_ |
|||
#define INC_MSP_MSP_PID_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
void GF_MSP_Auto_Motion_adj(double Current_Angle, double Auto_Speed, double Auto_Speed_Max, double System_time ,double *W_Speed_1); |
|||
void GF_MSP_Auto_adj_Unicycle(double Current_Angle_11,double Desire_Angle_11, double Auto_Speed, double Auto_Speed_Max, double System_time ,double *W_Speed_1); |
|||
void GF_MSP_Auto_Motion_adj_Com(double Current_Angle, double Horizontal_Compen_Angle ,double Auto_Speed, double Auto_Speed_Max, double System_time ,double *W_Speed_1); |
|||
|
|||
void GF_MSP_PID_Now_Der_adj_Com(double Current_Angle,double Desire_Angle_Input, double Auto_Speed, double Auto_Speed_Max, double System_time ,double *W_Speed_1); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
int Angle_Tune_PID(float CurrentAngle, float TargetAngle, int Position_KP, |
|||
int Position_KI, int Position_KD, int MaxValue); |
|||
|
|||
#endif /* INC_MSP_MSP_PID_H_ */ |
|||
@ -0,0 +1,32 @@ |
|||
/*
|
|||
* bsp_steering_engine.h |
|||
* |
|||
* Created on: Jul 29, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_STEERING_ENGINE_H_ |
|||
#define INC_MSP_MSP_STEERING_ENGINE_H_ |
|||
|
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include "bsp_MB_host.h" |
|||
#include "stdio.h" |
|||
#include "bsp_UART.h" |
|||
#include "usart.h" |
|||
#include "gpio.h" |
|||
|
|||
|
|||
extern int32_t* Desulfurizer_Steering_Set_Speed; |
|||
extern int32_t* Desulfurizer_Steering_Angle; |
|||
extern int32_t* Desulfurizer_Steering_Current; |
|||
extern int32_t* Desulfurizer_Steering_Real_Angle; |
|||
|
|||
void setSteeringRobotProtectionMode(); |
|||
|
|||
void read_steering_Angle(); |
|||
void steering_set_angle(); |
|||
//FSUS_STATUS FSUS_ReadData(uint8_t servo_id, uint8_t address, uint8_t *sendbytes, uint8_t *length);
|
|||
void read_steering_current(); |
|||
void decode_steering_angle(uint8_t *buffer, uint16_t length); |
|||
#endif /* INC_MSP_MSP_STEERING_ENGINE_H_ */ |
|||
@ -0,0 +1,62 @@ |
|||
/*
|
|||
* msp_TI5MOTOR.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
* |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_TI5MOTOR_H_ |
|||
#define INC_MSP_MSP_TI5MOTOR_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
#include "msp_Motor.pb.h" |
|||
#define DF_MSP_Ti5Motor_PositionMode 44 |
|||
#define DF_MSP_Ti5Motor_SpeedMode 43 |
|||
#define DF_MSP_Ti5Motor_CurrentMode 42 |
|||
#define DF_MSP_Ti5Motor_State_Read 41 |
|||
|
|||
|
|||
void DecodeTi5MotorCAN(uint32_t canID, uint8_t *buffer, uint32_t length); |
|||
|
|||
extern int32_t Function_code; |
|||
//电机的ID必须是连续的,第一个电机ID需要在此定义
|
|||
#define DF_MSP_Ti5Motor_StartID 0 |
|||
//#define DF_MSP_Ti5Motor_StartID 1
|
|||
//需要将此函数放置到对应的CAN接收中断函数中
|
|||
void GF_MSP_Ti5Motor_CANRx_Callback(); |
|||
|
|||
//需要每间隔2ms执行一次
|
|||
void GF_MSP_Ti5Motor_Control_Timer(); |
|||
|
|||
//void GF_Tis_Control_Single();
|
|||
void GF_MSP_Ti5Motor_Error_Clean(); |
|||
|
|||
|
|||
//uint8_t Motor_Control_Motor_Index;
|
|||
//uint8_t Motor_Control_State;
|
|||
//
|
|||
|
|||
void FiveByteCommand(int8_t MotorID, uint8_t command, int32_t content,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
void OneByteCommand(int8_t MotorID, uint8_t command,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
|
|||
void Motor_Stop(uint8_t id,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
void Motor_ClearFault(uint8_t id,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
void Motor_SetVelocityModeAndTargetVelocity(uint8_t id, int32_t targetSpeed,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
void MotorSpeedSetup(); |
|||
void Motor_GetFaultState(uint8_t id,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
void GetCSPByCommand(uint8_t id,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
//void Ti5_Motor_Controller_intialize(FDCANHandler *Handler);
|
|||
|
|||
void SetMaximumAllowablePositiveVelocity(uint8_t id, int32_t maxSpeed,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
|
|||
void SetMinimumAllowableNegativeVelocity(uint8_t id, int32_t minmaxSpeed,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
|
|||
void SetMaximumPositivePosition(uint8_t id, int32_t position,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
/// <summary>
|
|||
/// 获取最小负向位置 减速机角度为:(返回值/65536/减速比)*360<
|
|||
/// </summary>
|
|||
void SetCurrentModeAndTargetCurent(uint8_t id, int32_t targetCurrent,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
void SetMinimumNegativePosition(uint8_t id, int32_t position,FDCANHandler *Ti5_Motor_Controller,int WaitTime); |
|||
|
|||
#endif /* INC_MSP_MSP_TI5MOTOR_H_ */ |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue