基于正点原子战舰开发板STM32F103ZET6。
step1
跳转到“step1”安装cubemx软件,在home界面,根据提示选择安装这款芯片的包。
然后,File——New Project——选择对应型号,双击创建。

step2
跳转到“step2”在Clock Configuration 页面,直接设置成72。

接下来,选择使用源,石英/陶瓷晶振。
接下来,根据需要配置相应外设。如GPIO、Analog、Timers、通信协议等。可以结合开发板原理图,查找接口设计情况,直接点击右侧芯片引脚,进行配置。

| 参数名称 | 描述 | 配置选项或说明 |
|---|---|---|
| GPIO output level | GPIO 配置为输出模式时的默认电平状态。 | 高电平 / 低电平 |
| GPIO mode | GPIO 的工作模式。 | 输入(Input)、推挽输出(Output Push Pull)、开漏输出(Output Open Drain)等 |
| GPIO Pull-up/Pull-down | 内部上拉或下拉电阻配置。 | 上拉(Pull-up)、下拉(Pull-down)、无上拉下拉(No pull) |
| Maximum output speed | GPIO 输出的最大速度或驱动电路响应速度。 | 低速(Low)、中速(Medium)、高速(High)、非常高(Very High) |
| User Label | 用户自定义标签,用于标识 GPIO 端口的用途。 | 例如:LED、Button 等,提高代码可读性。 |
step3
跳转到“step3”完成配置后,点击Project Manager,设置名称,保存路径,编译工具链等。
配置代码生成,然后点击GENERATE CODE:
得到如下文件:
确保 已经配置 交叉编译工具后,在终端输入make -j4:

