精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

華大電子MCU CIU32L061x8存儲器(Flash)二

沈陽芯碩科技 ? 來源:jetson024 ? 作者:jetson024 ? 2023-03-14 09:33 ? 次閱讀

5.3.5User flash區擦除操作

User flash區支持以下擦除方式:

l頁擦除(512字節)

l塊擦除(16KB)

l批量擦除(128KB)

Flash存儲器在執行擦除操作時,不能同時進行讀取操作,需要等待存儲器完成 擦除操作后,讀取操作才能正常進行,擦除完成后的Flash數據為全1。

5.3.5.1User flash區頁擦除步驟

對User flash區進行頁擦除操作(512字節),可遵循以下步驟:

1) 檢查Flash狀態寄存器(FLASH_SR)中的BSY標志,以確認當前沒有正在執行的Flash操作;

2) 檢查FLASH_SR寄存器,確認錯誤標志均已清除;

3) 解鎖Flash控制寄存器(FLASH_CR),使LOCK位清0;(詳見:Flash控 制寄存器解鎖)

4) 配置FLASH_CR寄存器中的ER_MODE[1:0]位域為01,進入頁擦除模式;

5) 配置FLASH_CR寄存器中的PNB[7:0]位域,選擇待擦除區域的頁號;

6) 配置FLASH_CR寄存器中的ERASE位置1,啟動Flash擦除,同時BSY標志將自動置1;

7) 查詢并等待BSY標志清0,表明擦除操作已完成,此時ERASE位也將自 動清 0;

8) 如果要對多個頁執行擦除操作,可重復執行步驟5到7;

9) 配置FLASH_CR寄存器中的ER_MODE[1:0]位域為00,退出擦除模式;

10) 配置FLASH_CR寄存器中的LOCK位置1,恢復FLASH_CR寄存器的寫保護鎖定狀態。

5.3.5.2User flash區塊擦除步驟

對User flash區進行塊擦除操作(16KB),可遵循以下步驟:

1) 檢查Flash狀態寄存器(FLASH_SR)中的BSY標志,以確認當前沒有正在執行的Flash操作;

2) 檢查FLASH_SR寄存器,確認錯誤標志均已清除;

3) 解鎖Flash控制寄存器(FLASH_CR),使LOCK位清0;(詳見:Flash控制寄存器解鎖);

4) 配置FLASH_CR寄存器中的ER_MODE[1:0]位域為10,進入塊擦除模式;

5) 配置FLASH_CR寄存器中的PNB[2:0]位域,選擇待擦除區域的塊號;

6) 配置FLASH_CR寄存器中的ERASE位置1,啟動Flash擦除,同時BSY標志將自動置1;7) 查詢并等待BSY標志清0,表明擦除操作已完成,此時ERASE位也將自動清0;

8) 如果要對多個塊執行擦除,可重復執行步驟5到7;

9) 配置FLASH_CR寄存器中的ER_MODE[1:0]位域為00,退出擦除模式;

10) 配置FLASH_CR寄存器中的LOCK位置1,恢復FLASH_CR寄存器的寫保護鎖定狀態。

5.3.5.3User flash區批量擦除步驟

批量擦除用于擦除整個User flash區域(128KB),可遵循以下步驟:

1) 檢查Flash狀態寄存器(FLASH_SR)中的BSY標志,以確認當前沒有正在執行的Flash操作;

2) 檢查FLASH_SR寄存器,確認錯誤標志均已清除;

3) 解鎖Flash控制寄存器(FLASH_CR),使LOCK位清0(詳見:Flash控制寄存器解鎖);

4) 配置FLASH_CR寄存器中的ER_MODE[1:0]位域為11,進入批量擦除模式;

5) 配置FLASH_CR寄存器中的ERASE位置1,啟動Flash擦除,同時BSY標志將自動置1;

6) 查詢并等待BSY標志清0,表明擦除操作已完成,此時ERASE位也將自動清 0;

7) 配置FLASH_CR寄存器中的ER_MODE[1:0]位域為00,退出擦除模式;

8) 配置FLASH_CR寄存器中的LOCK位置1,恢復FLASH_CR寄存器的寫保護鎖定狀態。

5.3.5.4User flash區擦除錯誤

在對User flash區執行擦除操作的過程中,可能會出現以下錯誤標志:

lFlash操作序列錯誤標志PESERR:

-在ERASE位被置1的同時,如果ER_MODE[1:0]位域為00,則不會

啟動擦除操作,錯誤標志PESERR將置1;

