国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年01月31日(星期五)

2021年01月31日 | STM32片上Flash讀寫(xiě)的一些重要知識(shí)

發(fā)布者:CelestialSoul 來(lái)源: eefocus關(guān)鍵字:STM32  片上Flash  讀寫(xiě) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

關(guān)于STM32片上Flash讀寫(xiě)操作,之前很多朋友遇到過(guò)坑,也問(wèn)過(guò)很多相關(guān)的問(wèn)題,這里再簡(jiǎn)單總結(jié)一下。


1寫(xiě)在前面

STM32片上Flash除了存儲(chǔ)我們的代碼,多余的空間還可以供我自己編程(讀寫(xiě))。比如,存儲(chǔ)標(biāo)志位、字庫(kù)等。


如果對(duì)片上Flash讀寫(xiě)操作不當(dāng),將會(huì)導(dǎo)致不可挽回的結(jié)局。比如:修改了應(yīng)用程序代碼導(dǎo)致程序跑飛,非對(duì)其操作導(dǎo)致異常中斷等。


因此,我們對(duì)片上Flash讀寫(xiě)操作時(shí),一定要避免一些錯(cuò)誤的做法。下面將講述一些關(guān)于STM32片上Flash的知識(shí),讓大家掌握更多相關(guān)知識(shí)。


2Flash閃存接口

STM32片上Flash閃存接口是在AHB協(xié)議上實(shí)現(xiàn)了對(duì)指令和數(shù)據(jù)的訪問(wèn),它通過(guò)對(duì)存儲(chǔ)器的預(yù)取緩存,加快了存儲(chǔ)器的訪問(wèn);


閃存接口還實(shí)現(xiàn)了在所有工作電壓下對(duì)閃存編程和擦除所需的邏輯電路,這里還包括訪問(wèn)和寫(xiě)入保護(hù)以及選項(xiàng)字節(jié)的控制。


內(nèi)置閃存模塊可以在通用地址空間直接尋址,任何32位數(shù)據(jù)的讀操作都能訪問(wèn)閃存模塊的內(nèi)容并得到相應(yīng)的數(shù)據(jù)。


3STM32片上Flash容量

STM32片上Flash容量大小與芯片的型號(hào)有關(guān),具體大小可以參看命名規(guī)則:

圖片


而我們也可以通過(guò)讀取Flash容量寄存器,或通過(guò)STM32 ST-LINK Utility工具獲取芯片容量。具體可以參看我的另一篇文章《關(guān)于STM32的這幾個(gè)寄存器》


4Flash閃存模塊的組織

STM32的Flash,有的是分頁(yè),而有的卻是分塊,具體可以查閱“參考手冊(cè)”。


比如:STM32F0、 F1、 F3、 L1等就是按Page頁(yè)來(lái)劃分的,如下圖:

圖片


而像STM32F2、F4等就是按Sector扇區(qū)來(lái)劃分,如下圖:

圖片


所以,如果移植代碼,從Page頁(yè)移植到Sector扇區(qū),或者從Sector扇區(qū)移植到Page頁(yè),這部分底層代碼必須要修改才行。


5非對(duì)其寫(xiě)操作

STM32為32位的MCU,即4個(gè)字節(jié)。如果不是按照4個(gè)字節(jié)的寫(xiě)Flash,將導(dǎo)致Faults異常。


寫(xiě)Flash過(guò)程:


這里大家可以參看我之前分享的文章:

1.位帶別名區(qū)最低有效位


2.談?wù)凷TM32(CM3)的Faults異常


6寫(xiě)操作不響應(yīng)代碼或數(shù)據(jù)讀取

對(duì)STM32內(nèi)部FLash的寫(xiě)操作,相對(duì)于執(zhí)行指令是比較耗時(shí)的。從數(shù)據(jù)手冊(cè)可以得出16位數(shù)據(jù)編程時(shí)間再40 --- 70us。

圖片


從STM32編程手冊(cè)中,可以知道:在進(jìn)行寫(xiě)或擦除操作時(shí),不能進(jìn)行代碼或數(shù)據(jù)的讀取操作。


