在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 提高M(jìn)SP430G系列單片機(jī)的Flash擦寫壽命的方法

            提高M(jìn)SP430G系列單片機(jī)的Flash擦寫壽命的方法

            作者: 時間:2012-12-06 來源:網(wǎng)絡(luò) 收藏

            2.2 劃分子頁方案

            中劃分出至少2 個頁(Page)用作模擬EEPROM,根據(jù)應(yīng)用需求將需寫入EEPROM 進(jìn)行保存的變量數(shù)據(jù)劃分成一個定長的數(shù)組(子頁),例如16 個字節(jié)或者32 字節(jié),將頁劃分成若干子頁后,需對 中的所有子頁按照地址順序進(jìn)行逐次編號。每個子頁的第一個字節(jié)通常用來指示該子頁的狀態(tài),子頁狀態(tài)可以為:空、已寫入或者失效。

            在芯片上電初始化時,首先查找出第一個尚未寫入數(shù)據(jù)的子頁,并進(jìn)行標(biāo)識,在進(jìn)行寫EEPROM操作時,應(yīng)用程序需將待寫入EEPROM 子頁的所有數(shù)據(jù)按照事先約定好的順序整理好,再一次性將所有變量數(shù)據(jù)寫入空的子頁中,最后將模擬EEPROM 的操作指針指向下一個空閑的子頁,等待下一次寫入。待將一個頁的數(shù)據(jù)寫滿后,再進(jìn)行一次擦除操作。需要處理好指向子頁的指針的跳轉(zhuǎn)。

            每個頁存在3 種可能狀態(tài):

            擦除態(tài):該頁是空的。

            已寫滿數(shù)據(jù)狀態(tài):該頁已經(jīng)寫滿數(shù)據(jù)。

            有效頁狀態(tài):該頁包含著有效數(shù)據(jù)并且該頁尚未寫滿,仍可向子頁寫入數(shù)據(jù)。

            圖三介紹了使用子頁的方式實現(xiàn) 模擬EEPROM的數(shù)據(jù)處理方法。

            提高M(jìn)SP430G系列單片機(jī)的Flash擦寫壽命的方法

            2.2.1 軟件描述

            在軟件實現(xiàn)上,為了便于軟件處理,建議定義一些關(guān)鍵宏定義和結(jié)構(gòu)體,指定Flash 模擬EEPROM 的起始、結(jié)束地址、頁的大小、子頁的大小、每個頁的子頁數(shù)目等參數(shù),同時將需要操作的參數(shù)封裝起來,便于軟件操作和管理,不建議定義許多離散的標(biāo)志變量。

            提高M(jìn)SP430G系列單片機(jī)的Flash擦寫壽命的方法
            提高M(jìn)SP430G系列單片機(jī)的Flash擦寫壽命的方法

            在軟件操作上,F(xiàn)lash 模擬EEPROM模塊需要提供幾個API 接口給應(yīng)用程序調(diào)用。

            ? 通過typedef 關(guān)鍵字定義設(shè)備類型,typedef unsigned char u8;

            ? ChkFstPowerOnInfo()用于檢測芯片是否為第一次上電并初始化EEPROM 參數(shù)到內(nèi)存,原型如下。

            Void ChkFstPowerOnInfo(void);

            ? FlashWrite()用于寫Flash,傳遞的形參包括指向待寫入數(shù)據(jù)的指針,待寫入數(shù)據(jù)在子頁中的起始字節(jié)編號,寫入數(shù)據(jù)的長度,原型如下。

            void FlashWrite( u8 *array, u8 startNum, u8 length );

            ? FlashErase()用于擦除Flash,傳遞的形參是子頁的編號,在擦除函數(shù)中需要根據(jù)子頁的編號判斷是否需要執(zhí)行頁的擦除操作,原型如下。

            void FlashErase(u8 seg_sn);

            2.2.2 軟件流程圖

            軟件啟動后,初始化模擬EEPROM流程圖描述如下。

            提高M(jìn)SP430G系列單片機(jī)的Flash擦寫壽命的方法

            調(diào)用API,向模擬EEPROM 寫入數(shù)據(jù)的軟件流程如圖五所示。在軟件處理中,要特別注意目標(biāo)指針的切換和保證寫入數(shù)據(jù)的正確性,在代碼空間允許的情況下,可以增加一些校驗算法來保證。

            pos機(jī)相關(guān)文章:pos機(jī)原理




            評論


            相關(guān)推薦

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

            關(guān)閉