跟着思兼学习Klipper(03-2)番外1-自定义stm32f103 bootloader|2

2021-11-258790
精华项目
AI 快速预览详细 收起
本文介绍了如何为其他最小系统板定制STM32F103的Bootloader。通过修改config.h和Makefile文件,解决了PB2接地和LED指示灯接在PB8的问题。使用make generic-pb8命令编译并通过Serial方式烧录生成的generic_boot20_pb8.bin文件。

番外一:为其他最小系统定制 Bootloader

整完这块最小系统板后,我不想焊接引脚,又掏出一块F103,形状不一样,看了下原理图,发现两个问题:

跟着思兼学习Klipper(03-2)番外1-自定义stm32f103 bootloader|2图1

跟着思兼学习Klipper(03-2)番外1-自定义stm32f103 bootloader|2图2

  1. PB2(BOOT1)接地了
  2. LED指示灯接在PB8

跟着思兼学习Klipper(03-2)番外1-自定义stm32f103 bootloader|2图3

我们看看 stm32duino-bl 有没有预编译好的,结果发现没有。那么自己动手,丰衣足食,我们以pb9为模板,看看如何修改定制针对此板的引导器,尝试修改如下内容:

// config.h
// for STM32F103C8T6 大板
// config.h
#elif defined TARGET_GENERIC_F103_PB8

    #define LED_BANK            GPIOB
    #define LED_PIN             8
    #define LED_ON_STATE        1

    // Button (if you have one)
    #define BUTTON_BANK GPIOA
    #define BUTTON_PIN 3
    #define BUTTON_PRESSED_STATE 1

以及 Makefile 文件:

# Makeflie
generic-pb8: begin clean gccversion build_generic-pb8 sizeafter finished  copy_generic-pb8 end

build_generic-pb8: TARGETFLAGS= -DTARGET_GENERIC_F103_PB8 $(DEFINES)
# Set the linker script
build_generic-pb8: LDFLAGS +=-T$(ST_LIB)/c_only_md_high_density.ld
build_generic-pb8: elf bin lss sym
copy_generic-pb8:
        @echo
        home.php?mod=space&uid=68693 "Copying to binaries folder"
        @echo
        cp $(TARGET).bin bootloader_only_binaries/generic_boot20_pb8.bin
        @echo

使用如下命令编译:make generic-pb8 ,生成的文件在 bootloader_only_binaries/generic_boot20_pb8.bin。通过 Serial 方式烧录,测试成功。关于配置文件,我们发现它定义了两个引脚:

  1. LED_PIN ,即板载LED指示灯,根据情况设置,这里是 PB8

  2. BUTTON_PIN,根据情况选择。置高即进入并停留在 stm32duino-bootloader。我们这里选择 PA3

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -