mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-25 07:34:05 -06:00
stm32f1: Add support for HID Bootloader
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
4b9b705b99
commit
05efccc874
4 changed files with 42 additions and 5 deletions
|
@ -94,6 +94,8 @@ config STACK_SIZE
|
|||
|
||||
choice
|
||||
prompt "Bootloader offset" if MACH_STM32F407 || MACH_STM32F103 || MACH_STM32F070
|
||||
config STM32_FLASH_START_800
|
||||
bool "2KiB bootloader (HID Bootloader)" if MACH_STM32F103
|
||||
config STM32_FLASH_START_2000
|
||||
bool "8KiB bootloader (stm32duino)" if MACH_STM32F103 || MACH_STM32F070
|
||||
config STM32_FLASH_START_7000
|
||||
|
@ -107,6 +109,7 @@ choice
|
|||
endchoice
|
||||
config FLASH_START
|
||||
hex
|
||||
default 0x8000800 if STM32_FLASH_START_800
|
||||
default 0x8002000 if STM32_FLASH_START_2000
|
||||
default 0x8007000 if STM32_FLASH_START_7000
|
||||
default 0x8008000 if STM32_FLASH_START_8000
|
||||
|
|
|
@ -52,7 +52,11 @@ $(OUT)klipper.bin: $(OUT)klipper.elf
|
|||
$(Q)$(OBJCOPY) -O binary $< $@
|
||||
|
||||
# Flash rules
|
||||
flash: $(OUT)klipper.bin
|
||||
lib/hidflash/hid-flash:
|
||||
@echo " Building hid-flash"
|
||||
$(Q)make -C lib/hidflash
|
||||
|
||||
flash: $(OUT)klipper.bin lib/hidflash/hid-flash
|
||||
@echo " Flashing $< to $(FLASH_DEVICE)"
|
||||
$(Q)$(PYTHON) ./scripts/flash_usb.py -t $(CONFIG_MCU) -d "$(FLASH_DEVICE)" -s "$(CONFIG_FLASH_START)" $(if $(NOSUDO),--no-sudo) $(OUT)klipper.bin
|
||||
|
||||
|
|
|
@ -112,13 +112,18 @@ gpio_peripheral(uint32_t gpio, uint32_t mode, int pullup)
|
|||
void
|
||||
usb_request_bootloader(void)
|
||||
{
|
||||
if (!CONFIG_STM32_FLASH_START_2000)
|
||||
if (!(CONFIG_STM32_FLASH_START_2000 || CONFIG_STM32_FLASH_START_800))
|
||||
return;
|
||||
// Enter "stm32duino" bootloader
|
||||
// Enter "stm32duino" or HID bootloader
|
||||
irq_disable();
|
||||
RCC->APB1ENR |= RCC_APB1ENR_PWREN | RCC_APB1ENR_BKPEN;
|
||||
PWR->CR |= PWR_CR_DBP;
|
||||
BKP->DR10 = 0x01;
|
||||
if (CONFIG_STM32_FLASH_START_800)
|
||||
// HID Bootloader magic key
|
||||
BKP->DR4 = 0x424C;
|
||||
else
|
||||
// stm32duino bootloader magic key
|
||||
BKP->DR10 = 0x01;
|
||||
PWR->CR &=~ PWR_CR_DBP;
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue