0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32片上Flash读写一些重要知识

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-06 14:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

关于STM32片上Flash读写操作,之前很多朋友遇到过坑,也问过很多相关的问题,这里再简单总结一下。

1写在前面

STM32片上Flash除了存储我们的代码,多余的空间还可以供我自己编程(读写)。比如,存储标志位、字库等。

如果对片上Flash读写操作不当,将会导致不可挽回的结局。比如:修改了应用程序代码导致程序跑飞,非对其操作导致异常中断等。

因此,我们对片上Flash读写操作时,一定要避免一些错误的做法。下面将讲述一些关于STM32片上Flash的知识,让大家掌握更多相关知识。

2

Flash闪存接口

STM32片上Flash闪存接口是在AHB协议上实现了对指令和数据的访问,它通过对存储器的预取缓存,加快了存储器的访问;

闪存接口还实现了在所有工作电压下对闪存编程和擦除所需的逻辑电路,这里还包括访问和写入保护以及选项字节的控制。

内置闪存模块可以在通用地址空间直接寻址,任何32位数据的读操作都能访问闪存模块的内容并得到相应的数据。

3

STM32片上Flash容量

STM32片上Flash容量大小与芯片的型号有关,具体大小可以参看命名规则:

而我们也可以通过读取Flash容量寄存器,或通过STM32 ST-LINK Utility工具获取芯片容量。具体可以参看我的另一篇文章《关于STM32的这几个寄存器》

4

Flash闪存模块的组织

STM32的Flash,有的是分页,而有的却是分块,具体可以查阅“参考手册”。

比如:STM32F0、 F1、 F3、 L1等就是按Page页来划分的,如下图:

而像STM32F2、F4等就是按Sector扇区来划分,如下图:

所以,如果移植代码,从Page页移植到Sector扇区,或者从Sector扇区移植到Page页,这部分底层代码必须要修改才行。

5

非对其写操作

STM32为32位的MCU,即4个字节。如果不是按照4个字节的写Flash,将导致Faults异常。

写Flash过程:

这里大家可以参看我之前分享的文章:

1.位带别名区最低有效位

2.谈谈STM32(CM3)的Faults异常

6

写操作不响应代码或数据读取

对STM32内部FLash的写操作,相对于执行指令是比较耗时的。从数据手册可以得出16位数据编程时间再40 --- 70us。

从STM32编程手册中,可以知道:在进行写或擦除操作时,不能进行代码或数据的读取操作。

比如:你在写Flash期间有接收串口数据,很有可能会丢串口数据。

因为比较耗时,所以,在写数据时,CPU不会执行其他操作。

简单说:在写Flash时,CPU 不能取指令,导致中断得不到及时响应,从而发生接收到的数据未及时读走而被覆盖的现象。

遇到这种情况,解决的办法:使用DMA。DMA不需要CPU干预,一旦 USART 有数据接收到,由 DMA 负责将其传输至循环缓冲区中。软件定期检测循环缓冲区中是否有接收到的数据,如果有则加以处理。

提示:

