2、驱动库文件生成

1.在windows下使用STM32CubeMX工具生成源码

 

        使用STM32CubeMX工具生成STM32G070工程后,需要把Makefile文件、CMSIS文件夹、STM32G0xx_LL_Driver文件夹拷贝到/driver_os/stm32g0xx/目录中。

2.通过修改Makefile文件,生成lib_stm32g0xx.a静态库文件

       修改后的Makefile文件如下,执行make clean;make命令即可生成lib_stm32g0xx.a库。

CC := arm-none-eabi-gcc
AR := arm-none-eabi-ar
AS := arm-none-eabi-gcc -x assembler-with-cpp
MKDIR := mkdir
RM = rm -rf
###########################################

OBJS_PATH := objs
PLATFORM	:= stm32g0xx

TARGET := lib_$(PLATFORM).a

#---------------- CFLAGS ----------------------
CFLAGS := -g -O2 -Wall
CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m0plus -march=armv6s-m
CFLAGS += -ffreestanding -nostdlib
CFLAGS += -I. -ICMSIS/Include -ICMSIS/Device/ST/STM32G0xx/Include -ISTM32G0xx_LL_Driver/Inc
CFLAGS += -DSTM32G070xx \
-DUSE_FULL_LL_DRIVER \
-DHSE_VALUE=8000000 \
-DHSE_STARTUP_TIMEOUT=100 \
-DLSE_STARTUP_TIMEOUT=5000 \
-DLSE_VALUE=32768 \
-DEXTERNAL_CLOCK_VALUE=48000 \
-DHSI_VALUE=16000000 \
-DLSI_VALUE=32000 \
-DVDD_VALUE=3300 \
-DPREFETCH_ENABLE=0 \
-DINSTRUCTION_CACHE_ENABLE=1 \
-DDATA_CACHE_ENABLE=1


#-------------------- list src  path  --------------------
COBJS_DIRS = \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src \
$(OBJS_PATH)/CMSIS/Device/ST/STM32G0xx/Source/Templates

SOBJS_DIRS = \
$(OBJS_PATH)/CMSIS/Device/ST/STM32G0xx/Source/Templates/gcc
#-------------------- list .c  objs  --------------------
SOBJS := $(OBJS_PATH)/CMSIS/Device/ST/STM32G0xx/Source/Templates/gcc/startup_stm32g070xx.o


COBJS := \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_adc.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_rcc.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_dma.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_gpio.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_exti.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_utils.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_i2c.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_rtc.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_spi.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_pwr.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_tim.o \
$(OBJS_PATH)/STM32G0xx_LL_Driver/Src/stm32g0xx_ll_usart.o \
$(OBJS_PATH)/CMSIS/Device/ST/STM32G0xx/Source/Templates/system_stm32g0xx.o

#------build rule -----
.PHONY: clean makedirs maketarget

all:
	$(MAKE) makedirs
	$(MAKE) maketarget
	@echo build end datetime:$(shell date)
	
makedirs:$(OBJS_PATH) $(COBJS_DIRS) $(SOBJS_DIRS) 
maketarget: $(TARGET)

#---------------------- build .o dir -------------------
$(OBJS_PATH):
#	@echo $(MKDIR) $(OBJS_PATH)
	-@$(MKDIR) -p $@

$(COBJS_DIRS):
#	@echo $(MKDIR) $(OBJS_DIRS)
	-@$(MKDIR) -p $@
	
$(SOBJS_DIRS):
#	@echo $(MKDIR) $(OBJS_DIRS)
	-@$(MKDIR) -p $@

#----------------------- build target --------------------
$(TARGET):$(COBJS) $(SOBJS)
	$(AR) -rsv  $(TARGET) $(SOBJS) $(COBJS)

	cp $(TARGET) ../../middle/plateform/stm32g0xx/libs

	
#------ .c >> .o -----
$(OBJS_PATH)/%.o : %.c
	$(CC) $(CFLAGS) -c -o $@ $^

#------ .s >> .o -----
$(OBJS_PATH)/%.o: %.s
	$(AS) -c $(CFLAGS) $< -o $@


clean:
	rm -f $(COBJS) $(SOBJS) $(TARGET)
	rm -f ../../middle/plateform/stm32g0xx/libs/$(TARGET)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值