比如:你在寫(xiě)Flash期間有接收串口數(shù)據(jù),很有可能會(huì)丟串口數(shù)據(jù)。


因?yàn)楸容^耗時(shí),所以,在寫(xiě)數(shù)據(jù)時(shí),CPU不會(huì)執(zhí)行其他操作。


簡(jiǎn)單說(shuō):在寫(xiě)Flash時(shí),CPU 不能取指令,導(dǎo)致中斷得不到及時(shí)響應(yīng),從而發(fā)生接收到的數(shù)據(jù)未及時(shí)讀走而被覆蓋的現(xiàn)象。


遇到這種情況,解決的辦法:使用DMA。DMA不需要CPU干預(yù),一旦 USART 有數(shù)據(jù)接收到,由 DMA 負(fù)責(zé)將其傳輸至循環(huán)緩沖區(qū)中。軟件定期檢測(cè)循環(huán)緩沖區(qū)中是否有接收到的數(shù)據(jù),如果有則加以處理。


提示:

如果你的代碼會(huì)反復(fù)讀Flash,建議使用外部Flash。


關(guān)鍵字:STM32  片上Flash  讀寫(xiě) 引用地址:STM32片上Flash讀寫(xiě)的一些重要知識(shí)

上一篇:關(guān)于STM32的這幾個(gè)寄存器,你知道嗎?
下一篇:定時(shí)器基本原理及常見(jiàn)問(wèn)題

推薦閱讀

