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

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

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

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

讀寫(xiě)Flash時(shí)要不要關(guān)中斷

TopSemic嵌入式 ? 來(lái)源:TopSemic嵌入式 ? 作者:Norman ? 2022-10-18 09:03 ? 次閱讀

關(guān)中斷,還是開(kāi)中斷?這是個(gè)問(wèn)題。

大家知道,在單片機(jī)運(yùn)行的時(shí)候,經(jīng)常有一些數(shù)據(jù)需要保存,而且即使掉電后,這些數(shù)據(jù)也不能丟失。用一片EEPROM,如24C02可以解決,但是這會(huì)增加成本。所以,一個(gè)比較常用的辦法,是把數(shù)據(jù)存入單片機(jī)的Flash,這種方法叫IAP(In Application Programming)。

此方法雖然省錢(qián),但用的不對(duì)也會(huì)帶來(lái)各種困擾,看看大家的討論就知道了:

0f883570-4e80-11ed-a3b6-dac502259ad0.jpg0fe252d0-4e80-11ed-a3b6-dac502259ad0.jpg1010bf62-4e80-11ed-a3b6-dac502259ad0.jpg105f4cc2-4e80-11ed-a3b6-dac502259ad0.jpg

我們先看一下Flash的原理,然后探討一下寫(xiě)程序時(shí),有什么需要注意的。現(xiàn)在單片機(jī)中集成的一般是Nor Flash,這種技術(shù)是Intel在1988年推出的,它利用浮柵場(chǎng)效應(yīng)管(Floating Gate MOSFET)存儲(chǔ)程序或數(shù)據(jù)。簡(jiǎn)單來(lái)說(shuō),浮柵就像一個(gè)囚禁電子的籠子,通過(guò)在柵極加正向電壓,可以把電子捕獲到籠子里,通過(guò)加負(fù)電壓,可以把電子從籠子里全部趕走。而數(shù)據(jù)的讀取,是通過(guò)檢測(cè)柵極中有沒(méi)有存儲(chǔ)電子,這一過(guò)程不會(huì)導(dǎo)致浮柵中電子的狀態(tài)改變。

10a80c3c-4e80-11ed-a3b6-dac502259ad0.jpg

(From Technical Note by Macronix International)

這樣,我們很容易理解,在擦寫(xiě)Flash的時(shí)候,不應(yīng)該去讀Flash。回到開(kāi)始的問(wèn)題,在程序擦寫(xiě)Flash期間,是不是應(yīng)該把中斷關(guān)掉呢?因?yàn)槲覀冎乐袛嘞蛄勘恚J(rèn)是存放在Flash中的。真不一定,還是需要具體情況具體分析。一些早期的單片機(jī),擦寫(xiě)Flash的代碼,需要拷貝到RAM里執(zhí)行,并且必須關(guān)閉所有中斷,否則會(huì)出錯(cuò)。但是現(xiàn)在推出的單片機(jī),一般都引入了Stall機(jī)制,在擦寫(xiě)Flash的時(shí)候,讀Flash的操作會(huì)被阻止,擦寫(xiě)完之后,才能繼續(xù)執(zhí)行。

比如STM32F030手冊(cè)中,有以下描述:

10dd91b8-4e80-11ed-a3b6-dac502259ad0.jpg

我們可以用程序觀察一下。程序里有一個(gè)1ms中斷,每進(jìn)入一次中斷翻轉(zhuǎn)一次引腳,在主程序的循環(huán)中,每1S執(zhí)行一次Flash頁(yè)擦除操作。可以看到擦除Flash一個(gè)頁(yè)用了21.9ms。在擦除期間,1ms中斷停止響應(yīng),擦完后1ms中斷繼續(xù)執(zhí)行。

111279d2-4e80-11ed-a3b6-dac502259ad0.jpg1139a12e-4e80-11ed-a3b6-dac502259ad0.jpg

如果程序?qū)χ袛囗憫?yīng)要求特別高,比如精確計(jì)時(shí),或者中斷需要馬上響應(yīng),可以把中斷向量表和中斷響應(yīng)代碼都放到RAM中執(zhí)行,有興趣的同學(xué)可以自己試一下。

