STM32F303上的Bootloader:是从工厂内置的还是外部编程的? [英] Bootloader on STM32F303: built in from factory or externally programmed?

查看:337
本文介绍了STM32F303上的Bootloader:是从工厂内置的还是外部编程的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对ATMEL和ATMEL引导加载程序有一定的了解,并且我们正转向ARM从事一个新项目.特别是,我们将使用STM32F303RET6. 本质上,这是具有更多模拟输入引脚的Cortex M4.

I have some background on ATMEL and ATMEL bootloaders and we are moving to ARM for a new project. In particular we will be using the STM32F303RET6. This essentially is a a Cortex M4 with a higher number of Analog input pins.

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

I have been going through the documentation regarding the bootloader and I am extremely confused:

"嵌入式引导加载程序位于系统内存中,已进行编程 ST在生产过程中"

"The embedded boot loader is located in the System memory, programmed by ST during production"

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

Furthermore application note AN2606, page 81 mentions this built in bootloader does not support programming over USB. (only UART, I2C or CAN)

但是在Internet上的其他地方(例如

However on other places over the Internet (such as this one, although for an F103) I've read about the need to program the bootloader using the ST-link V2 (ISP).

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

Among all this I'm quite confused so here are my questions:

  • Do STM32 chips actually come with a bootloader programmed from factory or not?
  • Is the factory embedded bootloader some form of failsafe, "always there" programming interface? Meaning I can later program a second bootloader?
  • The previous question forks to another one: if I use the ST-linkV2 programmer will I overwrite the factory programmed bootloader?
  • I am at a total loss regarding the BOOT1 selection bit. How am I supposed to set it if it's a logic feature of the processor? This seems like a chicken and egg problem.
  • Finally can I reflash this chip over USB or not? It appears I could but the STM32 documentation 1 says the embedde dbootloader programmed by ST can't. Do I need a different bootloader?

我知道我很困惑,非常感谢您对此提供的帮助.

I know I am way confused and I'd really appreciate your help on this.

谢谢 佩德罗

推荐答案

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

application note AN2606, page 81 mentions this built in bootloader does not support programming over USB. (only UART, I2C or CAN)

第81页上的标题为STM32F303x4(6/8)/334xx/328xx设备自举程序,但您说您有STM32F303RE6.在第77页的表36中查找您的设备.

The title on page 81 says STM32F303x4(6/8)/334xx/328xx devices bootloader, but you say you have a STM32F303RE6. Look up table 36 on page 77 for your device.

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

Do STM32 chips actually come with a bootloader programmed from factory or not?

他们这样做.

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

Is the factory embedded bootloader some form of failsafe, "always there" programming interface?

它始终存在,您可能会认为它是故障保护.另一个故障保护是JTAG/SWD调试器接口.

It's always there, you may think of it as a failsafe. The other failsafe is the JTAG/SWD debugger interface.

是指我以后可以编程第二个引导程序吗?

Meaning I can later program a second bootloader?

是的,可以.然后,您可以选择要使用外部引脚运行的引脚.

Yes you can. Then you can select which one to run by external pins.

如果我使用ST-linkV2编程器,是否会覆盖出厂编程的引导程序?

if I use the ST-linkV2 programmer will I overwrite the factory programmed bootloader?

不,没有危险,内部的产品在生产后受到写保护.

No, there is no danger, the internal one is write protected after production.

我对BOOT1选择位不知所措.如果它是处理器的逻辑功能,我应该如何设置?

I am at a total loss regarding the BOOT1 selection bit. How am I supposed to set it if it's a logic feature of the processor?

BOOT0和BOOT1是输入引脚.您可以从外部使用上拉/下拉电阻器,开关,跳线对其进行设置,无论您的电路板提供了什么.在我的Discovery板上,可以在引脚接头上找到它们.

BOOT0 and BOOT1 is an input pin. You set it from outside, using a pullup/pulldown resistor, switch, jumper, whatever your board provides. On my Discovery board, they are available on the pin headers.

最后可以通过USB重新刷新此芯片吗?

Finally can I reflash this chip over USB or not?

根据参考手册,您可以.

According the Reference Manual, you can.

我需要其他引导程序吗?

Do I need a different bootloader?

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

No, but you can have a different one, when you are not satisfied with the internal one. There is an example in the STM32CubeF3 library distribution, in Projects/STM32F303RE-Nucleo/Applications/USB_Device/DFU_Standalone.

这篇关于STM32F303上的Bootloader:是从工厂内置的还是外部编程的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