99热久久这里只有精品,99久久人妻精品免费二区,成人综合亚洲欧美一区,国产成人精品亚洲一区,久久国产亚洲精品赲碰热

HC32F460 系列的嵌入式 FLASH

  • 發(fā)布時間:2021-07-26 11:03:36,加入時間:2021年07月05日(距今1590天)
  • 地址:中國»遼寧»沈陽:遼寧省沈陽市鐵西區(qū)建工西路5號財富星座B座
  • 公司:沈陽芯碩科技有限公司, 用戶等級:普通會員 已認證
  • 聯(lián)系:宣女士,手機:13840143924 電話:024-85718900 QQ:3540893315

1

摘要

本篇應用筆記主要介紹如何使用 HC32F460 系列芯片的嵌入式 FLASH 讀寫數(shù)據(jù)。

2

FLASH 簡介

什么是 FLASH?

FLASH 接口通過 FLASH ICODE、DCODE、MCODE 總線對 FLASH 進行訪問,該接口可對 FLASH 執(zhí)行編程、擦除和全擦除操作;通過緩存機制加速代碼執(zhí)行。

FLASH 的重要特征?

FLASH 讀、編程、擦除和全擦除操作,支持引導交換,安全保護和數(shù)據(jù)加密。

3

HC32F460 系列的 FLASH

3.1

簡介

FLASH 接口通過 FLASH ICODE、DCODE、MCODE 總線對 FLASH 進行訪問,該接口可對FLASH 執(zhí)行編程、擦除和全擦除操作;通過指令預取和緩存機制加速代碼執(zhí)行。

3.2

說明

FLASH 讀、編程、扇區(qū)擦除和全擦除操作。CODE 總線 16Bytes 預取值,I_CODE 和 D-CODE 總線上共享 64 個緩存(128bit 寬)。支持 FLASH 低功耗讀。支持引導交換。支持安全保護及數(shù)據(jù)加密。容量為 512Kbytes(其中有 32bytes 為功能保留位),分為 64 個扇區(qū),每個扇區(qū)為 8KBytes。編程單位為 4Bytes,擦除單位為8KBytes。128bit 寬數(shù)據(jù)讀取。OTP(One Time Program)區(qū)域共 1020Bytes,分為 960Bytes 數(shù)據(jù)區(qū),并配有 60Bytes 的鎖存區(qū)。

3.2.1 寄存器介紹

1)

EFM_FAPRT:訪問 EFM 寄存器保護寄存器。

2)

EFM_FSTP:FLASH 停止寄存器。

3)

EFM_FRMC:讀模式寄存器。可配置插入等待周期,緩存功能、預取指功能等。

4)

EFM_FWMC:擦寫模式寄存器。配置編程擦除模式。

5)

EFM_FSR:狀態(tài)寄存器。查看 FLASH 狀態(tài),結束標志、錯誤標志等。

6)

EFM_FSCLR:狀態(tài)清除寄存器。

7)

EFM_FITE:中斷許可寄存器。配置操作結束或錯誤中斷許可。

8)

EFM_FSWP:引導交換狀態(tài)寄存器。通過該寄存器可判斷程序復位后從扇區(qū) 0 還是扇區(qū) 1 啟動。

9) EFM_FPMTSW:FLASH 窗口保護起始地址寄存器。

10) EFM_FPMTEW:FLASH 窗口保護結束地址寄存器。

11) EFM_UQID1~3:Unique ID 寄存器。

3.2.2 工作流程介紹

3.2.2.1 寄存器解除保護和寫保護

本模塊的寄存器受 EFM_FAPRT 寄存器保護,當處于保護狀態(tài),屏蔽普通的寫操作。

-

在實際應用中,發(fā)現(xiàn)寄存器值未寫入成功,應首先檢查 EFM 寄存器訪問保護是否有效,

保護有效時,EFM_FAPRT 寄存器值讀出為 0x00000000。

3.2.2.2 扇區(qū)擦除

EFM 提供扇區(qū)擦除和全擦除兩種擦除方式。對 FLASH 進行扇區(qū)擦除操作后,該扇區(qū)內(nèi)地址(8Kbytes 空間)數(shù)據(jù)刷新為全 1。

3.2.2.3 全擦除

EFM 提供扇區(qū)擦除和全擦除兩種擦除方式。對 FLASH 進行全擦除操作后整個FLASH 區(qū)域素有地址數(shù)據(jù)刷新為全 1。

3.2.2.4 單次編程無回讀

3.2.2.5 單次編程回讀

單編程回讀模式是指編程結束后自動讀取編程地址并和寫入數(shù)據(jù)對比,輸出判斷一致標志位EFM_FSR.PGMISMTCH。

注意:

- EFM_FSR.PGMISMTCH 為 0,表示編程成功,為 1 表示該 FLASH 地址已遭破壞,永廢棄。

3.2.2.6 連續(xù)編程