-在ERASE位被置1的同時,如果待擦除的區域(PNB[7:0])超出了

Flash的有效空間,則不會啟動擦除操作,錯誤標志PESERR將置1;

-當有錯誤標志(PESERR、PROGERR、SIZERR、PGAERR、WRPERR)

未被清除時,配置ERASE位置1,則不會啟動擦除操作,錯誤標志PESERR將置1;

-ERASE、OPTSTRT、OBL_LAUNCH中任意2個以上控制位同時置1,

則不會啟動對應的操作,錯誤標志PESERR將置1。

l寫保護錯誤標志WRPERR:

-如果要擦除的區域受到安全保護機制的影響,包含有受保護的區域,

則不會啟動擦除操作,FLASH_SR寄存器中的WRPERR標志將置1。

5.3.6User flash區編程操作

對Flash存儲器執行編程操作,每次能寫入的數據長度固定為 32bits(字),不支持其他長度的數據寫入。

FLASH存儲器在執行編程操作時,不能同時進行讀取操作,需要等待存儲器完成編程操作后,讀取操作才能正常進行。

與Flash擦除操作類似,編程操作也會受到安全保護機制的影響:

5.3.6.1User flash區編程操作步驟

對User flash區進行編程操作,可遵循以下步驟:

1) 檢查Flash狀態寄存器(FLASH_SR)中的BSY標志,以確認當前沒有正在執行的Flash操作;

2) 檢查FLASH_SR寄存器,確認錯誤標志均已清除;

3) 解鎖Flash控制寄存器(FLASH_CR),使LOCK位清0(詳見:Flash控制寄存器解鎖);

4) 配置FLASH_CR寄存器中的PG_MODE為1,進入Flash編程模式;

5) 向Flash目標地址寫入32bits數據,寫入后BSY標志將自動置1;

6) 查詢并等待BSY標志清0,表明編程操作已完成;7) 如果要對多個地址進行編程,可重復步驟5和6;

8) 配置FLASH_CR寄存器中的PG_MODE位為0,退出Flash編程模式;

9) 配置FLASH_CR寄存器中的LOCK位置1,恢復FLASH_CR寄存器的寫保護鎖定狀態。

5.3.6.2User flash區編程錯誤

在對User flash區進行編程操作的過程中,可能會出現以下錯誤標志:

l編程錯誤標志PROGERR:

-當Flash地址內的數據不是 0xFFFF FFFF時,表明該地址已經執行過

編程操作,向該地址寫入數據,則寫入的數據會被忽略,不會啟動編

程操作,錯誤標志PROGERR將置1;

-當PG_MODE位為0時,向Flash地址寫入數據,則寫入的數據會被

忽略,不會啟動編程操作,錯誤標志PROGERR將置1;

-當有錯誤標志(PESERR、PROGERR、SIZERR、PGAERR、WRPERR)

未被清除時,向Flash地址寫入數據,則寫入的數據會被忽略,不會啟動編程操作,錯誤標志 PROGERR將置1。

l編程位寬錯誤標志SIZERR:

-如果向Flash地址寫入字節或半字,則寫入的數據會被忽略,不會啟

動編程操作,錯誤標志SIZERR將置1。

l編程地址未對齊錯誤標志PGAERR:

-如果編程操作的目標地址沒有按字對齊(地址2位不為b00),則

寫入的數據會被忽略,不會啟動編程操作,錯誤標志PGAERR將置1。

l寫保護錯誤標志WRPERR:

-如果要編程的區域受到安全保護機制的影響,處于受保護的狀態,向

該區域中的地址寫入數據,則寫入的數據會被忽略,不會啟動編程操

作,錯誤標志WRPERR將置1。

5.4Option bytes區操作說明

5.4.1選項字節組成

選項字節存放于Flash存儲器的Option bytes區,用于保存與芯片硬件功能相關的配置項,用戶可根據應用對選項字節進行配置,以實現特定的硬件功能。

為了校驗選項字節的正確性,在Option bytes區的每個字(32bits)被拆分成兩

部分,低16bits存放選項字節,高16bits存放選項字節的反碼。

復位后,硬件會自動將Option bytes區中的內容,加載到寄存器里,這些寄存器被稱為選項字節加載寄存器,選項字節中各控制位的作用,可查看以下寄存器的詳細描述:

lFLASH_OPTR1:選項字節寄存器 1

lFLASH_OPTR2:選項字節寄存器 2

lFLASH_PCROP1AS:代碼讀出保護區 1A起始地址寄存器

