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

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

3天内不再提示

stm32变量能存进flash中吗

科技绿洲 来源:网络整理 作者:网络整理 2023-12-28 15:33 次阅读

当涉及到将变量存储在Flash中时,我们通常指的是将变量存储在STM32微控制器的闪存器件中。在STM32芯片中,闪存用于存储程序代码和只读数据,但对于一些应用情况,我们可以使用闪存来存储可读写的变量。

虽然SRAM是通常用于存储变量的内存区域,但在某些场景中,需要将变量存储在闪存中的原因有以下几点:

  1. 节省SRAM空间:对于资源受限的应用,SRAM可能是有限的,因此在闪存中存储变量可以释放SRAM空间,使其可以用于其他用途。
  2. 数据持久性:将变量存储在闪存中可以确保其数据持久性,即使在断电或重新启动后,变量的值也能保持不变。
  3. 更新性:如果需要更新变量的值,而不需要重新烧录MCU的固件或运行其他复杂的操作,可以通过修改闪存中的数据来实现。

要将变量存储在闪存中,以下是可能的方法:

  1. 使用编译器指令:某些编译器支持特殊的指令,例如__attribute__((section(".flash_var"))),可以将变量存储在特定的闪存区域。具体的指令和语法可能因编译器而异,必须查阅相关编译器的文档以了解更多信息
  2. 自定义存储函数:您可以编写自定义的函数,将变量值写入闪存的特定地址。这需要了解芯片的闪存组织和操作细节,以确保正确的写入过程,并正确处理闪存的擦除和写入操作。
  3. 使用HAL库:ST提供了一个用于与STM32微控制器进行交互的标准库,称为HAL库。HAL库提供了一种使用简单的接口将变量保存到闪存中的方法。具体的函数和示例代码可以在官方提供的HAL库文档中找到。

无论您选择哪种方法,都需要较好地了解STM32的闪存器件的特性和限制。

闪存器件通常被分为多个扇区,每个扇区的大小可能不同。在将变量存储在闪存中时,需要考虑以下因素:

  1. 擦除和写入操作:闪存通常需要在写入之前擦除扇区,因此存储变量时需要进行擦除和写入操作。这可能需要引入性能延迟,并且会消耗相对较长的时间。
  2. 寿命和耐久性:闪存器件的擦写次数是有限的。因此,如果需要频繁地更新存储在闪存中的变量,需要注意确保不会超过芯片制造商指定的最大擦写次数。
  3. 数据保护和完整性:为了确保数据的正确性和完整性,应该使用一些校验机制,例如循环冗余校验码(CRC),来验证变量在闪存中的存储和读取过程。

综上所述,将变量存储在STM32的闪存中是可行的,但这需要了解芯片的设计特征和操作细节。在使用闪存存储变量时,必须并且非常小心,以确保数据的正确性和完整性,并遵守芯片制造商的推荐和规范。

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

    关注

    48

    文章

    7646

    浏览量

    151985
  • FlaSh
    +关注

    关注

    10

    文章

    1642

    浏览量

    148549
  • STM32
    +关注

    关注

    2272

    文章

    10923

    浏览量

    357318
  • 闪存器
    +关注

    关注

    0

    文章

    7

    浏览量

    1992