C:\Users\28581_000\Desktop\test\test>make -j4mkdir buildarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/main.d" -Wa,-a,-ad,-alms=build/main.lst Core/Src/main.c -o build/main.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/gpio.d" -Wa,-a,-ad,-alms=build/gpio.lst Core/Src/gpio.c -o build/gpio.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_it.d" -Wa,-a,-ad,-alms=build/stm32f1xx_it.lst Core/Src/stm32f1xx_it.c -o build/stm32f1xx_it.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_msp.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_msp.lst Core/Src/stm32f1xx_hal_msp.c -o build/stm32f1xx_hal_msp.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_gpio_ex.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_gpio_ex.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c -o build/stm32f1xx_hal_gpio_ex.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_tim.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_tim.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c -o build/stm32f1xx_hal_tim.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_tim_ex.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_tim_ex.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c -o build/stm32f1xx_hal_tim_ex.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c -o build/stm32f1xx_hal.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_rcc.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_rcc.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c -o build/stm32f1xx_hal_rcc.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_rcc_ex.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_rcc_ex.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c -o build/stm32f1xx_hal_rcc_ex.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_gpio.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_gpio.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c -o build/stm32f1xx_hal_gpio.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_dma.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_dma.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c -o build/stm32f1xx_hal_dma.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_cortex.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_cortex.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c -o build/stm32f1xx_hal_cortex.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_pwr.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_pwr.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c -o build/stm32f1xx_hal_pwr.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_flash.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_flash.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c -o build/stm32f1xx_hal_flash.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_flash_ex.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_flash_ex.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c -o build/stm32f1xx_hal_flash_ex.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/stm32f1xx_hal_exti.d" -Wa,-a,-ad,-alms=build/stm32f1xx_hal_exti.lst Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c -o build/stm32f1xx_hal_exti.oarm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/system_stm32f1xx.d" -Wa,-a,-ad,-alms=build/system_stm32f1xx.lst Core/Src/system_stm32f1xx.c -o build/system_stm32f1xx.oarm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m3 -mthumb -DUSE_HAL_DRIVER -DSTM32F103xE -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/startup_stm32f103xe.d" startup_stm32f103xe.s -o build/startup_stm32f103xe.oarm-none-eabi-gcc build/main.o build/gpio.o build/stm32f1xx_it.o build/stm32f1xx_hal_msp.o build/stm32f1xx_hal_gpio_ex.o build/stm32f1xx_hal_tim.o build/stm32f1xx_hal_tim_ex.o build/stm32f1xx_hal.o build/stm32f1xx_hal_rcc.o build/stm32f1xx_hal_rcc_ex.o build/stm32f1xx_hal_gpio.o build/stm32f1xx_hal_dma.o build/stm32f1xx_hal_cortex.o build/stm32f1xx_hal_pwr.o build/stm32f1xx_hal_flash.o build/stm32f1xx_hal_flash_ex.o build/stm32f1xx_hal_exti.o build/system_stm32f1xx.o build/startup_stm32f103xe.o -mcpu=cortex-m3 -mthumb -specs=nano.specs -TSTM32F103ZETx_FLASH.ld -lc -lm -lnosys -Wl,-Map=build/test.map,--cref -Wl,--gc-sections -o build/test.elfD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp\libc_nano.a(libc_a-closer.o): in function `_close_r':closer.c:(.text._close_r+0xc): warning: _close is not implemented and will always failD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp\libc_nano.a(libc_a-closer.o): note: the message above does not take linker garbage collection into accountD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp\libc_nano.a(libc_a-lseekr.o): in function `_lseek_r':lseekr.c:(.text._lseek_r+0x10): warning: _lseek is not implemented and will always failD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp\libc_nano.a(libc_a-lseekr.o): note: the message above does not take linker garbage collection into accountD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp\libc_nano.a(libc_a-readr.o): in function `_read_r':readr.c:(.text._read_r+0x10): warning: _read is not implemented and will always failD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp\libc_nano.a(libc_a-readr.o): note: the message above does not take linker garbage collection into accountD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp\libc_nano.a(libc_a-writer.o): in function `_write_r':writer.c:(.text._write_r+0x10): warning: _write is not implemented and will always failD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp\libc_nano.a(libc_a-writer.o): note: the message above does not take linker garbage collection into accountD:/program/gnu-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: build/test.elf has a LOAD segment with RWX permissionsarm-none-eabi-size build/test.elf text data bss dec hex filename 3616 20 1572 5208 1458 build/test.elfarm-none-eabi-objcopy -O ihex build/test.elf build/test.hexarm-none-eabi-objcopy -O binary -S build/test.elf build/test.bin接着,可以用烧录工具(如openocd)将编译的.hex文件烧录到开发板。
Makefile
########################################################################################################################### File automatically-generated by tool: [projectgenerator] version: [3.14.1] date: [Sat Aug 17 10:17:14 CST 2024]##########################################################################################################################
# ------------------------------------------------# Generic Makefile (based on gcc)## ChangeLog :# 2017-02-10 - Several enhancements + project update mode# 2015-07-22 - first version# ------------------------------------------------
####################################### target######################################TARGET = test
####################################### building variables####################################### debug build?DEBUG = 1# optimizationOPT = -Og
######################################## paths######################################## Build pathBUILD_DIR = build
####################################### source####################################### C sourcesC_SOURCES = \Core/Src/main.c \Core/Src/gpio.c \Core/Src/stm32f1xx_it.c \Core/Src/stm32f1xx_hal_msp.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \Core/Src/system_stm32f1xx.c
# ASM sourcesASM_SOURCES = \startup_stm32f103xe.s
######################################## binaries#######################################PREFIX = arm-none-eabi-# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)# either it can be added to the PATH environment variable.ifdef GCC_PATHCC = $(GCC_PATH)/$(PREFIX)gccAS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cppCP = $(GCC_PATH)/$(PREFIX)objcopySZ = $(GCC_PATH)/$(PREFIX)sizeelseCC = $(PREFIX)gccAS = $(PREFIX)gcc -x assembler-with-cppCP = $(PREFIX)objcopySZ = $(PREFIX)sizeendifHEX = $(CP) -O ihexBIN = $(CP) -O binary -S
######################################## CFLAGS######################################## cpuCPU = -mcpu=cortex-m3
# fpu# NONE for Cortex-M0/M0+/M3
# float-abi
# mcuMCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)
# macros for gcc# AS definesAS_DEFS =
# C definesC_DEFS = \-DUSE_HAL_DRIVER \-DSTM32F103xE
# AS includesAS_INCLUDES =
# C includesC_INCLUDES = \-ICore/Inc \-IDrivers/STM32F1xx_HAL_Driver/Inc \-IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy \-IDrivers/CMSIS/Device/ST/STM32F1xx/Include \-IDrivers/CMSIS/Include
# compile gcc flagsASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
ifeq ($(DEBUG), 1)CFLAGS += -g -gdwarf-2endif
# Generate dependency informationCFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
######################################## LDFLAGS######################################## link scriptLDSCRIPT = STM32F103ZETx_FLASH.ld
# librariesLIBS = -lc -lm -lnosysLIBDIR =LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
# default action: build allall: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
######################################## build the application######################################## list of objectsOBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))vpath %.c $(sort $(dir $(C_SOURCES)))# list of ASM program objectsOBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))vpath %.s $(sort $(dir $(ASM_SOURCES)))
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) $(AS) -c $(CFLAGS) $< -o $@
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile $(CC) $(OBJECTS) $(LDFLAGS) -o $@ $(SZ) $@
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) $(HEX) $< $@
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) $(BIN) $< $@
$(BUILD_DIR): mkdir $@
######################################## clean up#######################################clean: -rm -fR $(BUILD_DIR)
######################################## dependencies#######################################-include $(wildcard $(BUILD_DIR)/*.d)
# *** EOF ***STM32F103ZETx_FLASH.ld
/*********************************************************************************
** File : LinkerScript.ld**** Author : Auto-generated by System Workbench for STM32**** Abstract : Linker script for STM32F103ZETx series** 512Kbytes FLASH and 64Kbytes RAM**** Set heap size, stack size and stack location according** to application requirements.**** Set memory bank area and size if external memory is used.**** Target : STMicroelectronics STM32**** Distribution: The file is distributed “as is,” without any warranty** of any kind.********************************************************************************* @attention**** <h2><center>© COPYRIGHT(c) 2019 STMicroelectronics</center></h2>**** Redistribution and use in source and binary forms, with or without modification,** are permitted provided that the following conditions are met:** 1. Redistributions of source code must retain the above copyright notice,** this list of conditions and the following disclaimer.** 2. Redistributions in binary form must reproduce the above copyright notice,** this list of conditions and the following disclaimer in the documentation** and/or other materials provided with the distribution.** 3. Neither the name of STMicroelectronics nor the names of its contributors** may be used to endorse or promote products derived from this software** without specific prior written permission.**** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.********************************************************************************/
/* Entry Point */ENTRY(Reset_Handler)
/* Highest address of the user mode stack */_estack = 0x20010000; /* end of RAM *//* Generate a link error if heap and stack don't fit into RAM */_Min_Heap_Size = 0x200; /* required amount of heap */_Min_Stack_Size = 0x400; /* required amount of stack */
/* Specify the memory areas */MEMORY{RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64KFLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K}
/* Define output sections */SECTIONS{ /* The startup code goes first into FLASH */ .isr_vector : { . = ALIGN(4); KEEP(*(.isr_vector)) /* Startup code */ . = ALIGN(4); } >FLASH
/* The program code and other data goes into FLASH */ .text : { . = ALIGN(4); *(.text) /* .text sections (code) */ *(.text*) /* .text* sections (code) */ *(.glue_7) /* glue arm to thumb code */ *(.glue_7t) /* glue thumb to arm code */ *(.eh_frame)
KEEP (*(.init)) KEEP (*(.fini))
. = ALIGN(4); _etext = .; /* define a global symbols at end of code */ } >FLASH
/* Constant data goes into FLASH */ .rodata : { . = ALIGN(4); *(.rodata) /* .rodata sections (constants, strings, etc.) */ *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ . = ALIGN(4); } >FLASH
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH .ARM : { __exidx_start = .; *(.ARM.exidx*) __exidx_end = .; } >FLASH
.preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array*)) PROVIDE_HIDDEN (__preinit_array_end = .); } >FLASH .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array*)) PROVIDE_HIDDEN (__init_array_end = .); } >FLASH .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array*)) PROVIDE_HIDDEN (__fini_array_end = .); } >FLASH
/* used by the startup to initialize data */ _sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */ .data : { . = ALIGN(4); _sdata = .; /* create a global symbol at data start */ *(.data) /* .data sections */ *(.data*) /* .data* sections */
. = ALIGN(4); _edata = .; /* define a global symbol at data end */ } >RAM AT> FLASH
/* Uninitialized data section */ . = ALIGN(4); .bss : { /* This is used by the startup in order to initialize the .bss secion */ _sbss = .; /* define a global symbol at bss start */ __bss_start__ = _sbss; *(.bss) *(.bss*) *(COMMON)
. = ALIGN(4); _ebss = .; /* define a global symbol at bss end */ __bss_end__ = _ebss; } >RAM
/* User_heap_stack section, used to check that there is enough RAM left */ ._user_heap_stack : { . = ALIGN(8); PROVIDE ( end = . ); PROVIDE ( _end = . ); . = . + _Min_Heap_Size; . = . + _Min_Stack_Size; . = ALIGN(8); } >RAM
/* Remove information from the standard libraries */ /DISCARD/ : { libc.a ( * ) libm.a ( * ) libgcc.a ( * ) }
.ARM.attributes 0 : { *(.ARM.attributes) }}startup_stm32f103xe.s
/** *************** (C) COPYRIGHT 2017 STMicroelectronics ************************ * @file startup_stm32f103xe.s * @author MCD Application Team * @brief STM32F103xE Devices vector table for Atollic toolchain. * This module performs: * - Set the initial SP * - Set the initial PC == Reset_Handler, * - Set the vector table entries with the exceptions ISR address * - Configure the clock system * - Configure external SRAM mounted on STM3210E-EVAL board * to be used as data memory (optional, to be enabled by user) * - Branches to main in the C library (which eventually * calls main()). * After Reset the Cortex-M3 processor is in Thread mode, * priority is Privileged, and the Stack is set to Main. ****************************************************************************** * @attention * * Copyright (c) 2017-2021 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */
.syntax unified .cpu cortex-m3 .fpu softvfp .thumb
.global g_pfnVectors.global Default_Handler
/* start address for the initialization values of the .data section.defined in linker script */.word _sidata/* start address for the .data section. defined in linker script */.word _sdata/* end address for the .data section. defined in linker script */.word _edata/* start address for the .bss section. defined in linker script */.word _sbss/* end address for the .bss section. defined in linker script */.word _ebss
.equ BootRAM, 0xF1E0F85F/** * @brief This is the code that gets called when the processor first * starts execution following a reset event. Only the absolutely * necessary set is performed, after which the application * supplied main() routine is called. * @param None * @retval : None*/
.section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %functionReset_Handler:
/* Call the clock system initialization function.*/ bl SystemInit
/* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata ldr r1, =_edata ldr r2, =_sidata movs r3, #0 b LoopCopyDataInit
CopyDataInit: ldr r4, [r2, r3] str r4, [r0, r3] adds r3, r3, #4
LoopCopyDataInit: adds r4, r0, r3 cmp r4, r1 bcc CopyDataInit
/* Zero fill the bss segment. */ ldr r2, =_sbss ldr r4, =_ebss movs r3, #0 b LoopFillZerobss
FillZerobss: str r3, [r2] adds r2, r2, #4
LoopFillZerobss: cmp r2, r4 bcc FillZerobss
/* Call static constructors */ bl __libc_init_array/* Call the application's entry point.*/ bl main bx lr.size Reset_Handler, .-Reset_Handler
/** * @brief This is the code that gets called when the processor receives an * unexpected interrupt. This simply enters an infinite loop, preserving * the system state for examination by a debugger. * * @param None * @retval : None*/ .section .text.Default_Handler,"ax",%progbitsDefault_Handler:Infinite_Loop: b Infinite_Loop .size Default_Handler, .-Default_Handler/******************************************************************************** The minimal vector table for a Cortex M3. Note that the proper constructs* must be placed on this to ensure that it ends up at physical address* 0x0000.0000.*******************************************************************************/ .section .isr_vector,"a",%progbits .type g_pfnVectors, %object .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack .word Reset_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler .word 0 .word 0 .word 0 .word 0 .word SVC_Handler .word DebugMon_Handler .word 0 .word PendSV_Handler .word SysTick_Handler .word WWDG_IRQHandler .word PVD_IRQHandler .word TAMPER_IRQHandler .word RTC_IRQHandler .word FLASH_IRQHandler .word RCC_IRQHandler .word EXTI0_IRQHandler .word EXTI1_IRQHandler .word EXTI2_IRQHandler .word EXTI3_IRQHandler .word EXTI4_IRQHandler .word DMA1_Channel1_IRQHandler .word DMA1_Channel2_IRQHandler .word DMA1_Channel3_IRQHandler .word DMA1_Channel4_IRQHandler .word DMA1_Channel5_IRQHandler .word DMA1_Channel6_IRQHandler .word DMA1_Channel7_IRQHandler .word ADC1_2_IRQHandler .word USB_HP_CAN1_TX_IRQHandler .word USB_LP_CAN1_RX0_IRQHandler .word CAN1_RX1_IRQHandler .word CAN1_SCE_IRQHandler .word EXTI9_5_IRQHandler .word TIM1_BRK_IRQHandler .word TIM1_UP_IRQHandler .word TIM1_TRG_COM_IRQHandler .word TIM1_CC_IRQHandler .word TIM2_IRQHandler .word TIM3_IRQHandler .word TIM4_IRQHandler .word I2C1_EV_IRQHandler .word I2C1_ER_IRQHandler .word I2C2_EV_IRQHandler .word I2C2_ER_IRQHandler .word SPI1_IRQHandler .word SPI2_IRQHandler .word USART1_IRQHandler .word USART2_IRQHandler .word USART3_IRQHandler .word EXTI15_10_IRQHandler .word RTC_Alarm_IRQHandler .word USBWakeUp_IRQHandler .word TIM8_BRK_IRQHandler .word TIM8_UP_IRQHandler .word TIM8_TRG_COM_IRQHandler .word TIM8_CC_IRQHandler .word ADC3_IRQHandler .word FSMC_IRQHandler .word SDIO_IRQHandler .word TIM5_IRQHandler .word SPI3_IRQHandler .word UART4_IRQHandler .word UART5_IRQHandler .word TIM6_IRQHandler .word TIM7_IRQHandler .word DMA2_Channel1_IRQHandler .word DMA2_Channel2_IRQHandler .word DMA2_Channel3_IRQHandler .word DMA2_Channel4_5_IRQHandler .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word 0 .word BootRAM /* @0x1E0. This is for boot in RAM mode for STM32F10x High Density devices. */
/********************************************************************************* Provide weak aliases for each Exception handler to the Default_Handler.* As they are weak aliases, any function with the same name will override* this definition.********************************************************************************/
.weak NMI_Handler .thumb_set NMI_Handler,Default_Handler
.weak HardFault_Handler .thumb_set HardFault_Handler,Default_Handler
.weak MemManage_Handler .thumb_set MemManage_Handler,Default_Handler
.weak BusFault_Handler .thumb_set BusFault_Handler,Default_Handler
.weak UsageFault_Handler .thumb_set UsageFault_Handler,Default_Handler
.weak SVC_Handler .thumb_set SVC_Handler,Default_Handler
.weak DebugMon_Handler .thumb_set DebugMon_Handler,Default_Handler
.weak PendSV_Handler .thumb_set PendSV_Handler,Default_Handler
.weak SysTick_Handler .thumb_set SysTick_Handler,Default_Handler
.weak WWDG_IRQHandler .thumb_set WWDG_IRQHandler,Default_Handler
.weak PVD_IRQHandler .thumb_set PVD_IRQHandler,Default_Handler
.weak TAMPER_IRQHandler .thumb_set TAMPER_IRQHandler,Default_Handler
.weak RTC_IRQHandler .thumb_set RTC_IRQHandler,Default_Handler
.weak FLASH_IRQHandler .thumb_set FLASH_IRQHandler,Default_Handler
.weak RCC_IRQHandler .thumb_set RCC_IRQHandler,Default_Handler
.weak EXTI0_IRQHandler .thumb_set EXTI0_IRQHandler,Default_Handler
.weak EXTI1_IRQHandler .thumb_set EXTI1_IRQHandler,Default_Handler
.weak EXTI2_IRQHandler .thumb_set EXTI2_IRQHandler,Default_Handler
.weak EXTI3_IRQHandler .thumb_set EXTI3_IRQHandler,Default_Handler
.weak EXTI4_IRQHandler .thumb_set EXTI4_IRQHandler,Default_Handler
.weak DMA1_Channel1_IRQHandler .thumb_set DMA1_Channel1_IRQHandler,Default_Handler
.weak DMA1_Channel2_IRQHandler .thumb_set DMA1_Channel2_IRQHandler,Default_Handler
.weak DMA1_Channel3_IRQHandler .thumb_set DMA1_Channel3_IRQHandler,Default_Handler
.weak DMA1_Channel4_IRQHandler .thumb_set DMA1_Channel4_IRQHandler,Default_Handler
.weak DMA1_Channel5_IRQHandler .thumb_set DMA1_Channel5_IRQHandler,Default_Handler
.weak DMA1_Channel6_IRQHandler .thumb_set DMA1_Channel6_IRQHandler,Default_Handler
.weak DMA1_Channel7_IRQHandler .thumb_set DMA1_Channel7_IRQHandler,Default_Handler
.weak ADC1_2_IRQHandler .thumb_set ADC1_2_IRQHandler,Default_Handler
.weak USB_HP_CAN1_TX_IRQHandler .thumb_set USB_HP_CAN1_TX_IRQHandler,Default_Handler
.weak USB_LP_CAN1_RX0_IRQHandler .thumb_set USB_LP_CAN1_RX0_IRQHandler,Default_Handler
.weak CAN1_RX1_IRQHandler .thumb_set CAN1_RX1_IRQHandler,Default_Handler
.weak CAN1_SCE_IRQHandler .thumb_set CAN1_SCE_IRQHandler,Default_Handler
.weak EXTI9_5_IRQHandler .thumb_set EXTI9_5_IRQHandler,Default_Handler
.weak TIM1_BRK_IRQHandler .thumb_set TIM1_BRK_IRQHandler,Default_Handler
.weak TIM1_UP_IRQHandler .thumb_set TIM1_UP_IRQHandler,Default_Handler
.weak TIM1_TRG_COM_IRQHandler .thumb_set TIM1_TRG_COM_IRQHandler,Default_Handler
.weak TIM1_CC_IRQHandler .thumb_set TIM1_CC_IRQHandler,Default_Handler
.weak TIM2_IRQHandler .thumb_set TIM2_IRQHandler,Default_Handler
.weak TIM3_IRQHandler .thumb_set TIM3_IRQHandler,Default_Handler
.weak TIM4_IRQHandler .thumb_set TIM4_IRQHandler,Default_Handler
.weak I2C1_EV_IRQHandler .thumb_set I2C1_EV_IRQHandler,Default_Handler
.weak I2C1_ER_IRQHandler .thumb_set I2C1_ER_IRQHandler,Default_Handler
.weak I2C2_EV_IRQHandler .thumb_set I2C2_EV_IRQHandler,Default_Handler
.weak I2C2_ER_IRQHandler .thumb_set I2C2_ER_IRQHandler,Default_Handler
.weak SPI1_IRQHandler .thumb_set SPI1_IRQHandler,Default_Handler
.weak SPI2_IRQHandler .thumb_set SPI2_IRQHandler,Default_Handler
.weak USART1_IRQHandler .thumb_set USART1_IRQHandler,Default_Handler
.weak USART2_IRQHandler .thumb_set USART2_IRQHandler,Default_Handler
.weak USART3_IRQHandler .thumb_set USART3_IRQHandler,Default_Handler
.weak EXTI15_10_IRQHandler .thumb_set EXTI15_10_IRQHandler,Default_Handler
.weak RTC_Alarm_IRQHandler .thumb_set RTC_Alarm_IRQHandler,Default_Handler
.weak USBWakeUp_IRQHandler .thumb_set USBWakeUp_IRQHandler,Default_Handler
.weak TIM8_BRK_IRQHandler .thumb_set TIM8_BRK_IRQHandler,Default_Handler
.weak TIM8_UP_IRQHandler .thumb_set TIM8_UP_IRQHandler,Default_Handler
.weak TIM8_TRG_COM_IRQHandler .thumb_set TIM8_TRG_COM_IRQHandler,Default_Handler
.weak TIM8_CC_IRQHandler .thumb_set TIM8_CC_IRQHandler,Default_Handler
.weak ADC3_IRQHandler .thumb_set ADC3_IRQHandler,Default_Handler
.weak FSMC_IRQHandler .thumb_set FSMC_IRQHandler,Default_Handler
.weak SDIO_IRQHandler .thumb_set SDIO_IRQHandler,Default_Handler
.weak TIM5_IRQHandler .thumb_set TIM5_IRQHandler,Default_Handler
.weak SPI3_IRQHandler .thumb_set SPI3_IRQHandler,Default_Handler
.weak UART4_IRQHandler .thumb_set UART4_IRQHandler,Default_Handler
.weak UART5_IRQHandler .thumb_set UART5_IRQHandler,Default_Handler
.weak TIM6_IRQHandler .thumb_set TIM6_IRQHandler,Default_Handler
.weak TIM7_IRQHandler .thumb_set TIM7_IRQHandler,Default_Handler
.weak DMA2_Channel1_IRQHandler .thumb_set DMA2_Channel1_IRQHandler,Default_Handler
.weak DMA2_Channel2_IRQHandler .thumb_set DMA2_Channel2_IRQHandler,Default_Handler
.weak DMA2_Channel3_IRQHandler .thumb_set DMA2_Channel3_IRQHandler,Default_Handler
.weak DMA2_Channel4_5_IRQHandler .thumb_set DMA2_Channel4_5_IRQHandler,Default_HandlerDrivers tree
| 文件夹名称 | 描述 |
|---|---|
| Core | Cortex-M 处理器的核心外设访问函数和启动代码。 |
| Core_A | Cortex-A 系列处理器相关文件,不同于 Cortex-M。 |
| DSP | 数字信号处理库,包含各种 DSP 函数。 |
| Device | 特定 ARM Cortex-M 微控制器系列的启动代码和系统初始化代码。 |
| Include | 公共头文件,被多个 CMSIS 组件使用。 |
| LICENSE.txt | CMSIS 软件的许可协议文件。 |
| Lib | 编译好的库文件,供项目链接使用。 |
| NN | 神经网络库,用于加速机器学习和人工智能应用中的运算。 |
| RTOS | 实时操作系统(RTOS)接口。 |
| RTOS2 | CMSIS-RTOS API 第二版,提供标准化的 RTOS 访问 API。 |
| docs | CMSIS 的文档,包括 PDF 或 HTML 格式的帮助和指南。 |
C:\USERS\28581_000\DESKTOP\TEST\TEST\DRIVERS├─CMSIS│ │ LICENSE.txt│ ││ ├─Core│ │ ├─Include│ │ │ cmsis_armcc.h│ │ │ cmsis_armclang.h│ │ │ cmsis_compiler.h│ │ │ cmsis_gcc.h│ │ │ cmsis_iccarm.h│ │ │ cmsis_version.h│ │ │ core_armv8mbl.h│ │ │ core_armv8mml.h│ │ │ core_cm0.h│ │ │ core_cm0plus.h│ │ │ core_cm1.h│ │ │ core_cm23.h│ │ │ core_cm3.h│ │ │ core_cm33.h│ │ │ core_cm4.h│ │ │ core_cm7.h│ │ │ core_sc000.h│ │ │ core_sc300.h│ │ │ mpu_armv7.h│ │ │ mpu_armv8.h│ │ │ tz_context.h│ │ ││ │ └─Template│ │ └─ARMv8-M│ │ main_s.c│ │ tz_context.c│ ││ ├─Core_A│ │ ├─Include│ │ │ cmsis_armcc.h│ │ │ cmsis_armclang.h│ │ │ cmsis_compiler.h│ │ │ cmsis_cp15.h│ │ │ cmsis_gcc.h│ │ │ cmsis_iccarm.h│ │ │ core_ca.h│ │ │ irq_ctrl.h│ │ ││ │ └─Source│ │ irq_ctrl_gic.c│ ││ ├─Device│ │ └─ST│ │ └─STM32F1xx│ │ │ LICENSE.txt│ │ ││ │ ├─Include│ │ │ stm32f100xb.h│ │ │ stm32f100xe.h│ │ │ stm32f101x6.h│ │ │ stm32f101xb.h│ │ │ stm32f101xe.h│ │ │ stm32f101xg.h│ │ │ stm32f102x6.h│ │ │ stm32f102xb.h│ │ │ stm32f103x6.h│ │ │ stm32f103xb.h│ │ │ stm32f103xe.h│ │ │ stm32f103xg.h│ │ │ stm32f105xc.h│ │ │ stm32f107xc.h│ │ │ stm32f1xx.h│ │ │ system_stm32f1xx.h│ │ ││ │ └─Source│ │ └─Templates│ │ │ system_stm32f1xx.c│ │ ││ │ ├─arm│ │ │ startup_stm32f100xb.s│ │ │ startup_stm32f100xe.s│ │ │ startup_stm32f101x6.s│ │ │ startup_stm32f101xb.s│ │ │ startup_stm32f101xe.s│ │ │ startup_stm32f101xg.s│ │ │ startup_stm32f102x6.s│ │ │ startup_stm32f102xb.s│ │ │ startup_stm32f103x6.s│ │ │ startup_stm32f103xb.s│ │ │ startup_stm32f103xe.s│ │ │ startup_stm32f103xg.s│ │ │ startup_stm32f105xc.s│ │ │ startup_stm32f107xc.s│ │ ││ │ ├─gcc│ │ │ startup_stm32f100xb.s│ │ │ startup_stm32f100xe.s│ │ │ startup_stm32f101x6.s│ │ │ startup_stm32f101xb.s│ │ │ startup_stm32f101xe.s│ │ │ startup_stm32f101xg.s│ │ │ startup_stm32f102x6.s│ │ │ startup_stm32f102xb.s│ │ │ startup_stm32f103x6.s│ │ │ startup_stm32f103xb.s│ │ │ startup_stm32f103xe.s│ │ │ startup_stm32f103xg.s│ │ │ startup_stm32f105xc.s│ │ │ startup_stm32f107xc.s│ │ ││ │ └─iar│ │ │ startup_stm32f100xb.s│ │ │ startup_stm32f100xe.s│ │ │ startup_stm32f101x6.s│ │ │ startup_stm32f101xb.s│ │ │ startup_stm32f101xe.s│ │ │ startup_stm32f101xg.s│ │ │ startup_stm32f102x6.s│ │ │ startup_stm32f102xb.s│ │ │ startup_stm32f103x6.s│ │ │ startup_stm32f103xb.s│ │ │ startup_stm32f103xe.s│ │ │ startup_stm32f103xg.s│ │ │ startup_stm32f105xc.s│ │ │ startup_stm32f107xc.s│ │ ││ │ └─linker│ │ stm32f100xb_flash.icf│ │ stm32f100xb_sram.icf│ │ stm32f100xe_flash.icf│ │ stm32f100xe_sram.icf│ │ stm32f101x6_flash.icf│ │ stm32f101x6_sram.icf│ │ stm32f101xb_flash.icf│ │ stm32f101xb_sram.icf│ │ stm32f101xe_flash.icf│ │ stm32f101xe_sram.icf│ │ stm32f101xg_flash.icf│ │ stm32f101xg_sram.icf│ │ stm32f102x6_flash.icf│ │ stm32f102x6_sram.icf│ │ stm32f102xb_flash.icf│ │ stm32f102xb_sram.icf│ │ stm32f103x6_flash.icf│ │ stm32f103x6_sram.icf│ │ stm32f103xb_flash.icf│ │ stm32f103xb_sram.icf│ │ stm32f103xe_flash.icf│ │ stm32f103xe_sram.icf│ │ stm32f103xg_flash.icf│ │ stm32f103xg_sram.icf│ │ stm32f105xc_flash.icf│ │ stm32f105xc_sram.icf│ │ stm32f107xc_flash.icf│ │ stm32f107xc_sram.icf│ ││ ├─docs│ │ └─General│ │ └─html│ │ LICENSE.txt│ ││ ├─DSP│ │ ├─DSP_Lib_TestSuite│ │ │ │ HowTo.txt│ │ │ ││ │ │ ├─Common│ │ │ │ ├─inc│ │ │ │ │ │ all_tests.h│ │ │ │ │ │ math_helper.h│ │ │ │ │ │ type_abbrev.h│ │ │ │ │ ││ │ │ │ │ ├─basic_math_tests│ │ │ │ │ │ basic_math_templates.h│ │ │ │ │ │ basic_math_tests.h│ │ │ │ │ │ basic_math_test_data.h│ │ │ │ │ │ basic_math_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─complex_math_tests│ │ │ │ │ │ complex_math_templates.h│ │ │ │ │ │ complex_math_tests.h│ │ │ │ │ │ complex_math_test_data.h│ │ │ │ │ │ complex_math_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─controller_tests│ │ │ │ │ │ controller_templates.h│ │ │ │ │ │ controller_tests.h│ │ │ │ │ │ controller_test_data.h│ │ │ │ │ │ controller_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─fast_math_tests│ │ │ │ │ │ fast_math_templates.h│ │ │ │ │ │ fast_math_test_data.h│ │ │ │ │ │ fast_math_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─filtering_tests│ │ │ │ │ │ filtering_templates.h│ │ │ │ │ │ filtering_tests.h│ │ │ │ │ │ filtering_test_data.h│ │ │ │ │ │ filtering_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─intrinsics_tests│ │ │ │ │ │ intrinsics_templates.h│ │ │ │ │ │ intrinsics_test_data.h│ │ │ │ │ │ intrinsics_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─matrix_tests│ │ │ │ │ │ matrix_templates.h│ │ │ │ │ │ matrix_tests.h│ │ │ │ │ │ matrix_test_data.h│ │ │ │ │ │ matrix_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─statistics_tests│ │ │ │ │ │ statistics_templates.h│ │ │ │ │ │ statistics_tests.h│ │ │ │ │ │ statistics_test_data.h│ │ │ │ │ │ statistics_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─support_tests│ │ │ │ │ │ support_templates.h│ │ │ │ │ │ support_tests.h│ │ │ │ │ │ support_test_data.h│ │ │ │ │ │ support_test_group.h│ │ │ │ │ ││ │ │ │ │ ├─templates│ │ │ │ │ │ template.h│ │ │ │ │ │ test_templates.h│ │ │ │ │ ││ │ │ │ │ └─transform_tests│ │ │ │ │ transform_templates.h│ │ │ │ │ transform_tests.h│ │ │ │ │ transform_test_data.h│ │ │ │ │ transform_test_group.h│ │ │ │ ││ │ │ │ ├─JTest│ │ │ │ │ ├─inc│ │ │ │ │ │ │ jtest.h│ │ │ │ │ │ │ jtest_cycle.h│ │ │ │ │ │ │ jtest_define.h│ │ │ │ │ │ │ jtest_fw.h│ │ │ │ │ │ │ jtest_group.h│ │ │ │ │ │ │ jtest_group_call.h│ │ │ │ │ │ │ jtest_group_define.h│ │ │ │ │ │ │ jtest_pf.h│ │ │ │ │ │ │ jtest_systick.h│ │ │ │ │ │ │ jtest_test.h│ │ │ │ │ │ │ jtest_test_call.h│ │ │ │ │ │ │ jtest_test_define.h│ │ │ │ │ │ │ jtest_test_ret.h│ │ │ │ │ │ │ jtest_util.h│ │ │ │ │ │ ││ │ │ │ │ │ ├─arr_desc│ │ │ │ │ │ │ arr_desc.h│ │ │ │ │ │ ││ │ │ │ │ │ ├─opt_arg│ │ │ │ │ │ │ opt_arg.h│ │ │ │ │ │ │ pp_narg.h│ │ │ │ │ │ │ splice.h│ │ │ │ │ │ ││ │ │ │ │ │ └─util│ │ │ │ │ │ util.h│ │ │ │ │ ││ │ │ │ │ └─src│ │ │ │ │ jtest_cycle.c│ │ │ │ │ jtest_dump_str_segments.c│ │ │ │ │ jtest_fw.c│ │ │ │ │ jtest_trigger_action.c│ │ │ │ ││ │ │ │ ├─platform│ │ │ │ │ │ startup_generic.S│ │ │ │ │ │ system_ARMCM0.c│ │ │ │ │ │ system_ARMCM23.c│ │ │ │ │ │ system_ARMCM3.c│ │ │ │ │ │ system_ARMCM33.c│ │ │ │ │ │ system_ARMCM4.c│ │ │ │ │ │ system_ARMCM7.c│ │ │ │ │ │ system_ARMSC000.c│ │ │ │ │ │ system_ARMSC300.c│ │ │ │ │ │ system_ARMv8MBL.c│ │ │ │ │ │ system_ARMv8MML.c│ │ │ │ │ │ system_generic.c│ │ │ │ │ ││ │ │ │ │ ├─ARMCC│ │ │ │ │ │ Retarget.c│ │ │ │ │ │ startup_armv6-m.s│ │ │ │ │ │ startup_armv7-m.s│ │ │ │ │ ││ │ │ │ │ ├─ARMCLANG│ │ │ │ │ │ startup_armv6-m.S│ │ │ │ │ │ startup_armv7-m.S│ │ │ │ │ ││ │ │ │ │ └─GCC│ │ │ │ │ Retarget.c│ │ │ │ │ startup_armv6-m.S│ │ │ │ │ startup_armv7-m.S│ │ │ │ ││ │ │ │ └─src│ │ │ │ │ all_tests.c│ │ │ │ │ main.c│ │ │ │ │ math_helper.c│ │ │ │ ││ │ │ │ ├─basic_math_tests│ │ │ │ │ abs_tests.c│ │ │ │ │ add_tests.c│ │ │ │ │ basic_math_test_common_data.c│ │ │ │ │ basic_math_test_group.c│ │ │ │ │ dot_prod_tests.c│ │ │ │ │ mult_tests.c│ │ │ │ │ negate_tests.c│ │ │ │ │ offset_tests.c│ │ │ │ │ scale_tests.c│ │ │ │ │ shift_tests.c│ │ │ │ │ sub_tests.c│ │ │ │ ││ │ │ │ ├─complex_math_tests│ │ │ │ │ cmplx_conj_tests.c│ │ │ │ │ cmplx_dot_prod_tests.c│ │ │ │ │ cmplx_mag_squared_tests.c│ │ │ │ │ cmplx_mag_tests.c│ │ │ │ │ cmplx_mult_cmplx_tests.c│ │ │ │ │ cmplx_mult_real_test.c│ │ │ │ │ complex_math_test_common_data.c│ │ │ │ │ complex_math_test_group.c│ │ │ │ ││ │ │ │ ├─controller_tests│ │ │ │ │ controller_test_common_data.c│ │ │ │ │ controller_test_group.c│ │ │ │ │ pid_reset_tests.c│ │ │ │ │ pid_tests.c│ │ │ │ │ sin_cos_tests.c│ │ │ │ ││ │ │ │ ├─fast_math_tests│ │ │ │ │ fast_math_tests.c│ │ │ │ │ fast_math_tests_common_data.c│ │ │ │ ││ │ │ │ ├─filtering_tests│ │ │ │ │ biquad_tests.c│ │ │ │ │ conv_tests.c│ │ │ │ │ correlate_tests.c│ │ │ │ │ filtering_test_common_data.c│ │ │ │ │ filtering_test_group.c│ │ │ │ │ fir_tests.c│ │ │ │ │ iir_tests.c│ │ │ │ │ lms_tests.c│ │ │ │ ││ │ │ │ ├─intrinsics_tests│ │ │ │ │ intrinsics_tests.c│ │ │ │ │ intrinsics_tests_common_data.c│ │ │ │ ││ │ │ │ ├─matrix_tests│ │ │ │ │ matrix_test_common_data.c│ │ │ │ │ matrix_test_group.c│ │ │ │ │ mat_add_tests.c│ │ │ │ │ mat_cmplx_mult_tests.c│ │ │ │ │ mat_init_tests.c│ │ │ │ │ mat_inverse_tests.c│ │ │ │ │ mat_mult_fast_tests.c│ │ │ │ │ mat_mult_tests.c│ │ │ │ │ mat_scale_tests.c│ │ │ │ │ mat_sub_tests.c│ │ │ │ │ mat_trans_tests.c│ │ │ │ ││ │ │ │ ├─statistics_tests│ │ │ │ │ max_tests.c│ │ │ │ │ mean_tests.c│ │ │ │ │ min_tests.c│ │ │ │ │ power_tests.c│ │ │ │ │ rms_tests.c│ │ │ │ │ statistics_test_common_data.c│ │ │ │ │ statistics_test_group.c│ │ │ │ │ std_tests.c│ │ │ │ │ var_tests.c│ │ │ │ ││ │ │ │ ├─support_tests│ │ │ │ │ copy_tests.c│ │ │ │ │ fill_tests.c│ │ │ │ │ support_test_common_data.c│ │ │ │ │ support_test_group.c│ │ │ │ │ x_to_y_tests.c│ │ │ │ ││ │ │ │ └─transform_tests│ │ │ │ cfft_family_tests.c│ │ │ │ cfft_tests.c│ │ │ │ dct4_tests.c│ │ │ │ rfft_fast_tests.c│ │ │ │ rfft_tests.c│ │ │ │ transform_tests_common_data.c│ │ │ │ transform_test_group.c│ │ │ ││ │ │ ├─DspLibTest_FVP│ │ │ │ ARMCM23_config.txt│ │ │ │ ARMCM33_config.txt│ │ │ │ ARMCM33_DSP_config.txt│ │ │ │ ARMCM33_DSP_FP_config.txt│ │ │ │ ARMCM33_FP_config.txt│ │ │ ││ │ │ ├─DspLibTest_MPS2│ │ │ │ HowTo.txt│ │ │ ││ │ │ └─RefLibs│ │ │ ├─inc│ │ │ │ ref.h│ │ │ ││ │ │ └─src│ │ │ ├─BasicMathFunctions│ │ │ │ abs.c│ │ │ │ add.c│ │ │ │ dot_prod.c│ │ │ │ mult.c│ │ │ │ negate.c│ │ │ │ offset.c│ │ │ │ scale.c│ │ │ │ shift.c│ │ │ │ sub.c│ │ │ ││ │ │ ├─ComplexMathFunctions│ │ │ │ cmplx_conj.c│ │ │ │ cmplx_dot_prod.c│ │ │ │ cmplx_mag.c│ │ │ │ cmplx_mag_squared.c│ │ │ │ cmplx_mult_cmplx.c│ │ │ │ cmplx_mult_real.c│ │ │ ││ │ │ ├─ControllerFunctions│ │ │ │ pid.c│ │ │ │ sin_cos.c│ │ │ ││ │ │ ├─FastMathFunctions│ │ │ │ cos.c│ │ │ │ sin.c│ │ │ │ sqrt.c│ │ │ ││ │ │ ├─FilteringFunctions│ │ │ │ biquad.c│ │ │ │ conv.c│ │ │ │ correlate.c│ │ │ │ fir.c│ │ │ │ fir_decimate.c│ │ │ │ fir_interpolate.c│ │ │ │ fir_lattice.c│ │ │ │ fir_sparse.c│ │ │ │ iir_lattice.c│ │ │ │ lms.c│ │ │ ││ │ │ ├─HelperFunctions│ │ │ │ mat_helper.c│ │ │ │ ref_helper.c│ │ │ ││ │ │ ├─Intrinsics│ │ │ │ intrinsics.c│ │ │ ││ │ │ ├─MatrixFunctions│ │ │ │ mat_add.c│ │ │ │ mat_cmplx_mult.c│ │ │ │ mat_inverse.c│ │ │ │ mat_mult.c│ │ │ │ mat_scale.c│ │ │ │ mat_sub.c│ │ │ │ mat_trans.c│ │ │ ││ │ │ ├─StatisticsFunctions│ │ │ │ max.c│ │ │ │ mean.c│ │ │ │ min.c│ │ │ │ power.c│ │ │ │ rms.c│ │ │ │ std.c│ │ │ │ var.c│ │ │ ││ │ │ ├─SupportFunctions│ │ │ │ copy.c│ │ │ │ fill.c│ │ │ │ fixed_to_fixed.c│ │ │ │ fixed_to_float.c│ │ │ │ float_to_fixed.c│ │ │ ││ │ │ └─TransformFunctions│ │ │ bitreversal.c│ │ │ cfft.c│ │ │ dct4.c│ │ │ rfft.c│ │ ││ │ ├─Examples│ │ │ └─ARM│ │ │ ├─arm_class_marks_example│ │ │ │ Abstract.txt│ │ │ │ arm_class_marks_example_f32.c│ │ │ ││ │ │ ├─arm_convolution_example│ │ │ │ Abstract.txt│ │ │ │ arm_convolution_example_f32.c│ │ │ │ math_helper.c│ │ │ │ math_helper.h│ │ │ ││ │ │ ├─arm_dotproduct_example│ │ │ │ Abstract.txt│ │ │ │ arm_dotproduct_example_f32.c│ │ │ ││ │ │ ├─arm_fft_bin_example│ │ │ │ Abstract.txt│ │ │ │ arm_fft_bin_data.c│ │ │ │ arm_fft_bin_example_f32.c│ │ │ ││ │ │ ├─arm_fir_example│ │ │ │ Abstract.txt│ │ │ │ arm_fir_data.c│ │ │ │ arm_fir_example_f32.c│ │ │ │ math_helper.c│ │ │ │ math_helper.h│ │ │ ││ │ │ ├─arm_graphic_equalizer_example│ │ │ │ Abstract.txt│ │ │ │ arm_graphic_equalizer_data.c│ │ │ │ arm_graphic_equalizer_example_q31.c│ │ │ │ math_helper.c│ │ │ │ math_helper.h│ │ │ ││ │ │ ├─arm_linear_interp_example│ │ │ │ Abstract.txt│ │ │ │ arm_linear_interp_data.c│ │ │ │ arm_linear_interp_example_f32.c│ │ │ │ math_helper.c│ │ │ │ math_helper.h│ │ │ ││ │ │ ├─arm_matrix_example│ │ │ │ Abstract.txt│ │ │ │ arm_matrix_example_f32.c│ │ │ │ math_helper.c│ │ │ │ math_helper.h│ │ │ ││ │ │ ├─arm_signal_converge_example│ │ │ │ Abstract.txt│ │ │ │ arm_signal_converge_data.c│ │ │ │ arm_signal_converge_example_f32.c│ │ │ │ math_helper.c│ │ │ │ math_helper.h│ │ │ ││ │ │ ├─arm_sin_cos_example│ │ │ │ Abstract.txt│ │ │ │ arm_sin_cos_example_f32.c│ │ │ ││ │ │ └─arm_variance_example│ │ │ Abstract.txt│ │ │ arm_variance_example_f32.c│ │ ││ │ ├─Include│ │ │ arm_common_tables.h│ │ │ arm_const_structs.h│ │ │ arm_math.h│ │ ││ │ └─Source│ │ ├─BasicMathFunctions│ │ │ arm_abs_f32.c│ │ │ arm_abs_q15.c│ │ │ arm_abs_q31.c│ │ │ arm_abs_q7.c│ │ │ arm_add_f32.c│ │ │ arm_add_q15.c│ │ │ arm_add_q31.c│ │ │ arm_add_q7.c│ │ │ arm_dot_prod_f32.c│ │ │ arm_dot_prod_q15.c│ │ │ arm_dot_prod_q31.c│ │ │ arm_dot_prod_q7.c│ │ │ arm_mult_f32.c│ │ │ arm_mult_q15.c│ │ │ arm_mult_q31.c│ │ │ arm_mult_q7.c│ │ │ arm_negate_f32.c│ │ │ arm_negate_q15.c│ │ │ arm_negate_q31.c│ │ │ arm_negate_q7.c│ │ │ arm_offset_f32.c│ │ │ arm_offset_q15.c│ │ │ arm_offset_q31.c│ │ │ arm_offset_q7.c│ │ │ arm_scale_f32.c│ │ │ arm_scale_q15.c│ │ │ arm_scale_q31.c│ │ │ arm_scale_q7.c│ │ │ arm_shift_q15.c│ │ │ arm_shift_q31.c│ │ │ arm_shift_q7.c│ │ │ arm_sub_f32.c│ │ │ arm_sub_q15.c│ │ │ arm_sub_q31.c│ │ │ arm_sub_q7.c│ │ ││ │ ├─CommonTables│ │ │ arm_common_tables.c│ │ │ arm_const_structs.c│ │ ││ │ ├─ComplexMathFunctions│ │ │ arm_cmplx_conj_f32.c│ │ │ arm_cmplx_conj_q15.c│ │ │ arm_cmplx_conj_q31.c│ │ │ arm_cmplx_dot_prod_f32.c│ │ │ arm_cmplx_dot_prod_q15.c│ │ │ arm_cmplx_dot_prod_q31.c│ │ │ arm_cmplx_mag_f32.c│ │ │ arm_cmplx_mag_q15.c│ │ │ arm_cmplx_mag_q31.c│ │ │ arm_cmplx_mag_squared_f32.c│ │ │ arm_cmplx_mag_squared_q15.c│ │ │ arm_cmplx_mag_squared_q31.c│ │ │ arm_cmplx_mult_cmplx_f32.c│ │ │ arm_cmplx_mult_cmplx_q15.c│ │ │ arm_cmplx_mult_cmplx_q31.c│ │ │ arm_cmplx_mult_real_f32.c│ │ │ arm_cmplx_mult_real_q15.c│ │ │ arm_cmplx_mult_real_q31.c│ │ ││ │ ├─ControllerFunctions│ │ │ arm_pid_init_f32.c│ │ │ arm_pid_init_q15.c│ │ │ arm_pid_init_q31.c│ │ │ arm_pid_reset_f32.c│ │ │ arm_pid_reset_q15.c│ │ │ arm_pid_reset_q31.c│ │ │ arm_sin_cos_f32.c│ │ │ arm_sin_cos_q31.c│ │ ││ │ ├─FastMathFunctions│ │ │ arm_cos_f32.c│ │ │ arm_cos_q15.c│ │ │ arm_cos_q31.c│ │ │ arm_sin_f32.c│ │ │ arm_sin_q15.c│ │ │ arm_sin_q31.c│ │ │ arm_sqrt_q15.c│ │ │ arm_sqrt_q31.c│ │ ││ │ ├─FilteringFunctions│ │ │ arm_biquad_cascade_df1_32x64_init_q31.c│ │ │ arm_biquad_cascade_df1_32x64_q31.c│ │ │ arm_biquad_cascade_df1_f32.c│ │ │ arm_biquad_cascade_df1_fast_q15.c│ │ │ arm_biquad_cascade_df1_fast_q31.c│ │ │ arm_biquad_cascade_df1_init_f32.c│ │ │ arm_biquad_cascade_df1_init_q15.c│ │ │ arm_biquad_cascade_df1_init_q31.c│ │ │ arm_biquad_cascade_df1_q15.c│ │ │ arm_biquad_cascade_df1_q31.c│ │ │ arm_biquad_cascade_df2T_f32.c│ │ │ arm_biquad_cascade_df2T_f64.c│ │ │ arm_biquad_cascade_df2T_init_f32.c│ │ │ arm_biquad_cascade_df2T_init_f64.c│ │ │ arm_biquad_cascade_stereo_df2T_f32.c│ │ │ arm_biquad_cascade_stereo_df2T_init_f32.c│ │ │ arm_conv_f32.c│ │ │ arm_conv_fast_opt_q15.c│ │ │ arm_conv_fast_q15.c│ │ │ arm_conv_fast_q31.c│ │ │ arm_conv_opt_q15.c│ │ │ arm_conv_opt_q7.c│ │ │ arm_conv_partial_f32.c│ │ │ arm_conv_partial_fast_opt_q15.c│ │ │ arm_conv_partial_fast_q15.c│ │ │ arm_conv_partial_fast_q31.c│ │ │ arm_conv_partial_opt_q15.c│ │ │ arm_conv_partial_opt_q7.c│ │ │ arm_conv_partial_q15.c│ │ │ arm_conv_partial_q31.c│ │ │ arm_conv_partial_q7.c│ │ │ arm_conv_q15.c│ │ │ arm_conv_q31.c│ │ │ arm_conv_q7.c│ │ │ arm_correlate_f32.c│ │ │ arm_correlate_fast_opt_q15.c│ │ │ arm_correlate_fast_q15.c│ │ │ arm_correlate_fast_q31.c│ │ │ arm_correlate_opt_q15.c│ │ │ arm_correlate_opt_q7.c│ │ │ arm_correlate_q15.c│ │ │ arm_correlate_q31.c│ │ │ arm_correlate_q7.c│ │ │ arm_fir_decimate_f32.c│ │ │ arm_fir_decimate_fast_q15.c│ │ │ arm_fir_decimate_fast_q31.c│ │ │ arm_fir_decimate_init_f32.c│ │ │ arm_fir_decimate_init_q15.c│ │ │ arm_fir_decimate_init_q31.c│ │ │ arm_fir_decimate_q15.c│ │ │ arm_fir_decimate_q31.c│ │ │ arm_fir_f32.c│ │ │ arm_fir_fast_q15.c│ │ │ arm_fir_fast_q31.c│ │ │ arm_fir_init_f32.c│ │ │ arm_fir_init_q15.c│ │ │ arm_fir_init_q31.c│ │ │ arm_fir_init_q7.c│ │ │ arm_fir_interpolate_f32.c│ │ │ arm_fir_interpolate_init_f32.c│ │ │ arm_fir_interpolate_init_q15.c│ │ │ arm_fir_interpolate_init_q31.c│ │ │ arm_fir_interpolate_q15.c│ │ │ arm_fir_interpolate_q31.c│ │ │ arm_fir_lattice_f32.c│ │ │ arm_fir_lattice_init_f32.c│ │ │ arm_fir_lattice_init_q15.c│ │ │ arm_fir_lattice_init_q31.c│ │ │ arm_fir_lattice_q15.c│ │ │ arm_fir_lattice_q31.c│ │ │ arm_fir_q15.c│ │ │ arm_fir_q31.c│ │ │ arm_fir_q7.c│ │ │ arm_fir_sparse_f32.c│ │ │ arm_fir_sparse_init_f32.c│ │ │ arm_fir_sparse_init_q15.c│ │ │ arm_fir_sparse_init_q31.c│ │ │ arm_fir_sparse_init_q7.c│ │ │ arm_fir_sparse_q15.c│ │ │ arm_fir_sparse_q31.c│ │ │ arm_fir_sparse_q7.c│ │ │ arm_iir_lattice_f32.c│ │ │ arm_iir_lattice_init_f32.c│ │ │ arm_iir_lattice_init_q15.c│ │ │ arm_iir_lattice_init_q31.c│ │ │ arm_iir_lattice_q15.c│ │ │ arm_iir_lattice_q31.c│ │ │ arm_lms_f32.c│ │ │ arm_lms_init_f32.c│ │ │ arm_lms_init_q15.c│ │ │ arm_lms_init_q31.c│ │ │ arm_lms_norm_f32.c│ │ │ arm_lms_norm_init_f32.c│ │ │ arm_lms_norm_init_q15.c│ │ │ arm_lms_norm_init_q31.c│ │ │ arm_lms_norm_q15.c│ │ │ arm_lms_norm_q31.c│ │ │ arm_lms_q15.c│ │ │ arm_lms_q31.c│ │ ││ │ ├─MatrixFunctions│ │ │ arm_mat_add_f32.c│ │ │ arm_mat_add_q15.c│ │ │ arm_mat_add_q31.c│ │ │ arm_mat_cmplx_mult_f32.c│ │ │ arm_mat_cmplx_mult_q15.c│ │ │ arm_mat_cmplx_mult_q31.c│ │ │ arm_mat_init_f32.c│ │ │ arm_mat_init_q15.c│ │ │ arm_mat_init_q31.c│ │ │ arm_mat_inverse_f32.c│ │ │ arm_mat_inverse_f64.c│ │ │ arm_mat_mult_f32.c│ │ │ arm_mat_mult_fast_q15.c│ │ │ arm_mat_mult_fast_q31.c│ │ │ arm_mat_mult_q15.c│ │ │ arm_mat_mult_q31.c│ │ │ arm_mat_scale_f32.c│ │ │ arm_mat_scale_q15.c│ │ │ arm_mat_scale_q31.c│ │ │ arm_mat_sub_f32.c│ │ │ arm_mat_sub_q15.c│ │ │ arm_mat_sub_q31.c│ │ │ arm_mat_trans_f32.c│ │ │ arm_mat_trans_q15.c│ │ │ arm_mat_trans_q31.c│ │ ││ │ ├─StatisticsFunctions│ │ │ arm_max_f32.c│ │ │ arm_max_q15.c│ │ │ arm_max_q31.c│ │ │ arm_max_q7.c│ │ │ arm_mean_f32.c│ │ │ arm_mean_q15.c│ │ │ arm_mean_q31.c│ │ │ arm_mean_q7.c│ │ │ arm_min_f32.c│ │ │ arm_min_q15.c│ │ │ arm_min_q31.c│ │ │ arm_min_q7.c│ │ │ arm_power_f32.c│ │ │ arm_power_q15.c│ │ │ arm_power_q31.c│ │ │ arm_power_q7.c│ │ │ arm_rms_f32.c│ │ │ arm_rms_q15.c│ │ │ arm_rms_q31.c│ │ │ arm_std_f32.c│ │ │ arm_std_q15.c│ │ │ arm_std_q31.c│ │ │ arm_var_f32.c│ │ │ arm_var_q15.c│ │ │ arm_var_q31.c│ │ ││ │ ├─SupportFunctions│ │ │ arm_copy_f32.c│ │ │ arm_copy_q15.c│ │ │ arm_copy_q31.c│ │ │ arm_copy_q7.c│ │ │ arm_fill_f32.c│ │ │ arm_fill_q15.c│ │ │ arm_fill_q31.c│ │ │ arm_fill_q7.c│ │ │ arm_float_to_q15.c│ │ │ arm_float_to_q31.c│ │ │ arm_float_to_q7.c│ │ │ arm_q15_to_float.c│ │ │ arm_q15_to_q31.c│ │ │ arm_q15_to_q7.c│ │ │ arm_q31_to_float.c│ │ │ arm_q31_to_q15.c│ │ │ arm_q31_to_q7.c│ │ │ arm_q7_to_float.c│ │ │ arm_q7_to_q15.c│ │ │ arm_q7_to_q31.c│ │ ││ │ └─TransformFunctions│ │ arm_bitreversal.c│ │ arm_bitreversal2.S│ │ arm_cfft_f32.c│ │ arm_cfft_q15.c│ │ arm_cfft_q31.c│ │ arm_cfft_radix2_f32.c│ │ arm_cfft_radix2_init_f32.c│ │ arm_cfft_radix2_init_q15.c│ │ arm_cfft_radix2_init_q31.c│ │ arm_cfft_radix2_q15.c│ │ arm_cfft_radix2_q31.c│ │ arm_cfft_radix4_f32.c│ │ arm_cfft_radix4_init_f32.c│ │ arm_cfft_radix4_init_q15.c│ │ arm_cfft_radix4_init_q31.c│ │ arm_cfft_radix4_q15.c│ │ arm_cfft_radix4_q31.c│ │ arm_cfft_radix8_f32.c│ │ arm_dct4_f32.c│ │ arm_dct4_init_f32.c│ │ arm_dct4_init_q15.c│ │ arm_dct4_init_q31.c│ │ arm_dct4_q15.c│ │ arm_dct4_q31.c│ │ arm_rfft_f32.c│ │ arm_rfft_fast_f32.c│ │ arm_rfft_fast_init_f32.c│ │ arm_rfft_init_f32.c│ │ arm_rfft_init_q15.c│ │ arm_rfft_init_q31.c│ │ arm_rfft_q15.c│ │ arm_rfft_q31.c│ ││ ├─Include│ │ cmsis_armcc.h│ │ cmsis_armclang.h│ │ cmsis_compiler.h│ │ cmsis_gcc.h│ │ cmsis_iccarm.h│ │ cmsis_version.h│ │ core_armv8mbl.h│ │ core_armv8mml.h│ │ core_cm0.h│ │ core_cm0plus.h│ │ core_cm1.h│ │ core_cm23.h│ │ core_cm3.h│ │ core_cm33.h│ │ core_cm4.h│ │ core_cm7.h│ │ core_sc000.h│ │ core_sc300.h│ │ mpu_armv7.h│ │ mpu_armv8.h│ │ tz_context.h│ ││ ├─Lib│ │ ├─ARM│ │ │ arm_cortexM3b_math.lib│ │ │ arm_cortexM3l_math.lib│ │ ││ │ ├─GCC│ │ │ libarm_cortexM3l_math.a│ │ ││ │ └─IAR│ │ iar_cortexM3b_math.a│ │ iar_cortexM3l_math.a│ ││ ├─NN│ │ ├─Examples│ │ │ └─ARM│ │ │ └─arm_nn_examples│ │ │ ├─cifar10│ │ │ │ │ arm_nnexamples_cifar10.cpp│ │ │ │ │ arm_nnexamples_cifar10_inputs.h│ │ │ │ │ arm_nnexamples_cifar10_parameter.h│ │ │ │ │ arm_nnexamples_cifar10_weights.h│ │ │ │ │ readme.txt│ │ │ │ ││ │ │ │ └─RTE│ │ │ │ ├─Compiler│ │ │ │ │ EventRecorderConf.h│ │ │ │ ││ │ │ │ ├─_ARMCM0│ │ │ │ │ RTE_Components.h│ │ │ │ ││ │ │ │ ├─_ARMCM3│ │ │ │ │ RTE_Components.h│ │ │ │ ││ │ │ │ ├─_ARMCM4_FP│ │ │ │ │ RTE_Components.h│ │ │ │ ││ │ │ │ └─_ARMCM7_SP│ │ │ │ RTE_Components.h│ │ │ ││ │ │ └─gru│ │ │ │ arm_nnexamples_gru.cpp│ │ │ │ arm_nnexamples_gru_test_data.h│ │ │ │ readme.txt│ │ │ ││ │ │ └─RTE│ │ │ ├─Compiler│ │ │ │ EventRecorderConf.h│ │ │ ││ │ │ ├─_ARMCM0│ │ │ │ RTE_Components.h│ │ │ ││ │ │ ├─_ARMCM3│ │ │ │ RTE_Components.h│ │ │ ││ │ │ ├─_ARMCM4_FP│ │ │ │ RTE_Components.h│ │ │ ││ │ │ └─_ARMCM7_SP│ │ │ RTE_Components.h│ │ ││ │ ├─Include│ │ │ arm_nnfunctions.h│ │ │ arm_nnsupportfunctions.h│ │ │ arm_nn_tables.h│ │ ││ │ ├─NN_Lib_Tests│ │ │ └─nn_test│ │ │ │ arm_nnexamples_nn_test.cpp│ │ │ │ arm_nnexamples_nn_test.h│ │ │ │ readme.txt│ │ │ ││ │ │ ├─Ref_Implementations│ │ │ │ arm_convolve_HWC_q15_ref.c│ │ │ │ arm_convolve_HWC_q15_ref_nonsquare.c│ │ │ │ arm_convolve_HWC_q7_ref.c│ │ │ │ arm_convolve_HWC_q7_ref_nonsquare.c│ │ │ │ arm_depthwise_separable_conv_HWC_q7_ref.c│ │ │ │ arm_depthwise_separable_conv_HWC_q7_ref_nonsquare.c│ │ │ │ arm_fully_connected_mat_q7_vec_q15_opt_ref.c│ │ │ │ arm_fully_connected_mat_q7_vec_q15_ref.c│ │ │ │ arm_fully_connected_q15_opt_ref.c│ │ │ │ arm_fully_connected_q15_ref.c│ │ │ │ arm_fully_connected_q7_opt_ref.c│ │ │ │ arm_fully_connected_q7_ref.c│ │ │ │ arm_nn_mult_ref.c│ │ │ │ arm_pool_ref.c│ │ │ │ arm_relu_ref.c│ │ │ │ fully_connected_testing_weights.h│ │ │ │ ref_functions.h│ │ │ ││ │ │ └─RTE│ │ │ ├─_ARMCM0│ │ │ │ RTE_Components.h│ │ │ ││ │ │ ├─_ARMCM3│ │ │ │ RTE_Components.h│ │ │ ││ │ │ ├─_ARMCM4_FP│ │ │ │ RTE_Components.h│ │ │ ││ │ │ └─_ARMCM7_SP│ │ │ RTE_Components.h│ │ ││ │ └─Source│ │ ├─ActivationFunctions│ │ │ arm_nn_activations_q15.c│ │ │ arm_nn_activations_q7.c│ │ │ arm_relu_q15.c│ │ │ arm_relu_q7.c│ │ ││ │ ├─ConvolutionFunctions│ │ │ arm_convolve_1x1_HWC_q7_fast_nonsquare.c│ │ │ arm_convolve_HWC_q15_basic.c│ │ │ arm_convolve_HWC_q15_fast.c│ │ │ arm_convolve_HWC_q15_fast_nonsquare.c│ │ │ arm_convolve_HWC_q7_basic.c│ │ │ arm_convolve_HWC_q7_basic_nonsquare.c│ │ │ arm_convolve_HWC_q7_fast.c│ │ │ arm_convolve_HWC_q7_fast_nonsquare.c│ │ │ arm_convolve_HWC_q7_RGB.c│ │ │ arm_depthwise_separable_conv_HWC_q7.c│ │ │ arm_depthwise_separable_conv_HWC_q7_nonsquare.c│ │ │ arm_nn_mat_mult_kernel_q7_q15.c│ │ │ arm_nn_mat_mult_kernel_q7_q15_reordered.c│ │ ││ │ ├─FullyConnectedFunctions│ │ │ arm_fully_connected_mat_q7_vec_q15.c│ │ │ arm_fully_connected_mat_q7_vec_q15_opt.c│ │ │ arm_fully_connected_q15.c│ │ │ arm_fully_connected_q15_opt.c│ │ │ arm_fully_connected_q7.c│ │ │ arm_fully_connected_q7_opt.c│ │ ││ │ ├─NNSupportFunctions│ │ │ arm_nntables.c│ │ │ arm_nn_mult_q15.c│ │ │ arm_nn_mult_q7.c│ │ │ arm_q7_to_q15_no_shift.c│ │ │ arm_q7_to_q15_reordered_no_shift.c│ │ ││ │ ├─PoolingFunctions│ │ │ arm_pool_q7_HWC.c│ │ ││ │ └─SoftmaxFunctions│ │ arm_softmax_q15.c│ │ arm_softmax_q7.c│ ││ ├─RTOS│ │ └─Template│ │ cmsis_os.h│ ││ └─RTOS2│ ├─Include│ │ cmsis_os2.h│ │ os_tick.h│ ││ ├─Source│ │ os_systick.c│ │ os_tick_gtim.c│ │ os_tick_ptim.c│ ││ └─Template│ cmsis_os.h│ cmsis_os1.c│└─STM32F1xx_HAL_Driver ├─Inc │ │ stm32f1xx_hal.h │ │ stm32f1xx_hal_adc.h │ │ stm32f1xx_hal_adc_ex.h │ │ stm32f1xx_hal_can.h │ │ stm32f1xx_hal_cec.h │ │ stm32f1xx_hal_conf_template.h │ │ stm32f1xx_hal_cortex.h │ │ stm32f1xx_hal_crc.h │ │ stm32f1xx_hal_dac.h │ │ stm32f1xx_hal_dac_ex.h │ │ stm32f1xx_hal_def.h │ │ stm32f1xx_hal_dma.h │ │ stm32f1xx_hal_dma_ex.h │ │ stm32f1xx_hal_eth.h │ │ stm32f1xx_hal_exti.h │ │ stm32f1xx_hal_flash.h │ │ stm32f1xx_hal_flash_ex.h │ │ stm32f1xx_hal_gpio.h │ │ stm32f1xx_hal_gpio_ex.h │ │ stm32f1xx_hal_hcd.h │ │ stm32f1xx_hal_i2c.h │ │ stm32f1xx_hal_i2s.h │ │ stm32f1xx_hal_irda.h │ │ stm32f1xx_hal_iwdg.h │ │ stm32f1xx_hal_mmc.h │ │ stm32f1xx_hal_nand.h │ │ stm32f1xx_hal_nor.h │ │ stm32f1xx_hal_pccard.h │ │ stm32f1xx_hal_pcd.h │ │ stm32f1xx_hal_pcd_ex.h │ │ stm32f1xx_hal_pwr.h │ │ stm32f1xx_hal_rcc.h │ │ stm32f1xx_hal_rcc_ex.h │ │ stm32f1xx_hal_rtc.h │ │ stm32f1xx_hal_rtc_ex.h │ │ stm32f1xx_hal_sd.h │ │ stm32f1xx_hal_smartcard.h │ │ stm32f1xx_hal_spi.h │ │ stm32f1xx_hal_sram.h │ │ stm32f1xx_hal_tim.h │ │ stm32f1xx_hal_tim_ex.h │ │ stm32f1xx_hal_uart.h │ │ stm32f1xx_hal_usart.h │ │ stm32f1xx_hal_wwdg.h │ │ stm32f1xx_ll_adc.h │ │ stm32f1xx_ll_bus.h │ │ stm32f1xx_ll_cortex.h │ │ stm32f1xx_ll_crc.h │ │ stm32f1xx_ll_dac.h │ │ stm32f1xx_ll_dma.h │ │ stm32f1xx_ll_exti.h │ │ stm32f1xx_ll_fsmc.h │ │ stm32f1xx_ll_gpio.h │ │ stm32f1xx_ll_i2c.h │ │ stm32f1xx_ll_iwdg.h │ │ stm32f1xx_ll_pwr.h │ │ stm32f1xx_ll_rcc.h │ │ stm32f1xx_ll_rtc.h │ │ stm32f1xx_ll_sdmmc.h │ │ stm32f1xx_ll_spi.h │ │ stm32f1xx_ll_system.h │ │ stm32f1xx_ll_tim.h │ │ stm32f1xx_ll_usart.h │ │ stm32f1xx_ll_usb.h │ │ stm32f1xx_ll_utils.h │ │ stm32f1xx_ll_wwdg.h │ │ stm32_assert_template.h │ │ │ └─Legacy │ stm32f1xx_hal_can_ex_legacy.h │ stm32f1xx_hal_can_legacy.h │ stm32_hal_legacy.h │ └─Src stm32f1xx_hal.c stm32f1xx_hal_adc.c stm32f1xx_hal_adc_ex.c stm32f1xx_hal_can.c stm32f1xx_hal_cec.c stm32f1xx_hal_cortex.c stm32f1xx_hal_crc.c stm32f1xx_hal_dac.c stm32f1xx_hal_dac_ex.c stm32f1xx_hal_dma.c stm32f1xx_hal_eth.c stm32f1xx_hal_exti.c stm32f1xx_hal_flash.c stm32f1xx_hal_flash_ex.c stm32f1xx_hal_gpio.c stm32f1xx_hal_gpio_ex.c stm32f1xx_hal_hcd.c stm32f1xx_hal_i2c.c stm32f1xx_hal_i2s.c stm32f1xx_hal_irda.c stm32f1xx_hal_iwdg.c stm32f1xx_hal_mmc.c stm32f1xx_hal_msp_template.c stm32f1xx_hal_nand.c stm32f1xx_hal_nor.c stm32f1xx_hal_pccard.c stm32f1xx_hal_pcd.c stm32f1xx_hal_pcd_ex.c stm32f1xx_hal_pwr.c stm32f1xx_hal_rcc.c stm32f1xx_hal_rcc_ex.c stm32f1xx_hal_rtc.c stm32f1xx_hal_rtc_ex.c stm32f1xx_hal_sd.c stm32f1xx_hal_smartcard.c stm32f1xx_hal_spi.c stm32f1xx_hal_sram.c stm32f1xx_hal_tim.c stm32f1xx_hal_timebase_rtc_alarm_template.c stm32f1xx_hal_timebase_tim_template.c stm32f1xx_hal_tim_ex.c stm32f1xx_hal_uart.c stm32f1xx_hal_usart.c stm32f1xx_hal_wwdg.c stm32f1xx_ll_adc.c stm32f1xx_ll_crc.c stm32f1xx_ll_dac.c stm32f1xx_ll_dma.c stm32f1xx_ll_exti.c stm32f1xx_ll_fsmc.c stm32f1xx_ll_gpio.c stm32f1xx_ll_i2c.c stm32f1xx_ll_pwr.c stm32f1xx_ll_rcc.c stm32f1xx_ll_rtc.c stm32f1xx_ll_sdmmc.c stm32f1xx_ll_spi.c stm32f1xx_ll_tim.c stm32f1xx_ll_usart.c stm32f1xx_ll_usb.c stm32f1xx_ll_utils.cC:\USERS\28581_000\DESKTOP\TEST\TEST\CORE├─Inc│ gpio.h│ main.h│ stm32f1xx_hal_conf.h│ stm32f1xx_it.h│└─Src gpio.c main.c stm32f1xx_hal_msp.c stm32f1xx_it.c system_stm32f1xx.c来源:CSDN 原文,首次发布于 2024-08-17。