日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > strongerHuang
[導讀]本文就STM32L053芯片的FLASH編程做個簡單演示并做些提醒,以供有需要的人參考。

來源 | 茶花MCU

這里就STM32L053芯片的FLASH編程做個簡單演示并做些提醒,以供有需要的人參考。 一般來講,FLASH編程主要包括擦除、代碼編程、Option字修改操作,關(guān)于Option編程下面不做介紹。
STM32L0芯片的擦除除了支持全片擦除外,再就是支持頁擦除,每頁的大小為128Bytes,32個字。編程可以按字或按半頁【64Bytes】編程。

單頁擦除、單字編程以及半頁編程的時間都是一樣的,大概3.2ms左右,這點在芯片數(shù)據(jù)手冊上也明確出來了。



這里提醒兩點:第一點,在做擦除或編程時,要注意地址對齊的問題,頁擦除時地址要128字節(jié)對齊,字編程注意4字節(jié)對齊,半頁編程時注意64字節(jié)對齊;還有一點就是做半頁編程時,半頁編程的執(zhí)行代碼要放到RAM里進行,這點手冊也強調(diào)了。

下面演示字編程、頁編程、頁擦除的操作。

這里我先以字編程模式寫5個字,然后以半頁編程模式對5個半頁進行FLASH編程,并記錄二者所花的時間,看看字編程時間跟半頁編程的是否一致。

另外,在完成5個半頁編程之后,又進行了頁擦除操作,擦除剛才已編程的5個半頁中的1頁,即最后應只剩下3個半頁的內(nèi)容【注:對于STM32L0系列芯片,內(nèi)部FLASH被擦除后內(nèi)容為全0】。

下面代碼截圖是基于STM32Cube庫來組織的,主要涉及到字編程半頁編程、頁擦除三個操作,對應著綠色下劃線的3個庫函數(shù)。



其中,半頁編程的執(zhí)行代碼需配置到RAM里去運行。

另外,Period1Period2分別來存放寫5個字和5個半頁的編程時間,并放在指定的FLASH位置。

編譯運行后我們可以看到如下結(jié)果:



上面截圖是經(jīng)過運行后芯片內(nèi)部的部分FLASH空間的內(nèi)容。5個紅色方框圍住的數(shù)據(jù)乃5個字編程后的結(jié)果,藍色方框內(nèi)的數(shù)據(jù)乃5次半頁編程后的結(jié)果,但最終只看到3個半頁的編程內(nèi)容,那是因為后面兩個半頁的內(nèi)容經(jīng)頁擦除操作后而消失了。

用來統(tǒng)計編程時間的定時器的計數(shù)頻率為1MHz,顯然Period1Period2基本是相等的,將它們再除以5后所得編程時間都是3.3ms的樣子。顯而易見,進行批量代碼編程時采用半頁編程更高效。

前面說了做半頁編程時其執(zhí)行代碼需放到RAM運行,該代碼在STM32cube庫的這個文件stm32l0xx_hal_flash_ramfunc.c里面。實現(xiàn)該操作對于不同的IDE在處理上稍有差異。這里基于ARM MDK進行簡單配置,劃分點RAM出來給它用。



關(guān)于STM32L0系列FLASH編程的演示就介紹到這里,愿能幫到有需之人以節(jié)省些時間和精力。
------------ END ------------


免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