收藏 人收藏

    评论

    相关推荐

    读取STM32内部的flash

    我要保存一个密码,掉电不丢失。我知道把数据flash里面掉电不会丢失,但是要怎么把数据写进flash里面,和怎样从flash里面读取数据
    发表于 07-03 16:54

    stm32flash存放一个变量

    是什么?这时还没有进行写入。这样就会导致变量的值在一开始就错了。如何解决这一问题?有人说,FLASH还没被写入数据时里面的值不是0x00就是0xFF,那么就可以通过判断这个固定地址的值是否为0x00或者0xFF,从而判断是否为
    发表于 08-31 14:57

    Flash用来什么

    Flash用来什么?最基本的理解:Flash用来代码,RAM用来数据(如堆,栈,全局变量
    发表于 08-02 06:49

    STM32H743 Flash用来什么

    STM32H743 Flash用来什么?STM32H743 Flash的硬件特性和基本操作是什么?
    发表于 09-24 09:41

    使用stm32时看不到flash的初始化变量值是怎么一回事呢?

    使用stm32时看不到flash的初始化变量值是怎么一回事呢?
    发表于 12-01 07:33

    ulog_easyflash满后去读取日志系统重启咋办

    MCU:stm32f407SPI flash:W25Q128IDE:rt-thread studio软件包:ulog_easyflash+easyflasheasyflash同时开启了ENV环境变量
    发表于 12-30 15:17

    STM32Flash运行程序的时序分析

    插入等待周期以得到正确的结果。 问题是在Flash的速度比CPU慢的情况下,是不是可以简单地说STM32在执行Flash的程序时每条指令都需要插入等待周期呢?等待周期的插入对程序的执
    发表于 12-04 15:02 1649次阅读

    剖析STM32FLASH和SRAM的使用情况

    01前言 STM32片上自带FLASH和SRAM,简单讲FLASH用来存储程序的,SRAM是用来存储运行程序的中间变量。本文详细分析下如何
    的头像 发表于 04-09 17:53 8133次阅读
    剖析<b class='flag-5'>STM32</b>的<b class='flag-5'>FLASH</b>和SRAM的使用情况

    STM32到CONST的全局变量

    STM32启动文件一文配有此图),可得出,globalConstDat的地址位于Flash memory(0x0800 0000~0x0801 ffff),其它变量的地址位于SRAM。  
    的头像 发表于 07-23 10:50 4927次阅读

    STM32内部Flash读写问题

    读写要注意几点keil的.map文件包含了什么操作不当导致Flash损坏会怎样Flash上锁与解锁Keil编译器如何查看MCU寄存器的值Flash读、写、擦除、擦除写代码下一篇:
    发表于 12-01 20:21 20次下载
    <b class='flag-5'>STM32</b>内部<b class='flag-5'>Flash</b>读写问题

    STM32F103:内部Flash的读写

    一、Flash基本知识1. Flash容量Flash根据容量大小可以分为以下三种:1、小容量产品:Flash大小为1-32KB(STM32F
    发表于 12-01 20:51 15次下载
    <b class='flag-5'>STM32</b>F103:内部<b class='flag-5'>Flash</b>的读写

    Keilstm32程序运行占用flash大小

    stm32程序运行占用flash大小Keil编译后如下图code储存程序代码RO-data储存const常量和指令RW-data储存初始化不为0的全局变量ZI-data储存未初始化的全局变量
    发表于 12-02 10:36 10次下载
    Keil<b class='flag-5'>中</b><b class='flag-5'>stm32</b>程序运行占用<b class='flag-5'>flash</b>大小

    STM32STM32 变量存储在片内FLASH的指定位置

    在这里以STM32L4R5为例(官方出的DEMO板),将变量存储在指定的片内FLASH地址(0x081F8000)。一、MDK Keil软件操作uint8_t version[12
    发表于 12-02 11:06 10次下载
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>STM32</b> <b class='flag-5'>变量</b>存储在片内<b class='flag-5'>FLASH</b>的指定位置

    STM32H743 Flash

    Flash用来什么?最基本的理解:Flash用来代码,RAM用来数据(如堆,栈,全局变量
    发表于 12-07 11:51 8次下载
    <b class='flag-5'>STM32</b>H743 <b class='flag-5'>Flash</b>

    STM32F4外设配置速查【FLASH部分】

    、SPI等)下载程序或应用数据到存储器STM32允许用户在应用程序烧录FLASH的内容局限性:使用前需要有bootloader被以IC
    发表于 12-09 10:21 1次下载
    <b class='flag-5'>STM32</b>F4外设配置速查【<b class='flag-5'>FLASH</b>部分】