基于正点原子战舰开发板STM32F103ZET6。
step1
安装cubemx软件,在home界面,根据提示选择安装这款芯片的包。
然后,File——New Project——选择对应型号,双击创建。
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
完成配置后,点击Project Manager,设置名称,保存路径,编译工具链等。
配置代码生成,然后点击GENERATE CODE:
得到如下文件:
确保 已经配置 交叉编译工具后,在终端输入make -j4
:
C:\Users\28581_000\Desktop\test\test>make -j4
mkdir build
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.o
arm-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.elf
D:/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 fail
D:/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 account
D:/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 fail
D:/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 account
D:/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 fail
D:/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 account
D:/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 fail
D:/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 account
D:/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 permissions
arm-none-eabi-size build/test.elf
text data bss dec hex filename
3616 20 1572 5208 1458 build/test.elf
arm-none-eabi-objcopy -O ihex build/test.elf build/test.hex
arm-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
# optimization
OPT = -Og
#######################################
# paths
#######################################
# Build path
BUILD_DIR = build
######################################
# source
######################################
# C sources
C_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 sources
ASM_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_PATH
CC = $(GCC_PATH)/$(PREFIX)gcc
AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp
CP = $(GCC_PATH)/$(PREFIX)objcopy
SZ = $(GCC_PATH)/$(PREFIX)size
else
CC = $(PREFIX)gcc
AS = $(PREFIX)gcc -x assembler-with-cpp
CP = $(PREFIX)objcopy
SZ = $(PREFIX)size
endif
HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S
#######################################
# CFLAGS
#######################################
# cpu
CPU = -mcpu=cortex-m3
# fpu
# NONE for Cortex-M0/M0+/M3
# float-abi
# mcu
MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)
# macros for gcc
# AS defines
AS_DEFS =
# C defines
C_DEFS = \
-DUSE_HAL_DRIVER \
-DSTM32F103xE
# AS includes
AS_INCLUDES =
# C includes
C_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 flags
ASFLAGS = $(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-2
endif
# Generate dependency information
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
#######################################
# LDFLAGS
#######################################
# link script
LDSCRIPT = STM32F103ZETx_FLASH.ld
# libraries
LIBS = -lc -lm -lnosys
LIBDIR =
LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
# default action: build all
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
#######################################
# build the application
#######################################
# list of objects
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
vpath %.c $(sort $(dir $(C_SOURCES)))
# list of ASM program objects
OBJECTS += $(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 = 64K
FLASH (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, %function
Reset_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",%progbits
Default_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_Handler
Drivers 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.c
C:\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