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

STM32L4系列內部FLASH雙字編程示例

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

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

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

廠商推薦

  • Microchip視頻專區
  • 無線充電基礎知識及應用培訓教程
  • Chiptorials ——如何將CryptoAuthLib庫用于Microchip安全身份驗證IC
  • Chiptorials——如何使用ATECC608 TrustFLEX實現公鑰輪換
  • Chiptorials ——使用ATECC608 TrustFLEX實現基本非對稱身份驗證
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产69精品久久久久妇女 | 日韩成人一级 | 四虎网站在线播放 | 正在播放国产精品 | 国产亚洲欧美一区二区三区 | 四虎网站最新地址 | 久久久久久久久一级毛片 | 成 人 黄 色 视频165 | 国产伦理久久精品久久久久 | 天堂在线观看免费视频 | 日韩毛片免费线上观看 | 亚洲视频一区二区三区 | 成人精品在线观看 | 日本视频中文字幕一区二区 | 九九久久精品视频 | 亚洲天堂在线观看完整版 | 人心蜈蚣2在线观看 | 国产精品麻豆网站 | 四虎影库紧急大通知 | 国产在线91观看免费观看 | 久久国产毛片 | 中国xxxxx高清免费看视频 | 亚洲欧美国产视频 | 天美传媒thetmme果冻传媒 | 欧美一区二区高清 | 亚洲精品网站在线观看不卡无广告 | 欧美成人性色生活片免费在线观看 | 五月婷婷亚洲 | 富二代精产国品在线播放 | 中文字幕亚洲色图 | 午夜精品久久久久久91 | 国产福利在线观看第二区 | 亚洲欧美日韩在线线精品 | 青青草国产精品欧美成人 | 中文字幕在线一区二区在线 | 四虎国产精品影库永久免费 | 灵与肉电视剧剧情全集免费 | 色爽视频 | 日本a在线免费观看 | 国产xx在线观看 | 七次郎最新首页在线视频 |