日本面板廠JDI開(kāi)發(fā)了一款玻璃材質(zhì)電容式指紋傳感器,但產(chǎn)業(yè)分析師認(rèn)為,盡管其TFT指紋傳感器與硅芯片解決方案相較有一些特定優(yōu)勢(shì),該公司可能太晚切入該市場(chǎng)、投入的資源也太少。為了尋找智能手機(jī)以外的新市場(chǎng),日本面板廠Japan Display Inc. (JDI)開(kāi)發(fā)了一款以透明玻璃為基礎(chǔ)材質(zhì)的電容式指紋傳感器。對(duì)于這家由索尼(Sony)、東芝(Toshiba)與日立(Hitac...
///* CPU的小缺陷:串口配置好,如果直接Send,則第1個(gè)字節(jié)發(fā)送不出去// 如下語(yǔ)句解決第1個(gè)字節(jié)無(wú)法正確發(fā)送出去的問(wèn)題 */ /* 清發(fā)送完成標(biāo)志,Transmission Complete flag */USART_ClearFlag(USART1, USART_FLAG_TXE);    USART_ReceiveData(USART1); //讀DR USART_ClearFlag(USART1,USART_FLAG_ORE); //讀SR    USART1_SendOneByte(0xff);
一、基本1.5529包含五個(gè)時(shí)鐘源XT1CLK:外部低頻晶振,32.786KHz,可以用作FLL參考電源,也可以整4MHZ到32MhzXT2CLK:外部高頻晶振,可用作fll參考源可以4MHZ到32MHZ但是F5529的最高CPU頻率好像是25MHZ?VLO:內(nèi)部低耗低頻晶振,10kHZREF:內(nèi)部低頻參考源,32.786Khz,可用作FLL參考源,精度高DCO:數(shù)控振蕩器,通過(guò)FLL設(shè)置三個(gè)信號(hào)源ACLK:輔助時(shí)鐘源MCLK:...
新建一個(gè)工程,將程序改成如下#include <msp430.h>#define uint8 unsigned char#define uint16 unsigned intuint8 key_data(void)//讀取按鍵是否被按下{ uint8 key_value=0; if((P1IN&BIT1) == 0) { __delay_cycles(10000);//延時(shí)防抖動(dòng) if((P1IN&BIT1) == 0) { key_value...

史海拾趣

問(wèn)答坊 | AI 解惑

4×矩陣鍵盤(pán)

4×4矩陣鍵盤(pán),按下相應(yīng)鍵,數(shù)碼管顯示對(duì)應(yīng)數(shù)字。含C程序和proteus仿真圖?!?

查看全部問(wèn)答∨

【藏書(shū)閣】晶體管開(kāi)關(guān)電路的設(shè)計(jì)和應(yīng)用

書(shū)名:晶體管開(kāi)關(guān)電路的設(shè)計(jì)和應(yīng)用 出版社:科學(xué)出版社 出版時(shí)間:1972 頁(yè)數(shù):346頁(yè) 開(kāi)本:19cm 目錄: 第一章 晶體管的物理特性 第二章 面結(jié)型晶體管的小信號(hào)等效電路 第三章 各類(lèi)晶體管的制作及其特性 第四章 晶體管作為開(kāi)關(guān)作用 第五章 晶 ...…

查看全部問(wèn)答∨

為什么宏的執(zhí)行比函數(shù)還慢?

用STM32F103RET6,編譯器是keil,寫(xiě)了一個(gè)宏定義和一個(gè)函數(shù),實(shí)現(xiàn)同樣的功能,即在PA.0上發(fā)一個(gè)脈沖,定義分別為: 宏定義: #define PULSE1(){GPIOA->BSRR=0x01;GPIOA->BRR=0x01;} 函數(shù)定義: void debug_pulse(void) { GPIOA-> ...…

查看全部問(wèn)答∨

求好心人給提供MSP430F425相關(guān)資料。

求好心人給提供MSP430F425相關(guān)資料。求好心人給提供MSP430F425相關(guān)資料?!?

查看全部問(wèn)答∨

win7 ccs安裝及申請(qǐng)免費(fèi)版 License

今天開(kāi)始看Launchpad公開(kāi)課了,先把軟件裝上,我的是ccs v4.2的。安裝就不多說(shuō)了,發(fā)一下怎么申請(qǐng)License吧見(jiàn)文檔: [ 本帖最后由 zhuludiqing 于 2012-6-26 13:26 編輯 ]…

查看全部問(wèn)答∨

ATMEGA169的引腳中斷不起作用!強(qiáng)烈質(zhì)疑ATMEGA169PA !

ATMEGA169的引腳中斷不起作用!強(qiáng)烈質(zhì)疑ATMEGA169PA ! [ 本帖最后由 gh131413 于 2013-12-9 15:45 編輯 ]…

查看全部問(wèn)答∨

用UC3909芯片制作的充電器,保護(hù)熱敏電阻的選擇疑惑

用UC3909做了一個(gè)24V鉛酸電池的充電器,目前充電器工作完全按照設(shè)計(jì)的要求運(yùn)行,并且經(jīng)過(guò)了多次測(cè)試。 現(xiàn)在想將熱敏電阻保護(hù)加進(jìn)去,可是在對(duì)UC3909熱敏電阻那塊運(yùn)放電路計(jì)算時(shí),出現(xiàn)了一些疑惑: 1,電池溫度升高,最后浮充充電電壓應(yīng)該減小,這 ...…

查看全部問(wèn)答∨

zigbee路由器丟包

如果一個(gè)路由器給[img=0,1]file:///D:\\程序\\QQMessageOfMyself\\1185054154\\Image\\C2C\\9W8C}DR4ZVO3TXNJFJ[[6HF.png[/img]協(xié)調(diào)器發(fā)數(shù)據(jù),不丟包,如果兩個(gè)路由器同時(shí)給協(xié)調(diào)器發(fā)送數(shù)據(jù),有時(shí)候某個(gè)路由器的數(shù)據(jù)就丟了,有時(shí)候丟一個(gè),有時(shí)候丟 ...…

查看全部問(wèn)答∨

晶振頻點(diǎn)應(yīng)用領(lǐng)域

一、電腦周邊電子配件 主板:14.318MHZ、24.576、25MHZ、27MHZ、32.768KHZ 顯示器:8M/14.31818MHZ、12.000MHZ、24.000MHZ、28.224MHZ 硬盤(pán): 23.040MHz,28.224MHz 光驅(qū):33.8688MHz,16.9344MHz,18.432MHz 鍵盤(pán):6.000MHz 鼠標(biāo):6.000MHz ...…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved