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

时间:2017-09-06 12:47:18

标签: stm32 bootloader

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

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

Getting Started Document的第19页,它说明了以下内容:

  

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

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

然而在互联网上的其他地方(例如this one,虽然对于F103)我已经读过有关使用ST-link对引导加载程序进行编程的必要性V2(ISP)。

在所有这些中我很困惑所以这里是我的问题:

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

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

谢谢 佩德罗

1 个答案:

答案 0 :(得分:10)

  

应用笔记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重新刷新这个芯片吗?

根据参考手册,你可以。

  

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

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

相关问题