STM32 HID Bootloader 项目常见问题解决方案

STM32 HID Bootloader 项目常见问题解决方案

stm32-hid-bootloader Driverless USB HID bootloader and flashing tool for STM32F10X devices 项目地址: https://gitcode.com/gh_mirrors/st/stm32-hid-bootloader

项目基础介绍

STM32 HID Bootloader 是一个无驱动的 USB HID 引导加载程序和闪存工具,专门为 STM32F10X 设备设计。该项目不使用 ST 的库,因为它们被认为是臃肿且有问题的。相反,它仅使用了 ST 提供的 SDK 中的 CMSIS 和一些必要的系统文件和宏。这使得引导加载程序非常小,不到 4KB。用户可以使用提供的 CLI 工具(如 hid-flash MYFIRMWARE.BIN)来刷写固件。

主要的编程语言是 C 语言,占项目代码的 75.4%。此外,项目中还使用了汇编语言(18.4%)、富文本格式(3.8%)、HTML(2.3%)和 Makefile(0.1%)。

新手使用注意事项及解决方案

1. 编译环境设置问题

问题描述:新手在尝试编译项目时,可能会遇到编译环境设置不正确的问题,导致编译失败。

解决步骤

  1. 安装 GCC ARM 工具链:确保你已经安装了最新版本的 GCC ARM 工具链。你可以从 GNU Arm Embedded Toolchain 下载并安装。
  2. 设置环境变量:将 GCC ARM 工具链的路径添加到系统的环境变量中。例如,在 Linux 系统中,你可以编辑 ~/.bashrc 文件,添加如下内容:
    export PATH=$PATH:/path/to/gcc-arm-none-eabi/bin
    
  3. 验证安装:在终端中运行 arm-none-eabi-gcc --version,确认工具链已正确安装并可用。

2. 固件刷写问题

问题描述:在刷写固件时,可能会遇到设备无法识别或刷写失败的问题。

解决步骤

  1. 检查 BOOT1 引脚:确保 BOOT1 引脚在启动时被驱动为高电平。对于 Blue Pill 板,设置 BOOT1 跳线到 1 位置,BOOT0 跳线到 0 位置。
  2. 使用正确的 CLI 工具:确保你使用的是项目提供的 hid-flash 工具。你可以从项目的 cli 目录中找到该工具的源代码并编译。
  3. 检查固件文件:确保固件文件(如 MYFIRMWARE.BIN)存在且路径正确。

3. 中断向量表位置问题

问题描述:在编译用户应用程序时,可能会遇到中断向量表位置不正确的问题。

解决步骤

  1. 修改 Makefile:在项目的 Makefile 中,确保设置了正确的 FLASH 起始地址和中断向量表位置。通常,这些设置在 Makefile.ld 脚本中。
  2. 检查链接脚本:确保 .ld 脚本中定义了正确的 FLASH 起始地址和中断向量表位置。例如:
    FLASH (rx) : ORIGIN = 0x8001000, LENGTH = 0x10000
    
  3. 重新编译:修改完成后,重新编译项目,确保所有设置都正确应用。

通过以上步骤,新手可以更好地理解和使用 STM32 HID Bootloader 项目,避免常见问题的发生。

stm32-hid-bootloader Driverless USB HID bootloader and flashing tool for STM32F10X devices 项目地址: https://gitcode.com/gh_mirrors/st/stm32-hid-bootloader

作者:邹岩讳Sally

物联沃分享整理
物联沃-IOTWORD物联网 » STM32 HID Bootloader 项目常见问题解决方案

发表回复