如果你的代码会反复读Flash,建议使用外部Flash。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18603

    浏览量

    386546
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154663
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371046
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    贴片电容精度J±5%的一些详细知识

    贴片电容精度J±5%表示电容的实际值与标称值之间的偏差范围在±5%以内 ,以下是关于贴片电容精度J±5%的一些详细知识、精度等级含义 J±5% :字母“J”在贴片电容的标识中通常表示标称精度
    的头像 发表于 11-20 14:38 109次阅读
    贴片电容精度J±5%的<b class='flag-5'>一些</b>详细<b class='flag-5'>知识</b>

    PI加热知识FAQ

    加热最大功率是多少?常规功率密度是3w/cm2,要看加热贴合的基材散热怎么样,散热不好的话,功率可以小点,散热好的话,功率可以适当增加一些。加热
    的头像 发表于 09-26 16:12 462次阅读
    PI加热<b class='flag-5'>片</b><b class='flag-5'>知识</b>FAQ

    STM32C011开发(3)----Flash操作

    STM32C011 系列微控制器内置 Flash 存储器,支持程序存储与数据保存,具备页面擦除、双字写入、读写保护等功能。本文将简要介绍 STM32C011 的
    的头像 发表于 09-18 16:48 3590次阅读
    <b class='flag-5'>STM32</b>C011开发(3)----<b class='flag-5'>Flash</b>操作

    当不同的数据放在同Flash页面上时,请问如何在不影响其他数据的情况下更改一些单独的数据?

    当不同的数据放在同Flash页面上时,如何在不影响其他数据的情况下更改一些单独的数据?
    发表于 08-22 06:25

    SPI NOR FLASH是什么,与SPI NAND Flash的区别

    存储位数据 (0或1) ,可以直接寻址,寻址速度非常快。SPI NOR FLASH支持全双工、单工以及半双工传输方式,被广泛应用于嵌入式系统中,如Bootloader、操作系统内核等程序的存储。由于它的读写速度和寻址方式类似于
    的头像 发表于 08-21 09:26 1092次阅读

    求助,关于STM32F407的flash读写问题求解

    目前flash模拟EEPROM是参考的官方的flash读写代码,但C语言中attribute ((at())绝对定位的应用 网上的段代码如下 1、定位到
    发表于 07-18 07:14

    第二十九章 读写内部FLASH

    本文介绍了W55MH32内部FLASH,其含主存储、系统存储等,可存储代码及掉电保存数据。读写需解锁、擦除页等步骤,标准库提供相关函数。还展示了擦除编程测试及模拟EEPROM读写的实验。
    的头像 发表于 06-20 14:09 990次阅读
    第二十九章 <b class='flag-5'>读写</b>内部<b class='flag-5'>FLASH</b>

    关于芯片设计的一些基本知识

    芯片的设计理念众所周知,芯片拥有极为复杂的结构。以英伟达的B200芯片为例,在巴掌大的面积,塞入了2080亿个晶体管。里面的布局,堪称个异次元空间级的迷宫。英伟达B200芯片如此复杂的架构
    的头像 发表于 06-11 12:16 778次阅读
    关于芯片设计的<b class='flag-5'>一些</b>基本<b class='flag-5'>知识</b>

    MCUFlash

        MCUFlash是微控制器内部集成的非易失性存储器,主要用于存储程序代码、常量数据及系统配置信息。其核心特性与功能如下: 、定义与类型‌
    的头像 发表于 05-06 14:26 846次阅读

    STM32L476 Flash擦除失败的原因?

    开发板MCU型号:STM32L476RG 同样的固件在开发板中flash读写擦除操作都没问题,但在产品中擦除函数返回成功,但flash中的数据其实并没有擦除。 这两款MCU在
    发表于 04-23 08:26

    S32K311如何在Flash测试ECC?

    我有一些与目标 S32K311 Flash ECC 相关的问题 - ERM 是否负责 Code Flash 和 Data Flash
    发表于 04-14 08:47

    STM32C031F4 FLASH存储器读写例程各位高能不能提供个?

    STM32C031F4FLASH存储器 读写例程 各位高能不能提供个谢谢大家
    发表于 03-13 07:37

    使用DLP3479+DLP4710+DLPA3005开发光机遇到一些疑问求解

    目前在使用DLP3479+DLP4710+DLPA3005开发光机。遇到一些疑问如下: 1.DLPC3479 目前是通过SPI加载flash图片数据,是否可以通过外挂内存(RAM)的模式加载图片
    发表于 02-20 08:02

    【半导体存储】关于NAND Flash一些知识

      前言   作为名电子专业的学生,半导体存储显然是绕不过去的个坎,今天聊聊关于Nand Flash一些
    发表于 12-17 17:34

    关于NAND Flash一些知识

    前言 作为名电子专业的学生,半导体存储显然是绕不过去的个坎,今天聊聊关于Nand Flash一些
    的头像 发表于 12-17 17:33 1414次阅读