當連續(xù)對 FLASH 地址進行編程時,可以使用連續(xù)編程模式。連續(xù)編程模式比單編程模式可以節(jié)約時間 50%以上。連續(xù)編程模式時,頻率不能低于 12MHz。

3.2.2.7 總線保持/釋放功能

通過設定寄存器 EFM_FWMC.BUSHLDCTL 位,可設定 FLASH 編程、擦除期間,總線處于保持還是釋放狀態(tài)。

FLASH 編程、擦除指令在 FLASH 上執(zhí)行時,該控制位必須設定為 0。擦除指令在 FLASH 意外空間(例如 RAM)執(zhí)行時,可根據(jù)需求自由設定。

當 EFM_FWMC.BUSHLDCTL 為 1(即 FLASH 編程、擦除期間,總線釋放狀態(tài))時,在編程(連續(xù)編程除外)、擦除結束前(EFM_FSR.RDY=1)對 FLASH 的讀寫訪問將會被保護,標志位 EFM_FSR.BUSCOLERR 位置位。

3.2.3 一次性可編程字節(jié)(OTP)

OTP(One Time Program)區(qū)域分為 15 個 64 字節(jié)的數(shù)據(jù)塊,每塊數(shù)據(jù)對應一個 4Bytes 的鎖存地址。

鎖存地址用于鎖存對應的數(shù)據(jù)塊。鎖存地址數(shù)據(jù)全為 1 時,對應的 OTP 區(qū)域數(shù)據(jù)塊可以編程;當鎖存地址數(shù)據(jù)全為 0 時,對應的 OTP 區(qū)域數(shù)據(jù)不可編程。

所有 OTP 數(shù)據(jù)塊和鎖存地址均無法擦除。OTP 區(qū)域的編程已封裝在 flashloader 中,用戶可以直接操作 otp 對應地址。具體樣例請參考EFM 模塊下的 efm_otp 樣例代碼。

3.2.4 引導交換

EFM 提供引導交換功能,用戶在升級引導程序的時候,對扇區(qū) 0(0x00000000~0x00001FFF)進行擦寫,如擦寫時遇到不可期的意外(掉電、復位),有可能會導致整個芯片不能正常啟動。引導交換功能可以避免這種情況。

在對扇區(qū) 0 擦除前預先把新的引導程序?qū)懭肷葏^(qū) 1(0x00002000~0x00003FFF),然后對 EFM地址 0x0007FFDC 進行編程數(shù)據(jù) 0xFFFF4321,通過端子復位,實現(xiàn) CPU 從扇區(qū) 1 啟動新的引導程序,此時,再對扇區(qū) 0 進行擦除,重新編程用戶程序。再次升級啟動引導程序時,由于保存啟動扇區(qū)交換信息的地址 0x0007FFDC 已經(jīng)被編程過了(用戶可以根據(jù)讀 FLASH 地址或者 EFM_FSWP 寄存器判斷是否使用過啟動交換功能,EFM_FSWP.FSWP = 0,表明扇區(qū) 0 和扇區(qū) 1 已經(jīng)交換,復位后從扇區(qū) 1 啟動),需對扇區(qū) 63 (0x0007E000~0x0007FFFF)進行扇區(qū)擦除后再進行啟動程序的升級。在對扇區(qū) 0 進行擦除前,預先把新的引導程序?qū)懭肷葏^(qū) 1,然后對扇區(qū) 63 進行擦除,通過端子復位,CPU 就從扇區(qū) 1 啟動新的引導程序,此時再對扇區(qū) 0 進行擦除,重新編程新的引導程序。

4

樣例代碼

4.1

代碼介紹

用戶可根據(jù)上述的工作流程編寫自己的代碼來學習驗證該模塊,也可以直接通過華大半導體的網(wǎng)站到設備驅(qū)動庫(Device Driver Library, DDL)的樣例代碼并使用其中的 FLASH 的樣例進行驗證。

4.2 代碼運行

用戶可以通過華大半導體的網(wǎng)站到 HC32F460 的 DDL 的樣例代碼(efm_simple),并配合評估用板(EV-HC32F460-LQFP100-050-V1.1)運行相關代碼學習使用 FLASH 模塊。以下部分主要介紹如何在評估板上運行 FLASH 樣例代碼并觀察結果:

-

確認安裝正確的 IAR EWARM v7.7 工具(請從 IAR 網(wǎng)站有相應的安裝包,并參考用戶手冊進行安裝)。

-

華大半導體網(wǎng)站有 HC32F460 DDL 代碼。

-

運行 efm\ efm_simple\中的工程文件.

聯(lián)系我時請說明來自志趣網(wǎng),謝謝!

免責申明:志趣網(wǎng)所展示的信息由用戶自行提供,其真實性、合法性、準確性由信息發(fā)布人負責。使用本網(wǎng)站的所有用戶須接受并遵守法律法規(guī)。志趣網(wǎng)不提供任何保證,并不承擔任何法律責任。 志趣網(wǎng)建議您交易小心謹慎。