이것은 DFU 또는 HID-FLASH 프로토콜을 사용하여 USB를 통해 플래시 펌웨어 바이너리를 허용하는 사용자 정의 STM32F1XX/STM32F4XX 부트 로더입니다. 이 프로젝트의 기본 의도는 더 많은 STM32 MCU의 복잡성을 쉽게 다운로드, 구성, 컴파일 및 플래시 할 수있는 단일 프로젝트에 대한 복잡성을 쇄도하는 것입니다.
물리적 보드와의 상호 작용을 최소화하여 새 펌웨어를 플래시하는 것은 실제로 편리합니다. 내 경우에는 버튼 (실제로 2 개의 재설정 + LCD 인코더 버튼)에서 Octopi를 통해 3D 프린터의 BTT GTR 1.0 보드를 플래시했습니다. 이제 수동 상호 작용없이 RPI의 GPIO를 통해 트리거 할 수 있습니다.
이 부트 로더는 진행중인 작업이므로 테스트되지 않았으며 하드웨어 호환성에 대해 여전히 고려해야 할 것이 많습니다. 모든 측면이 특정 보드에서 작동하도록 할 때까지 실험적인 것으로 간주하십시오.
이 프로젝트는 Serasidis/STM32_HID_BOOTLOADER (Bootsector/STM32-Hid-Bootloader에서 시작 함)에서 영감을 얻었으며 HID-FLASH 도구와 호환성을 유지했습니다.
이 프로젝트는 Platformio에 적용됩니다 (프로젝트는 ST-Link/V2 장치가 연결되어있는 경우 그대로 구축 및 업로드해야합니다). 약간 수정 된 부분을 포함하는 대신 원래 STM32CUBE 프레임 워크 라이브러리를 사용합니다. DFU 프로토콜은 STM32F1XX/4XX 플랫폼에서 구현 및 테스트됩니다. 현재 이전 버전의 HID-FLASH.EXE와의 호환성은 STM32F4XX 컴파일에서만 유지됩니다. Hid-Flash Tool의 출처는 프로젝트에 포함되어 있지 않습니다.
이것을 시도하기 전에, 당신은 당신이 당신의 보드의 원래 부트 로더 사본을 가지고 있는지, 당신은 문제없이 보드로 성공적으로 번쩍였습니다 .
bootloader 동작 사용자 지정은 configuration.h 파일을 수정하여 수행됩니다. 자세한 내용은 파일 댓글을 참조하십시오.
보드와 PC에 올바르게 연결된 ST-Link 호환 장치를 사용하십시오. Platformio의 업로드 명령을 사용하여 설치하십시오. Boot0 핀을 3.3V로 설정하여 보드를 재설정하는 것도 작동하지만 이는 보드와 MCU에 따라 다릅니다 (주제에 대한 자세한 정보는 위키키를 확인하십시오).
구성된 트리거 및 재설정을 활성화하고 보드를 재설정하십시오 (핀 트리거의 경우 재설정하는 동안 핀을 활성화하고 USB 장치가 호스트에 나타날 때까지 핀을 활성화하십시오. DFU-UTIL.EXE 또는 HID-FLASH.EXE 또는 HID-FLASH.EXE를 사용하여 유사 파일을 수동으로 업로드하기 위해 DFU-UTIL.EXE 또는 dfu -FLASH.EXE를 사용하십시오. 다음 예에서와 같이 펌웨어 플랫폼의 ENV 섹션에서 선호하는 upload-protocol 로 hid .
#
# Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
#
[env:BIGTREE_GTR_V1_0]
extends = stm32_variant
board = marlin_BigTree_GTR_v1
board_build.offset = 0x8000
build_flags = ${stm32_variant.build_flags} -DSTM32F407IX
upload_protocol = dfu
플래싱 및 사용에 대한 자세한 내용은 위키를 방문하십시오.
더 많은 트리거, 더 깜박이는 방법, 더 많은 STM32 MCU / 보드를 지원합니다.
지금 까지이 프로젝트는 다음 보드에서 테스트되었습니다.
STM32F4XX :
STM32F1XX :