衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

stm32變量能存進(jìn)flash中嗎

科技綠洲 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-12-28 15:33 ? 次閱讀

當(dāng)涉及到將變量存儲(chǔ)在Flash中時(shí),我們通常指的是將變量存儲(chǔ)在STM32微控制器的閃存器件中。在STM32芯片中,閃存用于存儲(chǔ)程序代碼和只讀數(shù)據(jù),但對(duì)于一些應(yīng)用情況,我們可以使用閃存來(lái)存儲(chǔ)可讀寫(xiě)的變量。

雖然SRAM是通常用于存儲(chǔ)變量的內(nèi)存區(qū)域,但在某些場(chǎng)景中,需要將變量存儲(chǔ)在閃存中的原因有以下幾點(diǎn):

  1. 節(jié)省SRAM空間:對(duì)于資源受限的應(yīng)用,SRAM可能是有限的,因此在閃存中存儲(chǔ)變量可以釋放SRAM空間,使其可以用于其他用途。
  2. 數(shù)據(jù)持久性:將變量存儲(chǔ)在閃存中可以確保其數(shù)據(jù)持久性,即使在斷電或重新啟動(dòng)后,變量的值也能保持不變。
  3. 更新性:如果需要更新變量的值,而不需要重新燒錄MCU的固件或運(yùn)行其他復(fù)雜的操作,可以通過(guò)修改閃存中的數(shù)據(jù)來(lái)實(shí)現(xiàn)。

要將變量存儲(chǔ)在閃存中,以下是可能的方法:

  1. 使用編譯器指令:某些編譯器支持特殊的指令,例如__attribute__((section(".flash_var"))),可以將變量存儲(chǔ)在特定的閃存區(qū)域。具體的指令和語(yǔ)法可能因編譯器而異,必須查閱相關(guān)編譯器的文檔以了解更多信息
  2. 自定義存儲(chǔ)函數(shù):您可以編寫(xiě)自定義的函數(shù),將變量值寫(xiě)入閃存的特定地址。這需要了解芯片的閃存組織和操作細(xì)節(jié),以確保正確的寫(xiě)入過(guò)程,并正確處理閃存的擦除和寫(xiě)入操作。
  3. 使用HAL庫(kù):ST提供了一個(gè)用于與STM32微控制器進(jìn)行交互的標(biāo)準(zhǔn)庫(kù),稱(chēng)為HAL庫(kù)。HAL庫(kù)提供了一種使用簡(jiǎn)單的接口將變量保存到閃存中的方法。具體的函數(shù)和示例代碼可以在官方提供的HAL庫(kù)文檔中找到。

無(wú)論您選擇哪種方法,都需要較好地了解STM32的閃存器件的特性和限制。

閃存器件通常被分為多個(gè)扇區(qū),每個(gè)扇區(qū)的大小可能不同。在將變量存儲(chǔ)在閃存中時(shí),需要考慮以下因素:

  1. 擦除和寫(xiě)入操作:閃存通常需要在寫(xiě)入之前擦除扇區(qū),因此存儲(chǔ)變量時(shí)需要進(jìn)行擦除和寫(xiě)入操作。這可能需要引入性能延遲,并且會(huì)消耗相對(duì)較長(zhǎng)的時(shí)間。
  2. 壽命和耐久性:閃存器件的擦寫(xiě)次數(shù)是有限的。因此,如果需要頻繁地更新存儲(chǔ)在閃存中的變量,需要注意確保不會(huì)超過(guò)芯片制造商指定的最大擦寫(xiě)次數(shù)。
  3. 數(shù)據(jù)保護(hù)和完整性:為了確保數(shù)據(jù)的正確性和完整性,應(yīng)該使用一些校驗(yàn)機(jī)制,例如循環(huán)冗余校驗(yàn)碼(CRC),來(lái)驗(yàn)證變量在閃存中的存儲(chǔ)和讀取過(guò)程。

綜上所述,將變量存儲(chǔ)在STM32的閃存中是可行的,但這需要了解芯片的設(shè)計(jì)特征和操作細(xì)節(jié)。在使用閃存存儲(chǔ)變量時(shí),必須并且非常小心,以確保數(shù)據(jù)的正確性和完整性,并遵守芯片制造商的推薦和規(guī)范。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7649

    瀏覽量

    152109
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1642

    瀏覽量

    148674
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10923

    瀏覽量

    357575
  • 閃存器
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    1994
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    讀取STM32內(nèi)部的flash

    我要保存一個(gè)密碼,掉電不丟失。我知道把數(shù)據(jù)進(jìn)flash里面掉電不會(huì)丟失,但是要怎么把數(shù)據(jù)寫(xiě)進(jìn)flash里面,和怎樣從flash里面讀取數(shù)據(jù)
    發(fā)表于 07-03 16:54

    stm32flash存放一個(gè)變量

    是什么?這時(shí)還沒(méi)有進(jìn)行寫(xiě)入。這樣就會(huì)導(dǎo)致變量的值在一開(kāi)始就錯(cuò)了。如何解決這一問(wèn)題?有人說(shuō),FLASH還沒(méi)被寫(xiě)入數(shù)據(jù)時(shí)里面的值不是0x00就是0xFF,那么就可以通過(guò)判斷這個(gè)固定地址的值是否為0x00或者0xFF,從而判斷是否為
    發(fā)表于 08-31 14:57

    Flash用來(lái)什么

    Flash用來(lái)什么?最基本的理解:Flash用來(lái)代碼,RAM用來(lái)數(shù)據(jù)(如堆,棧,全局變量
    發(fā)表于 08-02 06:49

    STM32H743 Flash用來(lái)什么

    STM32H743 Flash用來(lái)什么?STM32H743 Flash的硬件特性和基本操作是什么?
    發(fā)表于 09-24 09:41

    使用stm32時(shí)看不到flash的初始化變量值是怎么一回事呢?

    使用stm32時(shí)看不到flash的初始化變量值是怎么一回事呢?
    發(fā)表于 12-01 07:33

    ulog_easyflash滿(mǎn)后去讀取日志系統(tǒng)重啟咋辦

    MCU:stm32f407SPI flash:W25Q128IDE:rt-thread studio軟件包:ulog_easyflash+easyflasheasyflash同時(shí)開(kāi)啟了ENV環(huán)境變量
    發(fā)表于 12-30 15:17

    STM32Flash運(yùn)行程序的時(shí)序分析

    插入等待周期以得到正確的結(jié)果。 問(wèn)題是在Flash的速度比CPU慢的情況下,是不是可以簡(jiǎn)單地說(shuō)STM32在執(zhí)行Flash的程序時(shí)每條指令都需要插入等待周期呢?等待周期的插入對(duì)程序的執(zhí)
    發(fā)表于 12-04 15:02 ?1651次閱讀

    剖析STM32FLASH和SRAM的使用情況

    01前言 STM32片上自帶FLASH和SRAM,簡(jiǎn)單講FLASH用來(lái)存儲(chǔ)程序的,SRAM是用來(lái)存儲(chǔ)運(yùn)行程序的中間變量。本文詳細(xì)分析下如何
    的頭像 發(fā)表于 04-09 17:53 ?8136次閱讀
    剖析<b class='flag-5'>STM32</b>的<b class='flag-5'>FLASH</b>和SRAM的使用情況

    STM32到CONST的全局變量

    STM32啟動(dòng)文件一文配有此圖),可得出,globalConstDat的地址位于Flash memory(0x0800 0000~0x0801 ffff),其它變量的地址位于SRAM。 ?
    的頭像 發(fā)表于 07-23 10:50 ?4944次閱讀

    STM32內(nèi)部Flash讀寫(xiě)問(wèn)題

    讀寫(xiě)要注意幾點(diǎn)keil的.map文件包含了什么操作不當(dāng)導(dǎo)致Flash損壞會(huì)怎樣Flash上鎖與解鎖Keil編譯器如何查看MCU寄存器的值Flash讀、寫(xiě)、擦除、擦除寫(xiě)代碼下一篇:
    發(fā)表于 12-01 20:21 ?20次下載
    <b class='flag-5'>STM32</b>內(nèi)部<b class='flag-5'>Flash</b>讀寫(xiě)問(wèn)題

    STM32F103:內(nèi)部Flash的讀寫(xiě)

    一、Flash基本知識(shí)1. Flash容量Flash根據(jù)容量大小可以分為以下三種:1、小容量產(chǎn)品:Flash大小為1-32KB(STM32F
    發(fā)表于 12-01 20:51 ?15次下載
    <b class='flag-5'>STM32</b>F103:內(nèi)部<b class='flag-5'>Flash</b>的讀寫(xiě)

    Keilstm32程序運(yùn)行占用flash大小

    stm32程序運(yùn)行占用flash大小Keil編譯后如下圖code儲(chǔ)存程序代碼RO-data儲(chǔ)存const常量和指令RW-data儲(chǔ)存初始化不為0的全局變量ZI-data儲(chǔ)存未初始化的全局變量
    發(fā)表于 12-02 10:36 ?10次下載
    Keil<b class='flag-5'>中</b><b class='flag-5'>stm32</b>程序運(yùn)行占用<b class='flag-5'>flash</b>大小

    STM32STM32 變量存儲(chǔ)在片內(nèi)FLASH的指定位置

    在這里以STM32L4R5為例(官方出的DEMO板),將變量存儲(chǔ)在指定的片內(nèi)FLASH地址(0x081F8000)。一、MDK Keil軟件操作uint8_t version[12
    發(fā)表于 12-02 11:06 ?10次下載
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>STM32</b> <b class='flag-5'>變量</b>存儲(chǔ)在片內(nèi)<b class='flag-5'>FLASH</b>的指定位置

    STM32H743 Flash

    Flash用來(lái)什么?最基本的理解:Flash用來(lái)代碼,RAM用來(lái)數(shù)據(jù)(如堆,棧,全局變量
    發(fā)表于 12-07 11:51 ?8次下載
    <b class='flag-5'>STM32</b>H743 <b class='flag-5'>Flash</b>

    STM32F4外設(shè)配置速查【FLASH部分】

    、SPI等)下載程序或應(yīng)用數(shù)據(jù)到存儲(chǔ)器STM32允許用戶(hù)在應(yīng)用程序燒錄FLASH的內(nèi)容局限性:使用前需要有bootloader被以IC
    發(fā)表于 12-09 10:21 ?1次下載
    <b class='flag-5'>STM32</b>F4外設(shè)配置速查【<b class='flag-5'>FLASH</b>部分】
    澳门娱乐| 静乐县| 百家乐筹码样式| 北票市| 大发888娱乐场怎么才能赢到钱| 百家乐官网最新缆| 六合彩免费图库| 网上百家乐是真的| 查看百家乐官网赌博| 大发888官方 hplsj| 真人百家乐试玩游戏| 百家乐官网游乐园 | 百家乐龙虎台布作弊技巧| 百家乐官网投注方法网| 威尼斯人娱乐开户送18| 真人百家乐玩法| 苹果百家乐官网的玩法技巧和规则 | 做生意风水门面要求| 澳门百家乐官网是怎样赌| 云顶国际娱乐| 水果机下载| 澳门百家乐小游戏| 做生意摆放的招财物件| 百家乐官网蓝盾有赢钱的吗| 百家乐官网现场新全讯网| 菲彩娱乐| 博彩交流| 德州扑克学校| 广州百家乐扫描分析| 百家乐最好的平台是哪个| 御匾会百家乐官网的玩法技巧和规则| 澳门百家乐官网怎赌才能赚钱| 博久百家乐官网论坛| 双牌县| 五莲县| 澄江县| 灵寿县| 搜索| 网上玩百家乐官网有钱| 顶尖百家乐官网开户| 百家乐官网神仙道礼包|