国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發(fā)布時(shí)間:2020-4-21 11:07    發(fā)布者:嵌入式人生17
STM32L4系列內(nèi)部FLASH雙字編程示例
有人使用STM32L476芯片開發(fā)產(chǎn)品,他想在內(nèi)部FLASH空間特定位置寫些數(shù)據(jù),發(fā)現(xiàn)總是失敗,并補(bǔ)充說之前使用STM32F1系列、STM32L1系列卻沒有類似問題。
其實(shí),針對STM32L4的內(nèi)部FLASH編程,跟STM32F1/L1系列是不同的,其中STM32F1的內(nèi)部FLASH編程僅支持半字編程,STM32L1的內(nèi)部FLASH編程主要支持字編程或半頁編程。而STM32L4系列的內(nèi)部FLASH編程所支持的則是64位雙字編程或以32個(gè)雙字為單位的快速行編程。
對于少量的零星數(shù)據(jù)編程自然會選擇64位雙字編程模式,即每次改寫Flash內(nèi)容必須以64位為單位。硬件還針對這64位數(shù)據(jù)做了8位的ECC,我們用戶看不到而已。下面簡單介紹下64位雙字編程過程。
在基于64位雙字編程時(shí),如果只是就字節(jié)或半字進(jìn)行編程則會產(chǎn)生錯(cuò)誤;或者盡管使用雙字編程卻沒有遵循雙字地址對齊【8字節(jié)對齊】時(shí)也會產(chǎn)生錯(cuò)誤。
這里我使用ARM MDK V2.9開發(fā)環(huán)境,借助于STM32L476_NUCELO開發(fā)板演示一下對內(nèi)部FLASH某個(gè)位置寫幾個(gè)64位數(shù)據(jù)的實(shí)現(xiàn)過程【寫之前相關(guān)區(qū)域已經(jīng)被擦除過了】。
我通過IDE將內(nèi)部FLASH最后的0x1000地址空間預(yù)留出來用于填寫些數(shù)據(jù),即我將內(nèi)部FLASH分成2塊,將最后的0x1000FLASH空間劃了出來。如下圖所示:【這里的芯片是STM32L476RGT6,下面只演示寫三個(gè)64位數(shù)據(jù)。】
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml9420\wps35.png
我將特定數(shù)據(jù)區(qū)定義在內(nèi)部FLASH空間0x80ff000開始的地方。
#define  Address_Const     (0x80FF000)
另外還定義了一個(gè)64位地址指針和一個(gè)64位數(shù)據(jù)數(shù)組。
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml9420\wps36.png
相關(guān)執(zhí)行參考代碼如下:
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml9420\wps37.png
代碼是基于STM32Cube庫來組織的,連續(xù)寫了三個(gè)64位的數(shù)據(jù)到指定的FLASH空間。其中主要涉及到一個(gè)FLASH編程函數(shù)HAL_FLASH_Program(),它有三個(gè)變量,分別是編程模式,待編程的FLASH地址以及用于編程的數(shù)據(jù)。
代碼比較簡單,對欲編程的地址做檢查確認(rèn),然后進(jìn)行FLASH編程開鎖,清除可能存在的各種掛起狀態(tài)標(biāo)志,進(jìn)行雙字編程,之后對FLASH寄存器訪問進(jìn)行上鎖。
現(xiàn)在基于上面的代碼看看運(yùn)行結(jié)果:
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml9420\wps38.png
我們可以看到在指定的FLASH地址空間寫三個(gè)64位數(shù)據(jù)。
在上面介紹64位雙字編程規(guī)則時(shí),可能有人會問,如果我遵循了8字節(jié)地址對齊,待寫的數(shù)據(jù)也不是字節(jié)或半字,而是一個(gè)字會怎么樣呢?那你也得湊成2個(gè)字來寫,方能完成一次寫操作。
比方基于上面測試代碼,僅僅將每次待寫的數(shù)據(jù)改為32位字,最后結(jié)果便是高位字被填0了。就像下面這樣:
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml9420\wps39.png
好,關(guān)于STM32L4系列內(nèi)部FLASH雙字編程模式就介紹到這里。整個(gè)過程應(yīng)該說不難,只要注意到各個(gè)細(xì)節(jié)就好。
趁此再拋磚引玉似地做些提醒:STM32系列眾多,各個(gè)系列的內(nèi)部FLASH編程模式以及頁或扇區(qū)的容量規(guī)劃、地址安排往往各有差異,在FLASH編程時(shí)千萬別跟著慣性或感覺走。還有,不同的編程模式往往對芯片的電源電壓有不同的要求,這點(diǎn)也要特別特別特別注意。

本文地址:http://m.qingdxww.cn/thread-585553-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 基于CEC1712實(shí)現(xiàn)的處理器SPI FLASH固件安全彈性方案培訓(xùn)教程
  • 了解一下Microchip強(qiáng)大的PIC18-Q24 MCU系列
  • 5分鐘詳解定時(shí)器/計(jì)數(shù)器E和波形擴(kuò)展!
  • 為何選擇集成電平轉(zhuǎn)換?
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产香蕉精品视频在 | 亚洲视频播放 | 99re66热这里都是精品 | 综合免费一区二区三区 | 国产美女在线看 | 粉嫩在线观看 | 国产免费资源高清小视频在线观看 | 啦啦啦社区手机在线视频免费视频 | 日韩毛片网 | 精品国产精品国产偷麻豆 | 中文字幕日韩一区二区不卡 | 日本精品久久久一区二区三区 | 四虎永久在线精品网址 | 俄罗斯丰满护士乱 | 99精品免费在线 | 黄视频网站在线看 | 狠狠色丁香婷婷综合激情 | 思思久久96热在精品不卡 | 天天摸天天 | 日本!日本! 在线播放 | 日韩黄毛片 | 亚洲福利天堂网福利在线观看 | 日韩有码第一页 | 国产成人精品视频一区二区不卡 | 99久久免费午夜国产精品 | 日本国产亚洲 | 女人l8毛片a级18女人水真多 | 日韩久久精品一区二区三区 | 欧美综合亚洲图片综合区 | 综合网插菊花 | 亚洲色五月 | 四虎影院4hu | 激动网色视频 | 在线精品日韩一区二区三区 | 国产高清视频青青青在线 | 日韩欧美成末人一区二区三区 | 久久这里只有精品视频99 | 四虎免费视频 | 在线观看日本免费不卡 | 好吊色青青青国产欧美日韩 | 国产日韩精品一区二区三区 |