stm32 makefile
2025-09-17 来源:cnblogs
# toolchain
CC = arm-none-eabi-gcc
CP = arm-none-eabi-objcopy
AS = arm-none-eabi-gcc -x assembler-with-cpp
# all the files will be generated with this name
PROJECT_NAME=stm32f10x_project
# user specific
SRC += ./user/main.c
# startup
ASM_SRC += ./user/startup_stm32f103xe.s
OBJECTS = $(ASM_SRC:.s=.o) $(SRC:.c=.o)
# Define optimisation level here
MC_FLAGS = -mcpu=cortex-m3
AS_FLAGS = $(MC_FLAGS) -g -mthumb
CP_FLAGS = $(MC_FLAGS) -g -mthumb -Wall -fverbose-asm
LD_FLAGS = $(MC_FLAGS) -g -mthumb -Xlinker --gc-sections -T STM32F103ZETx_FLASH.ld
# makefile rules
all: $(OBJECTS) $(PROJECT_NAME).elf $(PROJECT_NAME).hex $(PROJECT_NAME).bin
arm-none-eabi-size $(PROJECT_NAME).elf
%.o: %.c
$(CC) -c $(CP_FLAGS) -I . $(INC_DIR) $< -o $@
%.o: %.s
$(AS) -c $(AS_FLAGS) $< -o $@
%.elf: $(OBJECTS)
$(CC) $(OBJECTS) $(LD_FLAGS) -o $@
%.hex: %.elf
$(CP) -O ihex $< $@
%.bin: %.elf
$(CP) -O binary -S $< $@
clean:
rm -rf $(PROJECT_NAME).elf $(PROJECT_NAME).hex $(PROJECT_NAME).bin *.o
main.c
//#include 'stm32f10x.h' // Device header
int main()
{
return 0;
}
- 意法半导体中国本地造STM32微控制器启动规模量产
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 基于机智云与STM32的智能拐杖安全监测系统在养老物联网中的应用
- 内置全栈安全,一站式满足CRA法案与IEC 62443标准——米尔STM32MP257核心板
- 如何用 STM32 FLASH 实现等效 100 万次擦写的 EEPROM 功能?
- 实战解析:通过一个小项目掌握STM32所有外设
- STM32学了两年半,却还是不会做项目
- 意法半导体推出最新STM32MP21微处理器,兼具高性价比、低功耗、高灵活性
- 基于STM32的矿井作业环境监测系统设计与实现
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