lFLASH_PCROP1AE:代碼讀出保護區 1A結束地址寄存器

lFLASH_PCROP1BS:代碼讀出保護區 1B起始地址寄存器

lFLASH_PCROP1BE:代碼讀出保護區 1B結束地址寄存器

lFLASH_WRP1AS:寫保護區A起始地址寄存器

lFLASH_WRP1AE:寫保護區A結束地址寄存器

lFLASH_WRP1BS:寫保護區B起始地址寄存器

lFLASH_WRP1BE:寫保護區B結束地址寄存器

lFLASH_SECR:用戶安全配置寄存器

5.4.2選項字節更新

Option bytes區與User flash區不同,用戶不能直接對 Option bytes區執行擦除或編程操作,而是要通過對應的選項字節加載寄存器進行更新。

對選項字節的更新遵循以下步驟:

1) 檢查Flash狀態寄存器(FLASH_SR)中的BSY標志位,以確認當前沒有正在執行的Flash操作;

2) 檢查FLASH_SR寄存器,確認錯誤標志均已清除;

3) 解鎖Flash選項字節的寫保護,使Flash控制寄存器(FLASH_CR)中的

OPTLOCK位清0(詳見:Flash選項字節解鎖);

4) 配置FLASH_CR寄存器中的PG_MODE為1,進入Flash編程模式;

5) 配置選項字節加載寄存器;

6) 將FLASH_CR寄存器中的OPTSTRT位置1,啟動選項字節的更新,同時BSY標志將自動置1;

7) 查詢并等待BSY標志清0,表明選項字節已更新完成,此時OPTSTRT位也將被自動清 0;

8) 配置FLASH_CR寄存器中的PG_MODE位為0,退出Flash編程模式;

9) 配置FLASH_CR寄存器中的OPTLOCK位置1,恢復選項字節的寫保護鎖定狀態;

10) 此時FLASH_CR寄存器處于解鎖狀態,可根據需要配置FLASH_CR寄存器中的LOCK位置1,將其恢復成寫保護鎖定狀態。

在啟動選項字節更新后,將對Option bytes區進行擦除,并自動生成選項字節的反碼,隨后會將選項字節及其反碼更新到Option bytes區。

在完成對選項字節的更新后,直接讀取Option bytes區,可獲取更新后的選項字節值。但是更新后的選項字節此時并未生效,如果讀取選項字節加載寄存器,獲得的仍將是最近一次已加載生效的選項字節值。在對選項字節進行更新的過程中,可能會出現以下錯誤標志:

lFlash操作序列錯誤標志PESERR:

-在OPTSTRT位被置1的同時,如果PG_MODE位為0,則不會啟動

選項字節更新,錯誤標志PESERR將置1;

-當有錯誤標志(PESERR、PROGERR、SIZERR、PGAERR、WRPERR)

未被清除時,配置OPTSTRT位置1,則不會啟動選項字節更新,錯誤

標志PESERR將置1;

-ERASE、OPTSTRT、OBL_LAUNCH中任意2個以上控制位同時置1,

則不會啟動對應的操作,錯誤標志PESERR將置1。

5.4.3選項字節加載

要使Option bytes區中選項字節生效,可通過以下方式對選項字節進行加載:

l以下復位將觸發加載:

-POR/PDR復位

-退出Standby模式復位

l配置FLASH_CR寄存器中OBL_LAUNCH位為1啟動加載,加載執行時BSY標志將自動置1,加載完成后該標志將自動清0并觸發系統復位。

如果ERASE、OPTSTRT、OBL_LAUNCH中任意2個以上控制位同時置1,則不會啟動對應的操作,錯誤標志PESERR將置1。

在選項字節加載過程中,將自動對選項字節及其反碼進行校驗,如果出現錯誤,將維持復位狀態不再執行任何操作,直到發生POR/PDR復位。

當選項字節加載生效后,Option bytes區中的選項字節將被自動復制到對應的加載寄存器。讀取選項字節加載寄存器,獲得的總是加載生效后的選項字節值。

5.5Flash安全保護機制

Flash存儲器支持以下安全保護機制:

lFlash讀出保護(RDP):通過配置不同RDP保護等級,對存儲器的操作權限進行限制。

lFlash代碼讀出保護(PCROP):禁止對受保護的區域執行讀取、編程或擦

除操作,僅允許取指操作。

lFlash寫入保護(WRP):禁止對受保護的區域執行編程或擦除操作,但允

許取指和讀取操作。

