STM32F303上的Bootloader:从工厂内置或外部编程?

Ped*_*ilo 3 stm32 bootloader

我有一些关于ATMEL和ATMEL引导程序的背景知识,我们正在转向ARM进行一个新项目.特别是我们将使用STM32F303RET6.这基本上是具有更多模拟输入引脚的Cortex M4.

我一直在阅读有关引导程序的文档,我非常困惑:

在" 入门文档"的第19页上,它说明了以下内容:

"嵌入式引导加载程序位于系统内存中,由ST在生产期间编程 "

此外,应用笔记AN2606,第81页提到这种内置的引导加载程序不支持通过USB编程.(仅限UART,I2C或CAN)

但是在Internet上的其他地方(例如这个,虽然对于F103)我已经读到了使用ST-link V2(ISP)编程引导加载程序的必要性.

在这一切中我很困惑所以这里是我的问题:

  • STM32芯片实际上是否带有从工厂编程的引导加载程序?
  • 工厂嵌入式引导加载程序是否有某种形式的故障保护,"始终存在"编程接口?意思是我以后可以编程第二个引导加载程序?
  • 上一个问题分到另一个问题:如果我使用ST-linkV2编程器,我会覆盖工厂编程的bootloader吗?
  • 关于BOOT1选择位,我完全失去了.如果它是处理器的逻辑功能,我该怎么设置呢?这似乎是鸡和蛋的问题.
  • 最后我可以通过USB重新刷新这个芯片吗?看起来我可以,但STM32文档1说ST编程的嵌入式dbootloader不能.我需要一个不同的引导程序吗?

我知道我很困惑,我真的很感谢你的帮助.

谢谢佩德罗

ber*_*ing 11

应用笔记AN2606,第81页提到这种内置的引导加载程序不支持通过USB编程.(仅限UART,I2C或CAN)

第81页的标题说STM32F303x4(6/8)/ 334xx/328xx设备引导加载程序,但是你说你有一个STM32F303RE6.查找第77页的表36,了解您的设备.

STM32芯片实际上是否带有从工厂编程的引导加载程序?

他们是这样.

工厂嵌入式引导加载程序是否有某种形式的故障保护,"始终存在"编程接口?

它总是在那里,你可能会认为它是一个故障保险.另一个故障保护是JTAG/SWD调试器接口.

意思是我以后可以编程第二个引导加载程序?

是的你可以.然后您可以选择由外部引脚运行的那个.

如果我使用ST-linkV2编程器,我会覆盖工厂编程的bootloader吗?

不,没有危险,内部的一个在生产后被写保护.

关于BOOT1选择位,我完全失去了.如果它是处理器的逻辑功能,我该怎么设置呢?

BOOT0和BOOT1是输入引脚.无论您的电路板提供什么,您都可以使用上拉/下拉电阻,开关,跳线从外部进行设置.在我的发现板上,它们位于引脚头上.

最后我可以通过USB重新刷新这个芯片吗?

根据参考手册,你可以.

我需要一个不同的引导程序吗?

不,但是当你对内部的不满意时,你可以有一个不同的.STM32CubeF3库分发中有一个例子Projects/STM32F303RE-Nucleo/Applications/USB_Device/DFU_Standalone.