68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> HK32/航順 >> 航順芯片HK32F103xC/D/E-flash擦寫應(yīng)用及注意事項

航順芯片HK32F103xC/D/E-flash擦寫應(yīng)用及注意事項

關(guān)鍵字:航順芯片 HK32F103xC D E flash 擦寫應(yīng)用 注意事項 作者: 來源: 發(fā)布時間:2022-06-02  瀏覽:37
HK32F103x/C/D/E是航順公司推出的中大容量的F103系列芯片。作為32位MCU,基本會內(nèi)置flash以便應(yīng)用程序的存儲及更新,其可靠性及訪問速度也遠(yuǎn)遠(yuǎn)優(yōu)于外部flash。

Flash閃存主要特性

高達(dá)512 Kbyte Flash存儲器

存儲器結(jié)構(gòu): 

◆主閃存模塊:512Kbyte,該存儲塊劃分為256(Page)×2Kbyte

◆選項字節(jié)有256個字

閃存的接口特征: 

◆帶預(yù)取緩沖器的讀接口

◆選擇字節(jié)加載器

◆閃存編程/擦除操作

◆訪問/寫保護(hù)

◆低功耗模式

Flash空間由32位寬的存儲單元組成,既可以存代碼又可以存數(shù)據(jù)。主閃存塊有256頁(每頁2Kbyte)。模塊如下表所示:
模塊

Flash寫和擦除操作

Flash擦寫模塊處理Flash的編程和擦除,它包含12個32位的寄存器。在產(chǎn)品的整個工作電壓范圍內(nèi)支持執(zhí)行Flash編程和擦除操作。該操作由下列12個寄存器完成:

●Flash關(guān)鍵字寄存器(FLASH_KEYR)

●Flash選項關(guān)鍵字寄存器(FLASH_OPTKEYR)

●Flash控制寄存器(FLASH_CR)

●Flash狀態(tài)寄存器(FLASH_SR)

●Flash地址寄存器(FLASH_AR)

●Flash選項字節(jié)寄存器(FLASH_OBR)

●Flash寫保護(hù)寄存器(FLASH_WRPR)

●Flash控制寄存器2(FLASH_ECR)

●4個編程數(shù)據(jù)寄存器(PW0~PW3)

只要CPU不訪問Flash空間,正在執(zhí)行的Flash寫操作不會妨礙CPU的運行。即,在執(zhí)行寫/擦除操作的同時,不能對Flash取指和訪問其數(shù)據(jù)。否則,總線訪問將暫停。


對Flash空間的解鎖

復(fù)位后,F(xiàn)lash存儲器默認(rèn)處于受保護(hù)狀態(tài),以避免意外擦除。FLASH_CR寄存器的值通常不允許改寫,只有對FLASH_KEYR寄存器進(jìn)行解鎖操作后,才具有對FLASH_ CR寄存器的訪問權(quán)限。解鎖操作包括以下步驟:

1.向FLASH_KEYR寄存器寫入關(guān)鍵字KEY1=0x45670123。

2.向FLASH_KEYR寄存器寫入關(guān)鍵字KEY2=0xCDEF89AB。

任何錯誤的順序?qū)i死FLASH_CR直至下次復(fù)位。當(dāng)發(fā)生關(guān)鍵字錯誤時,會由總線錯誤引發(fā)一次硬件錯誤中斷。

●如果KEY1出錯,就會立即中斷。

●如果KEY1正確但KEY2錯誤時,就會在KEY2錯的時刻觸發(fā)中斷。

可以對比以下該系列芯片的主要儲存器映射圖:
儲存器映射圖


標(biāo)準(zhǔn)編程

Flash 存儲器接口會預(yù)讀待編程地址的內(nèi)容,然后判斷其是否已經(jīng)被擦除,如果不是,那么編程操作會自動取消,并且在FLASH_SR寄存器的PGERR位上提示編程錯誤告警。如果被編程的內(nèi)容為全零,則會例外,這時會正確編程并且不告警。

如果待編程地址所對應(yīng)的FLASH_WRPR中的寫保護(hù)位有效,同樣也不會有編程動作,同樣也會產(chǎn)生編程錯誤告警。編程動作結(jié)束后,F(xiàn)LASH_SR寄存器中的EOP位會給出提示。

主Flash存儲器標(biāo)準(zhǔn)模式下的編程過程如下:

●半字、字編程:

1.檢查FLASH_SR中的BSY位,以確認(rèn)上次操作已經(jīng)結(jié)束。

2.置位FLASH_CR寄存器中的PG位或者FLASH_ECR的WPG位。  

