0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > 被STM32G0快速编程难倒的,看这里

被STM32G0快速编程难倒的,看这里

来源: 21ic
2021-03-09
类别:基础知识
eye 29
文章创建人 拍明

原标题:被STM32G0快速编程难倒的,看这里

STM32G0系列微控制器除了支持Flash标准编程外,还支持Flash的快速编程。然而,在实际开发中,开发者可能会遇到一些与STM32G0快速编程相关的问题。以下是一些关于STM32G0快速编程的要点和解决方案:

一、STM32G0快速编程概述

STM32G0系列微控制器支持通过内部Flash存储器进行快速编程。这种编程方式相较于标准编程具有更高的速度,适用于需要快速更新代码或数据的场景。然而,由于快速编程的特殊性,开发者在编写代码时需要注意一些关键问题。

二、快速编程中的关键问题

  1. 快速编程代码的位置

    • 对Flash进行快速编程时,不允许对Flash进行读取操作。因此,快速编程的代码需要被放置在RAM中运行,以避免对Flash进行命令读取。在STM32G0Cube库中,快速编程的核心函数FLASH_Program_Fast被标记为__RAM_FUNC,表明该函数位于RAM区域。

    • 相比之下,STM32L4系列微控制器的Flash是single bank,其快速编程示例代码中的链接文件定义了ROM的地址为RAM区域,因此不需要使用__RAM_FUNC关键字。但在移植到STM32G0时,需要注意确保快速编程代码位于RAM中。

  2. 快速编程的源数据位置

    • 快速编程时,源数据也应该位于RAM中,而不是Flash中。因为快速编程需要将数据以256字节(64个word)为单位写入目标地址,如果源数据位于Flash中,则会导致在编程过程中读取Flash数据,从而引发问题。

    • 在从STM32L4移植到STM32G0时,如果直接将L4示例代码中的源数据数组复制到G0项目中,可能会因为数组定义的问题(如使用了const关键字导致数组位于Flash中)而导致程序在快速编程过程中崩溃。因此,需要将数组定义为位于RAM中的非const变量。

image.png

三、快速编程的实现步骤

  1. 擦除目标页

    • 在进行快速编程之前,需要先对目标页进行擦除。这可以通过调用相关的擦除函数来实现。

  2. 配置快速编程参数

    • 根据需要编程的数据大小和地址范围,配置快速编程的相关参数。

  3. 执行快速编程

    • 调用FLASH_Program_Fast函数,将源数据写入目标地址。在写入过程中,确保源数据位于RAM中,并且避免对Flash进行读取操作。

  4. 验证编程结果(可选):

    • 为了确保编程的正确性,可以对编程后的数据进行验证。这可以通过读取目标地址的数据并与源数据进行比较来实现。

四、注意事项

  • 在进行快速编程时,需要确保微控制器的电源稳定,并且避免在编程过程中进行复位或中断操作。

  • 快速编程的速度虽然较高,但也需要根据具体的应用场景和需求来选择合适的编程方式。例如,在需要频繁更新代码或数据的场景中,快速编程可以显著提高效率;而在对编程速度要求不高的场景中,则可以选择标准编程方式。

综上所述,STM32G0的快速编程虽然具有一定的挑战性,但通过合理的代码设计和注意事项的遵循,开发者可以成功地实现快速编程并提高代码更新的效率。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: STM32L4 STM32G0 STM32G4

相关资讯

资讯推荐
云母电容公司_云母电容生产厂商

云母电容公司_云母电容生产厂商

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告