lFlash用戶安全區域:在復位后,用戶安全區域處于未保護狀態,可執行

取指、讀取、編程和擦除操作。當安全區域使能后,該區域不可見,禁止

對該區域執行任何操作,直到重新復位。

5.5.1Flash讀出保護

5.5.1.1RDP保護權限

Flash讀出保護(RDP),共有三種保護等級:

RDP0:

l從User flash/SRAM啟動

-User flash區:允許取指、讀取、編程、擦除

-System memory區:僅允許取指

-Option bytes區:允許讀取、更新(通過選項字節加載寄存器)

-OTP區:允許讀取、編程(每個字僅可編程一次)

-備份寄存器:允許讀取、寫入

l從Bootloader啟動

-User flash區:允許取指、讀取、編程、擦除

-System memory區:允許取指、讀取

-Option bytes區:允許讀取、更新(通過選項字節加載寄存器)

-OTP區:禁止執行任何操作

-備份寄存器:禁止執行任何操作

l調試接口

-User flash區:允許取指、讀取、編程、擦除

-System memory區:僅允許取指

-Option bytes區:允許讀取、更新(通過選項字節加載寄存器)

-OTP區:允許讀取、編程(每個字僅可編程一次)

-備份寄存器:允許讀取、寫入

注意:從Bootloader啟動時,禁用調試接口。

RDP1:

l從User flash啟動

-User flash區:允許取指、讀取、編程、擦除

-System memory區:僅允許取指

-Option bytes區:允許讀取、更新(通過選項字節加載寄存器)

-OTP區:允許讀取、編程(每個字僅可編程一次)

-備份寄存器:允許讀取、寫入

l從Bootloader啟動

-User flash區:僅允許取指

-System memory區:允許讀取、取指

-Option bytes區:允許讀取、更新(通過選項字節加載寄存器)

-OTP區:禁止執行任何操作

-備份寄存器:禁止執行任何操作

l禁止從SRAM啟動

l禁用調試接口

RDP2:

l從User flash啟動

-User flash區:允許取指、讀取、編程、擦除

-System memory區:僅允許取指

-Option bytes區:僅允許讀取-

OTP區:允許讀取、編程(每個字僅可編程一次)

-備份寄存器:允許讀取、寫入

l禁止從Bootloader啟動

l禁止從SRAM啟動

l禁用調試接口

對于Flash存儲器,當Flash控制器檢測到無權限的非法操作時,FLASH_SR寄 存器中的 ACERR錯誤標志將立刻置1,非法操作會被立刻終止,并產生總線訪 問錯誤,觸發 HardFault中斷。

對Option bytes區的更新,必須通過相應的選項字節加載寄存器來完成。當保護等級為 RDP2時,不允許更新該區域,此時如果FLASH_CR寄存器中的

OPTSTRT位被置1,則FLASH_SR寄存器中的ACERR錯誤標志將置1,wo對Option bytes區的操作將被終止,并產生總線訪問錯誤,觸發HardFault中斷。

沈陽芯碩科技有限公司是華大電子專業代理商,有技術問題可咨詢芯虎論壇.

審核編輯黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17002

    瀏覽量

    350334
  • FlaSh
    +關注

    關注

    10

    文章

    1622

    瀏覽量

    147761
  • 存儲器
    +關注

    關注

    38

    文章

    7453

    瀏覽量

    163611
