在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            STM8 讀同時寫RWW

            作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
            RWW特性允許用戶在執(zhí)行程序和讀程序存儲器時對DATA EEPROM區(qū)域進行寫操作,因此執(zhí)行的時間被優(yōu)化了。相反的操作是不允許的:即你不可以在寫程序存儲器時對DATA EEPROM進行讀操作。

            本文引用地址:http://www.biyoush.com/article/201611/316700.htmRWW特性是一直有效的而且可以在任意時刻使用。注意:并不是所有STM8都擁有RWW特性,請參考相應(yīng)的數(shù)據(jù)手冊來了解更多信息。

            字節(jié)編程

            可以對主程序存儲器和DATA區(qū)域逐字節(jié)地編程。要對一個字節(jié)編程,應(yīng)用程序可直接向目標(biāo)地址寫入數(shù)據(jù)。


            在主程序存儲器中
            當(dāng)字節(jié)編程操作執(zhí)行時,應(yīng)用程序停止運行。
            在DATA區(qū)域中
            有RWW功能的器件:在IAP模式下,應(yīng)用程序不停止運行,字節(jié)編程利用RWW功能進行操作。
            無RWW功能的器件:當(dāng)字節(jié)編程操作執(zhí)行時,應(yīng)用程序停止運行。

            要擦除一個字節(jié),向?qū)?yīng)的字節(jié)簡單寫入0x00即可。
            應(yīng)用程序可以通過讀FLASH_IAPSR寄存器來校驗編程或擦除操作是否已被正確執(zhí)行:


            在一次成功的編程操作后EOP位被置1。
            當(dāng)軟件試圖對一個被保護的頁進行寫操作時WP_PG_DIS位被置1。在這種情況下,寫操作不會被執(zhí)行。

            如果FLASH_CR1中的IE位已經(jīng)被預(yù)先使能,則只要這些標(biāo)志位(EOP/WP_PG_DIS)中有一個被置位就會產(chǎn)生一個中斷。
            STM8自動快速字節(jié)編程,根據(jù)目標(biāo)地址的初始化內(nèi)容的不同,編程持續(xù)時間可能也有所不同。如果字(4個字節(jié))中包含不為空的字節(jié),編程前字會被自動擦除。相反,如果字節(jié)為空,由于不會執(zhí)行擦除操作從而編程時間變短。然而,可以通過對FLASH_CR1中的FIX位置1來強迫執(zhí)行系統(tǒng)擦除操作而不管其內(nèi)容是否為空,從而使編程時間固定(請參考FLASH控制寄存器)。編程總時間隨之被規(guī)定為擦除時間和寫操作時間的和(請參考tPROG參數(shù),在數(shù)據(jù)手冊的"Flash program memory"表中)。

            注意:為了快速寫一個字節(jié)(沒有擦除操作),將要被寫入數(shù)據(jù)的整個字(4個字節(jié))必須被預(yù)先擦除。因此不可能對同一個字做連續(xù)兩次快速寫操作(在第二次寫之前沒有擦除操作):第一次寫字節(jié)操作將是快速操作但針對另外一個字節(jié)的第二次寫操作將需要一個擦除操作。


            字編程

            字寫入操作允許一次對整個4字節(jié)的字進行編程,從而將編程時間縮短。

            主程序存儲器和DATA EEPROM都可以進行字操作。在一些STM8S器件中,也擁有當(dāng)DATA EEPROM在進行寫操作時同時具備RWW功能。請參考數(shù)據(jù)手冊了解更多信息。為了對一個字編程,F(xiàn)LASH_CR2和FLASH_NCR2中的/WPRG/NWPRG位必須預(yù)先置位清零來使能字編程模式(請參考4.9.2 FLASH控制寄存器2(FLASH_CR2)和4.9.3 FLASH互補控制寄存器2(FLASH_NCR2))。然后將要被編程字的4個字節(jié)必須被從首地址開始裝載。當(dāng)四個字節(jié)都被寫入后,編程周期自動開始。
            像字節(jié)操作一樣,STM8的FLASH_IAPSR中的EOP與WR_PG_DIS控制位和FLASH中斷相配合,可用于檢查操作是否被正確執(zhí)行完畢。

            塊編程

            塊編程比字節(jié)編程和字編程都要快。在STM8塊編程操作中,整個塊的編程或擦除在一個編程周期就可以完成。請參考(表4)了解具體器件的塊的大小。在主程序存儲器和DATA區(qū)域都可以執(zhí)行塊操作。


            在主程序存儲器中
            用于塊編程的代碼必須全部在RAM中執(zhí)行。
            在DATA區(qū)域中
            有RWW功能的器件:DATA塊操作可在主程序存儲器中執(zhí)行,然而數(shù)據(jù)裝載階段(下文中有述)必須在RAM中執(zhí)行。
            無RWW功能的器件:用于塊編程的代碼必須全部在RAM中執(zhí)行。

            一共有三種可能的塊操作:


            塊編程(也叫標(biāo)準(zhǔn)塊編程):整個塊在編程前被自動擦除。
            快速塊編程:在編程前沒有預(yù)先的塊擦除操作。
            塊擦除。

            在STM8塊編程時,中斷被硬件自動屏蔽。

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

            塊編程操作允許一次對整個塊進行編程,整個塊在編程前被自動擦除。
            為了對整個塊編程,F(xiàn)LASH_CR2和FLASH_NCR2中的PRG/NPRG位必須預(yù)先置位/清零來使能標(biāo)準(zhǔn)塊編程(請參考4.9.2 FLASH控制寄存器2(FLASH_CR2)和4.9.3 FLASH互補控制寄存器2(FLASH_NCR2))。然后需要向主程序存儲器或DATA區(qū)域的目標(biāo)地址依次寫入要編程的數(shù)據(jù),這樣數(shù)據(jù)會被鎖存在內(nèi)部緩存中。為編程整個塊,塊中的所有字節(jié)都需要被寫入數(shù)據(jù)。但要注意,所有被寫入緩存的數(shù)據(jù)必須位于同一個塊中,這意味著這些數(shù)據(jù)必須有同樣的高位地址:僅僅低6位的地址可以不一樣。當(dāng)目標(biāo)塊的最后一個字節(jié)被裝載到緩存后,編程就自動開始了。編程前首先會自動執(zhí)行一次擦除操作。

            當(dāng)對DTA區(qū)域進行塊編程時,應(yīng)用程序可以檢查FLASH_IAPSR中的HVOFF位確認(rèn)編程狀態(tài)。一旦HVOFF被置0,真正的編程階段就開始了,此時應(yīng)用程序就可以返回到主程序中去了。FLASH_IAPSR中的EOP與WR_PG_DIS控制位和FLASH中斷相配合,可用于檢查操作是否被正確執(zhí)行完畢。

            快速塊編程
            STM8快速塊編程允許不擦除存儲器內(nèi)容就對塊進行編程,因此快速塊編程的編程速度是標(biāo)準(zhǔn)塊編程的兩倍。該模式僅用于被編程部分已經(jīng)被擦除過的情況,同時這種模式對向空白部分寫入完整的應(yīng)用代碼特別有用,因為這種模式可以節(jié)省相當(dāng)可觀的時間。
            快速塊編程的步驟和標(biāo)準(zhǔn)塊編程的步驟大致一樣,F(xiàn)LASH_CR2和FLASH_NCR2中的FPRG/NFPRG位必須預(yù)先置位/清零來使能快速塊編程(請參考4.9.2 FLASH控制寄存器2(FLASH_CR2)和4.9.3 FLASH互補控制寄存2(FLASH_NCR2))。FLASH_IAPSR中的EOP與WR_PG_DIS控制位和FLASH中斷相配合,可用于檢查快速塊編程操作是否被正確執(zhí)行完畢。
            警告:在執(zhí)行快速塊編程之前如果這個塊不是空的話,不能保證寫入的數(shù)據(jù)無誤。
            塊擦除

            塊擦除允許擦除整個塊。
            為了擦除整個塊,F(xiàn)LASH_CR2和FLASH_NCR2中的ERASE/NERASE位必須預(yù)先置位/清零來使能塊擦除(請參考4.9.2 FLASH控制寄存器2(FLASH_CR2)和4.9.3 FLASH互補控制寄存器2(FLASH_NCR2))。通過對塊中所有的字寫入0x00 00 00 00來擦除整個塊。字的起始地址必須以0,4,8,或C作為結(jié)尾。

            FLASH_IAPSR中_PG_DIS控制位和FLASH中斷相配操作是否被正確執(zhí)行完畢。


            選項字節(jié)(Option byte)編程


            對選項字節(jié)編程和對DATA EEPROM區(qū)域編程非常相似。
            應(yīng)用程序可直接向目標(biāo)地址進行寫操作。利用STM8的RWW功能,在對選項字節(jié)寫操作的同時程序不必停下來。
            請參考相應(yīng)的數(shù)據(jù)手冊來了解選項字節(jié)內(nèi)容的細(xì)節(jié)。




            關(guān)鍵詞: STM8讀同RW

            評論


            技術(shù)專區(qū)

            關(guān)閉