“-DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER”作为 arm-none-eabi-gcc 的标志是什么意思?
what means about "-DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER" as the flags of arm-none-eabi-gcc?
它们看起来像是stm32的启动文件和标准文件,但我在"GCC offical refeence PDF"中找不到它们。
为什么可以直接使用
这是 makefile 中 arm-none-eabi-gcc 的标志:
# specify compiler flags
CFLAGS = -g -O2 -Wall
CFLAGS += -T$(STD_PERIPH_LIBS)/Project/STM32F10x_StdPeriph_Template/TrueSTUDIO/STM3210B-EVAL/stm32_flash.ld
CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 -mthumb-interwork
CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
CFLAGS += -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER
CFLAGS += -Wl,--gc-sections
CFLAGS += -I.
CFLAGS += -I$(STD_PERIPH_LIBS)/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/
CFLAGS += -I$(STD_PERIPH_LIBS)/Libraries/CMSIS/CM3/CoreSupport
CFLAGS += -I$(STD_PERIPH_LIBS)/Libraries/STM32F10x_StdPeriph_Driver/inc
它是特定于库的标志(在本例中为 STM32F10x 标准外设库)
-D
是 preprocessor flag 传递给 GCC 以在编译前定义一些东西。它可以用于启用库的某些功能甚至调试。
STM32F10X_MD
和 USE_STDPERIPH_DRIVER
启用部分包含的库。它是中密度设备库的 STM32F10 部分,支持使用标准外设库。
请注意,SPL 不再受支持,您应该升级到 HAL 或 HAL LL。
-Dsomething
与源代码中的#define something
相同。
它们看起来像是stm32的启动文件和标准文件,但我在"GCC offical refeence PDF"中找不到它们。
为什么可以直接使用
这是 makefile 中 arm-none-eabi-gcc 的标志:
# specify compiler flags
CFLAGS = -g -O2 -Wall
CFLAGS += -T$(STD_PERIPH_LIBS)/Project/STM32F10x_StdPeriph_Template/TrueSTUDIO/STM3210B-EVAL/stm32_flash.ld
CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 -mthumb-interwork
CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
CFLAGS += -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER
CFLAGS += -Wl,--gc-sections
CFLAGS += -I.
CFLAGS += -I$(STD_PERIPH_LIBS)/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/
CFLAGS += -I$(STD_PERIPH_LIBS)/Libraries/CMSIS/CM3/CoreSupport
CFLAGS += -I$(STD_PERIPH_LIBS)/Libraries/STM32F10x_StdPeriph_Driver/inc
它是特定于库的标志(在本例中为 STM32F10x 标准外设库)
-D
是 preprocessor flag 传递给 GCC 以在编译前定义一些东西。它可以用于启用库的某些功能甚至调试。
STM32F10X_MD
和 USE_STDPERIPH_DRIVER
启用部分包含的库。它是中密度设备库的 STM32F10 部分,支持使用标准外设库。
请注意,SPL 不再受支持,您应该升级到 HAL 或 HAL LL。
-Dsomething
与源代码中的#define something
相同。