收藏 人收藏

    評論

    相關推薦

    什么是ROM存儲器的定義

    一、ROM存儲器的定義 ROM存儲器是一種在計算機和電子設備中用于存儲固定數據的存儲器。與RAM(隨機存取
    的頭像 發表于 11-04 09:59 ?221次閱讀

    使用SD Flash為TMS320C28x器件編程外部非易失性存儲器

    電子發燒友網站提供《使用SD Flash為TMS320C28x器件編程外部非易失性存儲器.pdf》資料免費下載
    發表于 10-15 11:48 ?0次下載
    使用SD <b class='flag-5'>Flash</b>為TMS320C28<b class='flag-5'>x</b>器件編程外部非易失性<b class='flag-5'>存儲器</b>

    使用低內存MSP430? MCU的帶備份存儲器的外部RTC

    電子發燒友網站提供《使用低內存MSP430? MCU的帶備份存儲器的外部RTC.pdf》資料免費下載
    發表于 10-09 11:43 ?0次下載
    使用低內存MSP430? <b class='flag-5'>MCU</b>的帶備份<b class='flag-5'>存儲器</b>的外部RTC

    鐵電存儲器Flash的區別

    鐵電存儲器(Ferroelectric RAM, FRAM)與閃存(Flash)是兩種不同類型的非易失性存儲器,它們在工作原理、性能特點、應用場景等方面存在顯著的差異。
    的頭像 發表于 09-29 15:25 ?715次閱讀

    帶備份存儲器的獨立RTC,帶低成本MSP430 MCU應用說明

    電子發燒友網站提供《帶備份存儲器的獨立RTC,帶低成本MSP430 MCU應用說明.pdf》資料免費下載
    發表于 09-14 09:49 ?0次下載
    帶備份<b class='flag-5'>存儲器</b>的獨立RTC,帶低成本MSP430 <b class='flag-5'>MCU</b>應用說明

    NAND Flash與其他類型存儲器的區別

    NAND Flash作為一種基于NAND技術的非易失性存儲器,具有多個顯著優點,這些優點使其在數據存儲領域得到了廣泛應用。以下是對NAND Flash優點的詳細闡述,并簡要探討與其他類
    的頭像 發表于 08-20 10:24 ?656次閱讀

    飛凌嵌入式-ELFBOARD 硬件分享之-存儲器及其分類

    寫”。8MP平臺也有熔絲啟動設計,不建議使用。 繼PROM之后,人類發明了EPROM,全稱是Erasable Programmable ROM,即可抹除可編程只讀存儲器,它可以利用高壓寫入數據,擦除
    發表于 07-30 10:06

    EEPROM與Flash存儲器的區別

    電子技術和計算機系統中,存儲器是不可或缺的組成部分,其類型和功能繁多。EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦除
    的頭像 發表于 05-23 16:35 ?5568次閱讀

    STM32L053如何在FLASH程序存儲器模式下將程序燒錄成功?

    用的是STM32L053芯片,自舉模式為FLASH程序存儲器模式,此時如何燒錄程序?
    發表于 03-25 06:09

    CW32L052 FLASH存儲器

    CW32L052內部集成了64KB嵌入式FLASH供用戶使用,可用來存儲應用程序和用戶數據。芯片支持對 FLASH 存儲器的讀、擦除和寫操作
    的頭像 發表于 02-28 17:43 ?698次閱讀
    CW32<b class='flag-5'>L</b>052 <b class='flag-5'>FLASH</b><b class='flag-5'>存儲器</b>

    淺談flash存儲器的特點和優缺點

    Flash存儲器的寫操作具有特殊性,它只能將數據位從1寫成0,而不能從0寫成1。因此,在對存儲器進行寫入操作之前,必須先執行擦除操作,將預寫入的數據位初始化為1。
    的頭像 發表于 02-19 11:37 ?3132次閱讀
    淺談<b class='flag-5'>flash</b><b class='flag-5'>存儲器</b>的特點和優缺點

    stm32 flash寫數據怎么存儲

    stm32 flash寫數據怎么存儲的? STM32是一款廣泛應用于嵌入式系統開發的微控制,它的Flash存儲器是其中一個重要的組成部分。
    的頭像 發表于 01-31 15:46 ?2268次閱讀

    使用MCU的輔助存儲器來記錄ADC電壓讀數,當程序進入cy_flash_WriteRow () 時會出現雙重鎖定錯誤并自動終止的原因?

    我們正在嘗試使用 MCU 的輔助存儲器來記錄 ADC 電壓讀數,以便日后檢索。 在之前在 main () 中調用了 systemInit () 之后,我寫了一個 for 循環來滾動瀏覽數組值(之前
    發表于 01-31 08:18

    如何充分利用單片機(MCU)的非易失性存儲器呢?

    需要在設計和開發過程中遵循一些最佳實踐。本文將詳細介紹如何最大限度地利用MCU的NVM。 1.選擇適當的存儲器類型: MCU的NVM通常有多種類型可供選擇,例如閃存(Flash)、EE
    的頭像 發表于 12-15 10:10 ?1337次閱讀

    電子攜安全低功耗MCU系列新品亮相電子峰會

    安全芯片開發的集成電路設計企業攜L0超低功耗系列MCU、F0觸控系列MCU和M0電機系列MCU眾多明星產品及解決方案亮相峰會展會現場,全方位展示
    的頭像 發表于 11-28 14:54 ?633次閱讀
    <b class='flag-5'>華</b>大<b class='flag-5'>電子</b>攜安全低功耗<b class='flag-5'>MCU</b>系列新品亮相<b class='flag-5'>電子</b>峰會