在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

茶話MCU ? 來(lái)源:ST MCU 信息交流 ? 2020-05-14 09:11 ? 次閱讀

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

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

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

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

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

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

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

#define Address_Const (0x80FF000)

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

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

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

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

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

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

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

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

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

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

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

    關(guān)注

    88

    文章

    3638

    瀏覽量

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

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62987
  • STM32L4
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    9436

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    stm32l4、msp430、msp432到底誰(shuí)功耗低?

    stm32l4、msp430、msp432到底誰(shuí)功耗低,性能如何,希望大家一起討論。
    發(fā)表于 05-13 08:25

    STM32 L4系列與傳統(tǒng)的STM32 L4系列相比,除低功耗外功能,還有別的優(yōu)點(diǎn)嗎?

    STM32L4系列 與傳統(tǒng)的 STM32L4 系列相比,除低功耗外功能,還有別的優(yōu)點(diǎn)嗎?
    發(fā)表于 05-13 08:20

    請(qǐng)問STM32L4系列哪個(gè)型號(hào)集成以太網(wǎng)收發(fā)器包含以太網(wǎng)功能?

    準(zhǔn)備學(xué)習(xí)st以前都是用的飛思,所以不熟悉。請(qǐng)問 STM32L4系列 哪個(gè)型號(hào)集成以太網(wǎng)收發(fā)器包含以太網(wǎng)功能,以及有I2S功能,謝謝!
    發(fā)表于 05-13 06:37

    STM32F4或者STM32L4自帶的DSP庫(kù)做FFT運(yùn)算是不是只能做基2的點(diǎn)數(shù)?

    請(qǐng)教,用STM32F4或者STM32L4自帶的DSP庫(kù)做FFT運(yùn)算是不是只能做基2的點(diǎn)數(shù),如果采樣200點(diǎn),還能用dsp庫(kù)來(lái)進(jìn)行FFT嘛,或者自己找個(gè)任意點(diǎn)數(shù)的FFT算法計(jì)算。
    發(fā)表于 05-11 08:32

    如何利用stm32L476內(nèi)部的3個(gè)ADC采集同一時(shí)刻的三個(gè)輸入的數(shù)據(jù)?

    哪位大蝦如何利用stm32L476內(nèi)部的3個(gè)ADC采集同一時(shí)刻的三個(gè)輸入的數(shù)據(jù),看過(guò)STM32F4有個(gè)ADC_TRIPLEMODE_REGSIMULT模式,而STM32L4的只有ADC
    發(fā)表于 05-10 06:18

    STM32WB和STM32L4/L4+的區(qū)別和優(yōu)劣勢(shì)是什么?

    STM32WB 和 STM32L4 / L4+的區(qū)別,和優(yōu)劣勢(shì)
    發(fā)表于 04-26 08:07

    STM32L475VE內(nèi)部Flash編程出現(xiàn)ECCD錯(cuò)誤的原因?

    使用的芯片型號(hào) STM32L475VE,使用 HAL 庫(kù) `HAL_FLASH_Program` API 對(duì) 內(nèi)部 Flash 進(jìn)行編程,出
    發(fā)表于 04-26 07:21

    STM32L4使用內(nèi)部參考電壓時(shí)是否也需要打開VREFINT通道?

    STM32L4使用內(nèi)部參考電壓時(shí)是否也需要打開VREFINT通道
    發(fā)表于 04-17 06:23

    stm32l4是否能支持ndis和ecm?

    各位大神,請(qǐng)教下stm32l4是否能支持ndis和ecm
    發(fā)表于 04-11 08:11

    stm32l4如何下載到usb host的固件庫(kù)?

    各位大神,請(qǐng)教下stm32l4如何下載到usb host的固件庫(kù),還想請(qǐng)教下stm32有沒有開源的rndis和ecm代碼
    發(fā)表于 04-11 07:19

    請(qǐng)問STM32L4如何利用STM32CubeMX實(shí)現(xiàn)EXTI控制LED?

    STM32L4利用STM32CubeMX如何實(shí)現(xiàn)EXTI控制LED?
    發(fā)表于 04-09 08:07

    STM32L4系列開發(fā)板設(shè)置為HID設(shè)備,為什么不顯示HID設(shè)備?

    想將STM32L4系列開發(fā)板設(shè)置為HID設(shè)備,使用cubeMX進(jìn)行設(shè)計(jì)。按照以下步驟設(shè)置好后,燒錄程式后,顯示“大容量存儲(chǔ)設(shè)備”,而不顯示HID設(shè)備。 Cubemx配置步驟: System
    發(fā)表于 04-09 06:20

    使用FlyMcu軟件給STM32L4燒錄程序經(jīng)常失敗是為什么?

    使用FlyMcu軟件給STM32L4燒錄程序?經(jīng)常失敗?顯示\"寫入出錯(cuò)在0KB,進(jìn)度0%,耗時(shí)828毫秒\"。請(qǐng)問這是為什么呢?
    發(fā)表于 03-26 06:50

    STM32U5,STM32WB及STM32L4開發(fā)板,哪個(gè)開發(fā)板擁有較多數(shù)量的ADC?

    請(qǐng)問,我現(xiàn)在需要開發(fā)一個(gè)項(xiàng)目,在這個(gè)項(xiàng)目中需要使用較多數(shù)量的傳感器(至少8個(gè)),這些傳感器需要進(jìn)行信號(hào)采集,現(xiàn)在在使用STM32U5,STM32WB及STM32L4芯片的開發(fā)板中,哪些開發(fā)板擁有較多數(shù)量的ADC?
    發(fā)表于 03-20 08:01

    STM32L4 SDIO4線制不能初始化成功的原因?

    STM32L4,用CUBEMX生成代碼,用了FREERTOS,SDIO DMA,F(xiàn)ATFS,SDIO 4線制,FATFS,MSC BOOTLOADER:裸機(jī),未用DMA,SDIO 用的4線制,用了
    發(fā)表于 03-15 07:04
    主站蜘蛛池模板: 米奇777四色精品人人爽 | 国产老师的丝袜在线看 | 国产伦精品一区二区三区高清 | 国产精品a在线观看香蕉 | 亚洲人成77777在线观看网 | 国产黄在线观看免费观看不卡 | 色老头性xxxx老头视频 | bt磁力在线搜索 | 欧美成人天天综合天天在线 | 波多野结衣三个女人蕾丝边 | 亚色国产| 二十年等一人小说在线观看 | 日韩黄色成人 | 在线观看亚洲免费视频 | 色y情视频免费看 | 1314酒色| 蜜月mv国产精品 | 亚洲伦理一区二区 | 免费看污黄视频软件 | 性欧洲女人18 | 国产精品一一在线观看 | 久久精品国波多野结衣 | 老汉影视永久免费视频 | 亚洲人成网站在线 | 欧美怡红院免费全视频 | 性喷潮久久久久久久久 | 色天天躁夜夜躁天干天干 | 欧美性色综合网 | 婷婷丁香激情 | 成人国产精品2021 | 夜夜bb| 欧美一级片在线免费观看 | 九九国产精品 | 亚洲mm8成为人影院 亚洲qingse中文在线 | 四虎最新网站 | 永久在线 | 永久免费精品视频 | 亚洲色图偷窥自拍 | 国产伦精品一区二区三区网站 | 在线观看国产久青草 | 四虎国产精品免费入口 |