我对ATMEL和ATMEL引导加载程序有一些背景知识,我们正在转向ARM进行新项目。特别是我们将使用STM32F303RET6。 这基本上是一个具有更多模拟输入引脚的Cortex M4。
我一直在阅读有关引导加载程序的文档,我非常困惑:
在Getting Started Document的第19页,它说明了以下内容:
“嵌入式引导加载程序位于系统内存中,已编程 ST在生产期间 “
此外,应用笔记AN2606,第81页提到这种内置的引导加载程序不支持通过USB编程。 (仅限UART,I2C或CAN)
然而在互联网上的其他地方(例如this one,虽然对于F103)我已经读过有关使用ST-link对引导加载程序进行编程的必要性V2(ISP)。
在所有这些中我很困惑所以这里是我的问题:
我知道我很困惑,我真的很感谢你的帮助。
谢谢 佩德罗
答案 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库分发中有一个示例。