再有一種情況就是,如果單片機(jī)中有兩個(gè)以上的Flash Bank,中斷向量表在一個(gè)Bank中,那么擦寫(xiě)其它Bank時(shí),中斷響應(yīng)是不受影響的。






審核編輯:劉清

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

    關(guān)注

    10

    文章

    1638

    瀏覽量

    148206
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    899

    瀏覽量

    41559
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1023

    瀏覽量

    81727

原文標(biāo)題:R&D奇譚 第7期: 讀寫(xiě)Flash時(shí),要不要關(guān)中斷?

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    寫(xiě)flash要不要加個(gè)判斷?

    “寫(xiě)flash要不要加個(gè)判斷?”這是我一個(gè)朋友的提問(wèn)。
    的頭像 發(fā)表于 11-21 10:07 ?719次閱讀
    寫(xiě)<b class='flag-5'>flash</b>,<b class='flag-5'>要不要</b>加個(gè)判斷?

    設(shè)計(jì)成品時(shí),要不要加入電池啊

    兩個(gè)問(wèn)題:1、你們都說(shuō)這是一個(gè)移動(dòng)電源,那我設(shè)計(jì)成品時(shí),要不要加入電池啊,要的話,電池要那種好呢,一般的可充電池還是手機(jī)電池那一類!2、我看到你們樣板的圖片:充電部分與放電部分是分開(kāi),各屬一片電路板。考慮到產(chǎn)品的可觀性,分成兩片電路板是好的,但如果我將它們都設(shè)計(jì)成一個(gè)電路板那會(huì)不會(huì)影響你們對(duì)我的評(píng)分!
    發(fā)表于 06-01 09:06

    要不要學(xué)MSP430

    現(xiàn)在比較糾結(jié)!到底要不要學(xué)習(xí)MSP430!似乎他除了低功耗也沒(méi)有什么了!哎。。。
    發(fā)表于 10-04 16:00

    測(cè)控類要不要學(xué)習(xí)板卡!!!!!

    電氣控制專業(yè)的以后想找測(cè)控類的工作,重點(diǎn)應(yīng)該學(xué)習(xí)LabVIEW的那些東西?要不要學(xué)習(xí)板卡,那種卡使用一點(diǎn)?新手(菜鳥(niǎo)),語(yǔ)言不當(dāng)千萬(wàn)見(jiàn)諒!
    發(fā)表于 03-06 15:54

    請(qǐng)問(wèn)ade7753讀irms之前要不要先進(jìn)行一個(gè)使能中斷,對(duì)波形采樣

    急急急!!!ade7753讀irms之前要不要先進(jìn)行一個(gè)使能中斷,對(duì)波形采樣這幾句話的意思是不是就是說(shuō),在對(duì)IRMS讀之前,要先把波形采樣那塊弄個(gè)中斷,然后出現(xiàn)波形后,才能進(jìn)行后面計(jì)算,才能讀IRMS里的電流有效值?
    發(fā)表于 09-30 14:42

    請(qǐng)問(wèn)霍爾測(cè)速編碼器要不要電源?

    請(qǐng)問(wèn)大師們,在下實(shí)在是遇到了難題,求問(wèn):霍爾測(cè)速編碼器要不要電源?接上電源后沒(méi)有輸出有什么可能?
    發(fā)表于 07-24 08:03

    方波產(chǎn)生電路要不要輸入信號(hào)呢?

    方波產(chǎn)生電路要不要輸入信號(hào)?它是靠什么物理過(guò)程使得集成運(yùn)放的反相輸入端電位改變從而使輸出發(fā)生翻轉(zhuǎn)?
    發(fā)表于 04-28 11:10

    技巧:快說(shuō)iOS 10.2到底要不要升級(jí)

    iOS 10.2的這次升級(jí)主要在一些細(xì)節(jié)方面,比如表情包啥的,看完這些以后泥萌就可以知道要不要升級(jí)了。
    發(fā)表于 12-19 11:40 ?1899次閱讀

    電腦固態(tài)硬盤(pán)到底要不要分區(qū)

    隨著固態(tài)硬盤(pán)入門(mén)容量進(jìn)入240GB時(shí)代,它負(fù)擔(dān)的已經(jīng)不單單是系統(tǒng)盤(pán)的職責(zé),常用的軟件及個(gè)人文檔都可以享受到高速的待遇。不過(guò)固態(tài)硬盤(pán)到底要不要分區(qū)?分區(qū)分幾個(gè)依然是恒古不變的爭(zhēng)議話題。
    的頭像 發(fā)表于 01-12 11:14 ?1.5w次閱讀

    無(wú)線ap隔離有什么用_無(wú)線ap隔離要不要開(kāi)

    本文首先介紹了無(wú)線ap隔離的概念,其次闡述了無(wú)線ap隔離作用,最后分析了無(wú)線ap隔離要不要開(kāi)。
    發(fā)表于 04-15 10:41 ?5.4w次閱讀

    DC-DC電路中的電感下面要不要鋪銅

    關(guān)于DC-DC開(kāi)關(guān)芯片上的電感下面要不要鋪銅,網(wǎng)上有很多不同的意見(jiàn),今天在網(wǎng)上看到一篇文章里面有ADI工程師對(duì)于這個(gè)問(wèn)題的解答,他的解答如下:
    發(fā)表于 11-07 13:51 ?23次下載
    DC-DC電路中的電感下面<b class='flag-5'>要不要</b>鋪銅

    要不要安裝360全景導(dǎo)航?

    要不要安裝360全景導(dǎo)航
    的頭像 發(fā)表于 11-26 11:04 ?1491次閱讀
    <b class='flag-5'>要不要</b>安裝360全景導(dǎo)航?

    為什么冬季油耗偏高?到底要不要熱車(chē)?

    為什么冬季油耗偏高?到底要不要熱車(chē)?
    的頭像 發(fā)表于 11-24 16:30 ?699次閱讀
    為什么冬季油耗偏高?到底<b class='flag-5'>要不要</b>熱車(chē)?

    電主軸軸承如何判斷要不要換?|深圳恒興隆機(jī)電

    電主軸軸承如何判斷要不要換?|深圳恒興隆機(jī)電
    的頭像 發(fā)表于 07-05 10:35 ?693次閱讀
    電主軸軸承如何判斷<b class='flag-5'>要不要</b>換?|深圳恒興隆機(jī)電

    工廠到底要不要上MES?

    工廠到底要不要上MES?這幾年,很多工廠老板都開(kāi)始思考這個(gè)問(wèn)題。上吧,又害怕資金投入得不到回報(bào),費(fèi)時(shí)費(fèi)力又費(fèi)財(cái);不上吧,看到身邊的同行接連地加入MES行列,經(jīng)營(yíng)得風(fēng)生水起,再過(guò)幾年差距就拉開(kāi)了……
    的頭像 發(fā)表于 01-04 16:28 ?444次閱讀
    主站蜘蛛池模板: 爽死你个放荡粗暴小淫视频| 天天插天天干天天操| 国产精品人人爱一区二区白浆| 丁香花在线电影小说观看| 日本中文字幕在线播放| 色老头影视| 人人澡人人射| 久久久久久久网站| 七月婷婷精品视频在线观看| 日本在线观看www| 久久精品综合网| 国产jzjzjz免费大全视频| 4hu影院在线观看| 丁香婷婷综合五月综合色啪| 99成人| 色网综合| 四虎1515hh永久久免费| 色依依视频视频在线观看| 极品丰满翘臀后进啪啪| 天天射视频| 好吊色视频988gao在线观看| 欧美人与z0zoxxxx| 性欧美丰满xxxx性久久久| 91精品国产亚洲爽啪在线影院 | 国产三级黄色录像| 黄色免费大全| 噜噜噜色噜噜噜久久| 国产馆精品推荐在线观看 | 日本三级日本三级日本三级极 | 亚洲 图片 小说 欧美 另类| 色爱区综合激情五月综合色| 精品一级毛片| 天天爽夜夜爽人人爽一区二区| 亚洲 欧美 校园| 99精品国产高清自在线看超| 日本激情网| 男女一级大黄| 久久国产午夜精品理论片34页| 综合色久| 亚洲天堂爱爱| 欧美日一级|