99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

STM32L4系列內(nèi)部FLASH雙字編程示例

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-05-14 09:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有人使用STM32L476芯片開發(fā)產(chǎn)品,他想在內(nèi)部FLASH空間特定位置寫些數(shù)據(jù),發(fā)現(xiàn)總是失敗,并補(bǔ)充說之前使用STM32F1系列、STM32L1系列卻沒有類似問題。

其實,針對STM32L4的內(nèi)部FLASH編程,跟STM32F1/L1系列是不同的,其中STM32F1的內(nèi)部FLASH編程僅支持半字編程,STM32L1的內(nèi)部FLASH編程主要支持字編程或半頁編程。而STM32L4系列的內(nèi)部FLASH編程所支持的則是64位雙字編程或以32個雙字為單位的快速行編程。

對于少量的零星數(shù)據(jù)編程自然會選擇64位雙字編程模式,即每次改寫Flash內(nèi)容必須以64位為單位。硬件還針對這64位數(shù)據(jù)做了8位的ECC,我們用戶看不到而已。下面簡單介紹下64位雙字編程過程。

在基于64位雙字編程時,如果只是就字節(jié)或半字進(jìn)行編程則會產(chǎn)生錯誤;或者盡管使用雙字編程卻沒有遵循雙字地址對齊【8字節(jié)對齊】時也會產(chǎn)生錯誤。

這里我使用ARM MDK V2.9開發(fā)環(huán)境,借助于STM32L476_NUCELO開發(fā)板演示一下對內(nèi)部FLASH某個位置寫幾個64位數(shù)據(jù)的實現(xiàn)過程【寫之前相關(guān)區(qū)域已經(jīng)被擦除過了】。

我通過IDE將內(nèi)部FLASH最后的0x1000地址空間預(yù)留出來用于填寫些數(shù)據(jù),即我將內(nèi)部FLASH分成2塊,將最后的0x1000的FLASH空間劃了出來。如下圖所示:【這里的芯片是STM32L476RGT6,下面只演示寫三個64位數(shù)據(jù)?!?/p>

我將特定數(shù)據(jù)區(qū)定義在內(nèi)部FLASH空間0x80ff000開始的地方。

#define Address_Const (0x80FF000)

另外還定義了一個64位地址指針和一個64位數(shù)據(jù)數(shù)組。

相關(guān)執(zhí)行參考代碼如下:

代碼是基于STM32Cube庫來組織的,連續(xù)寫了三個64位的數(shù)據(jù)到指定的FLASH空間。其中主要涉及到一個FLASH編程函數(shù)HAL_FLASH_Program(),它有三個變量,分別是編程模式,待編程的FLASH地址以及用于編程的數(shù)據(jù)。

代碼比較簡單,對欲編程的地址做檢查確認(rèn),然后進(jìn)行FLASH編程開鎖,清除可能存在的各種掛起狀態(tài)標(biāo)志,進(jìn)行雙字編程,之后對FLASH寄存器訪問進(jìn)行上鎖。

現(xiàn)在基于上面的代碼看看運行結(jié)果:

我們可以看到在指定的FLASH地址空間寫三個64位數(shù)據(jù)。

在上面介紹64位雙字編程規(guī)則時,可能有人會問,如果我遵循了8字節(jié)地址對齊,待寫的數(shù)據(jù)也不是字節(jié)或半字,而是一個字會怎么樣呢?那你也得湊成2個字來寫,方能完成一次寫操作。

比方基于上面測試代碼,僅僅將每次待寫的數(shù)據(jù)改為32位字,最后結(jié)果便是高位字被填0了。就像下面這樣:

好,關(guān)于STM32L4系列內(nèi)部FLASH雙字編程模式就介紹到這里。整個過程應(yīng)該說不難,只要注意到各個細(xì)節(jié)就好。

趁此再拋磚引玉似地做些提醒:STM32系列眾多,各個系列的內(nèi)部FLASH編程模式以及頁或扇區(qū)的容量規(guī)劃、地址安排往往各有差異,在FLASH編程時千萬別跟著慣性或感覺走。還有,不同的編程模式往往對芯片的電源電壓有不同的要求,這點也要特別特別特別注意。

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

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95273
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64911
  • STM32L4
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    9693

原文標(biāo)題:STM32L4系列內(nèi)部FLASH雙字編程示例

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    STM32F3系列STM32F4系列、STM32L4系列STM32L4+系列Cortex-M4編程手冊

    電子發(fā)燒友網(wǎng)站提供《STM32F3系列、STM32F4系列、STM32L4系列
    發(fā)表于 06-06 17:06 ?5次下載

    STM32F40xxx和STM32f41xx flash編程手冊

    PM0081_STM32F40xxx and STM32F41xxx單片機(jī)編程手冊
    發(fā)表于 06-06 17:02 ?3次下載

    手機(jī)APP遠(yuǎn)程控制,智能家居監(jiān)測、智能控制系統(tǒng)(STM32L4、服務(wù)器、安卓源碼)實例項目打包下載

    手機(jī)APP遠(yuǎn)程控制,智能家居監(jiān)測、智能控制系統(tǒng)(STM32L4、服務(wù)器、安卓源碼)實例項目打包,推薦下載!
    發(fā)表于 05-29 21:47

    手機(jī)APP遠(yuǎn)程控制,智能家居監(jiān)測、智能控制系統(tǒng)(STM32L4、服務(wù)器、安卓源碼)

    手機(jī)APP遠(yuǎn)程控制,智能家居監(jiān)測、智能控制系統(tǒng)(STM32L4、服務(wù)器、安卓源碼) 項目實例下載! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時間告知,刪除內(nèi)容!
    發(fā)表于 05-23 21:00

    昂科燒錄器支持ST意法半導(dǎo)體的超低功耗微控制器STM32L4S5VIT

    芯片燒錄領(lǐng)導(dǎo)者昂科技術(shù)近期宣布了其燒錄軟件的最新迭代,并公布了一系列新增兼容芯片型號。在此次更新中,意法半導(dǎo)體(ST)推出的超低功耗微控制器STM32L4S5VIT已被昂科通用編程器AP8000所
    的頭像 發(fā)表于 05-08 16:08 ?271次閱讀
    昂科燒錄器支持ST意法半導(dǎo)體的超低功耗微控制器<b class='flag-5'>STM32L4</b>S5VIT

    請問STM32U3系列的定位是怎樣的?

    領(lǐng)先的每毫瓦 Coremark分?jǐn)?shù)117。這幾乎是意法半導(dǎo)體之前 STM32U5系列效率的兩倍,是STM32L4系列的五倍。
    發(fā)表于 04-25 07:05

    STM32L476 Flash擦除失敗的原因?

    開發(fā)板MCU型號:STM32L476RG 同樣的固件在開發(fā)板中flash讀寫擦除操作都沒問題,但在產(chǎn)品中擦除函數(shù)返回成功,但flash中的數(shù)據(jù)其實并沒有擦除。 這兩款MCU在Flash
    發(fā)表于 04-23 08:26

    請問STM32U3系列的定位是怎樣的?

    領(lǐng)先的每毫瓦 Coremark分?jǐn)?shù)117。這幾乎是意法半導(dǎo)體之前 STM32U5系列效率的兩倍,是STM32L4系列的五倍。
    發(fā)表于 04-23 06:45

    cubeide的代碼怎么編譯到內(nèi)部+外部FLASH里面去?

    我有一個項目,準(zhǔn)備使用GUI和AI,準(zhǔn)備使用STM32U5,但是編譯出來的代碼很多,STM32U5的內(nèi)部FLASH不夠用,準(zhǔn)備使用OSPI擴(kuò)展外部F
    發(fā)表于 03-07 07:48

    WTVxxxx系列語音芯片(一線&二線 單雙字節(jié))資料V1

    WTVxxxx系列語音芯片(一線&二線單雙字節(jié))資料V1
    發(fā)表于 03-06 08:27 ?0次下載

    AN-881: 通過LIN—協(xié)議4進(jìn)行Flash/EE存儲器編程

    電子發(fā)燒友網(wǎng)站提供《AN-881: 通過LIN—協(xié)議4進(jìn)行Flash/EE存儲器編程.pdf》資料免費下載
    發(fā)表于 01-14 16:12 ?0次下載
    AN-881: 通過LIN—協(xié)議<b class='flag-5'>4</b>進(jìn)行<b class='flag-5'>Flash</b>/EE存儲器<b class='flag-5'>編程</b>

    STM32WB55RG開發(fā)(2)----STM32CubeProgrammer燒錄

    程序接口(UART、USB DFU、I2C、SPI和CAN)讀取、寫入及驗證器件內(nèi)存。 STM32CubeProgrammer的功能廣泛,可以對STM32內(nèi)部存儲器(如Flash、R
    的頭像 發(fā)表于 12-16 15:52 ?1971次閱讀
    <b class='flag-5'>STM32</b>WB55RG開發(fā)(2)----<b class='flag-5'>STM32</b>CubeProgrammer燒錄

    掃描模塊的編程示例和調(diào)試策略

    電子發(fā)燒友網(wǎng)站提供《掃描模塊的編程示例和調(diào)試策略.pdf》資料免費下載
    發(fā)表于 09-27 09:38 ?0次下載
    掃描模塊的<b class='flag-5'>編程</b><b class='flag-5'>示例</b>和調(diào)試策略

    在mmWave SDK增加QSPI Flash驅(qū)動的示例

    電子發(fā)燒友網(wǎng)站提供《在mmWave SDK增加QSPI Flash驅(qū)動的示例.pdf》資料免費下載
    發(fā)表于 09-11 14:20 ?0次下載
    在mmWave SDK增加QSPI <b class='flag-5'>Flash</b>驅(qū)動的<b class='flag-5'>示例</b>

    STM32CUBEMX(10)--Flash讀寫

    概述 本例程主要講解如何對芯片自帶Flash進(jìn)行讀寫,用芯片內(nèi)部Flash可以對一些需要斷電保存的數(shù)據(jù)進(jìn)行保存,無需加外部得存儲芯片,本例程采用的是STM32F030R8T6,64K大
    發(fā)表于 09-10 15:36