3.根據(jù)配置,以半字/字為單位向目標(biāo)地址寫入數(shù)據(jù)。

4.等待FLASH_SR寄存器中的 BSY 歸零。

5.讀取編程的值然后驗證。

1.檢查FLASH_SR中的BSY位,以確認(rèn)上次操作已經(jīng)結(jié)束。

2.置位FLASH_ECR寄存器中的2WPG位或者4WPG位。

3.根據(jù)配置,向PW0~PW1或者PW0~PW4寫入數(shù)據(jù)。

4.向FLASH_AR寫入待編程位置最低位置地址。

5.置位FLASH_CR寄存器中的STRT位為1。

6.等待FLASH_SR寄存器中的BSY歸零。

7.讀取編程的值然后驗證。

注意:當(dāng) FLASH_SR中的BSY被置’1’時,寫模式下的寄存器不能被讀。

Flash存儲器擦除

Flash存儲器可以按頁或半頁為單位擦除,也可以整片擦除。

頁擦除

擦除頁的步驟如下:

1.檢查FLASH_SR中的BSY位,以確認(rèn)上次操作已經(jīng)結(jié)束。

2.將FLASH_CR寄存器中的PER位置為1,以選擇按頁擦除。

3.寫FLASH_AR寄存器的FAR位,寫入待擦除頁的地址。

4.將FLASH_CR寄存器中的 STRT 位置為1,以啟動擦除操作。

5.等待FLASH_SR中的BSY變?yōu)?,表明擦除操作完成。

6.檢查LASH_SR寄存器的EOP標(biāo)志(若Flash擦除成功會置位EOP),然后軟件清除該標(biāo)志位。

半頁擦除

Flash的半頁為1Kbyte,半頁擦除流程和頁擦除流程類似,區(qū)別在于把FLASH_ECR中的HPER位置’1’。擦除半頁的步驟如下:

1.檢查FLASH_SR寄存器中的BSY位,以確認(rèn)上次操作已經(jīng)結(jié)束。

2.將FLASH_CR寄存器中的HPER位置為1,以選擇按半頁擦除。

3.寫FLASH_AR寄存器的FAR位,寫入待擦除半頁的地址。

4.將FLASH_CR寄存器中的STRT位置為1,以啟動擦除操作。

5.等待FLASH_SR中的BSY變?yōu)?,表明擦除操作完成。

6.檢查LASH_SR寄存器的EOP標(biāo)志(若Flash擦除成功會置位EOP),然后軟件清除該標(biāo)志位。


整片擦除

可以用整片擦除命令一次擦除整個Flash區(qū),但該命令不會影響信息塊,具體步驟如下:

1.檢查FLASH_SR寄存器的BS位,以確認(rèn)上次操作已經(jīng)結(jié)束。

2.將FLASH_CR寄存器中的MER位置為1,以選擇整片擦除。

3.將FLASH_CR寄存器中的STRT位置為1,以啟動擦除操作。

4.等待FLASH_SR中的BSY位置0,表明整片擦除操作結(jié)束。

5.檢查FLASH_SR寄存器的EOP標(biāo)志位(如果Flash擦除成功會置位EOP),然后軟件清除該標(biāo)志位。


flash在寫及擦除使用過程中需要注意的地方

問題描述:

CACHE打開的情況下,F(xiàn)LASH寫及擦除操作時產(chǎn)生錯誤。

根本原因:設(shè)計原因。

解決方案:

在寫了FLASH->AR寄存器后,操作FLASH->CR寄存器前執(zhí)行CACHE->CTL|=0x0800指令清一下CACHE。對于HK32F103xCxDxE,我們已經(jīng)在hk32f10x_flash.c 中已經(jīng)修改。

如需要了解更多航順MCU產(chǎn)品,請聯(lián)系航順核心代理商,穎特新科技,或者掃碼聯(lián)系我們!

航順代理聯(lián)系方式







編輯:zzy  最后修改時間:2022-06-02

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

弥渡县| 娄烦县| 阜康市| 驻马店市| 舞阳县| 晋江市| 普陀区| 丰镇市| 北辰区| 江安县| 万宁市| 青冈县| 剑川县| 乌拉特后旗| 莱州市| 秦安县| 慈利县| 博野县| 石首市| 莫力| 营口市| 颍上县| 九寨沟县| 高平市| 固安县| 星子县| 宁明县| 沅陵县| 淮阳县| 永定县| 兰西县| 康乐县| 象州县| 封开县| 石城县| 军事| 丰镇市| 嘉鱼县| 巴彦淖尔市| 广昌县| 临潭县|