System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 99久久人妻无码精品系列,亚洲av无码电影网,日韩乱码人妻无码中文字幕
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于NOR Flash的日志文本滾動(dòng)存儲(chǔ)方法及裝置制造方法及圖紙

    技術(shù)編號(hào):42458654 閱讀:18 留言:0更新日期:2024-08-21 12:48
    本發(fā)明專(zhuān)利技術(shù)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,公開(kāi)了一種基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,包括以下步驟:步驟1:對(duì)日志文本存儲(chǔ)區(qū)域劃分為索引區(qū)和日志文本區(qū);步驟2:判斷日志文本區(qū)中結(jié)束位置所在扇區(qū)的剩余空間是否滿(mǎn)足寫(xiě)入日志文本;若滿(mǎn)足,則寫(xiě)入日志文本;步驟3:判斷結(jié)束位置所在扇區(qū)的下一扇區(qū)是否為日志文本起始位置所在扇區(qū);步驟4:擦除結(jié)束位置所在扇區(qū)的下一扇區(qū),寫(xiě)入日志文本,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū);步驟5:更新起始位置和索引信息;擦除結(jié)束位置所在扇區(qū)的下一扇區(qū),寫(xiě)入日志文本,更新索引信息。本方法能夠提高日志文本存儲(chǔ)的效率和提高Flash的壽命。同時(shí),還提供了一種基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)裝置。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本專(zhuān)利技術(shù)涉及計(jì)算機(jī),尤其涉及一種基于nor?flash的日志文本滾動(dòng)存儲(chǔ)方法及裝置。


    技術(shù)介紹

    1、在軟件系統(tǒng)的運(yùn)行過(guò)程中,不可避免地會(huì)存在一些bug,解決bug最常用的方法就是通過(guò)分析系統(tǒng)運(yùn)行過(guò)程中記錄的日志來(lái)定位問(wèn)題。但是在一些小型的mcu系統(tǒng)中,通常資源受限,需要以最小的硬件成本及最高的運(yùn)算效率來(lái)實(shí)現(xiàn)所需的功能,無(wú)法使用一些現(xiàn)成復(fù)雜的文件系統(tǒng)來(lái)快速高效地存儲(chǔ)日志文本。

    2、目前最常用的日志文本存儲(chǔ)方法就是將日志內(nèi)容寫(xiě)入文件,但該方式要求系統(tǒng)必須要掛載文件系統(tǒng),這對(duì)于小型mcu系統(tǒng)來(lái)說(shuō),會(huì)額外占用一定的系統(tǒng)及硬件資源。而且,由于文件系統(tǒng)的特性,日志內(nèi)容在寫(xiě)入文件時(shí)通常是以緩存的方式寫(xiě)在ram中,當(dāng)ram中的內(nèi)容達(dá)到一定的量時(shí)才會(huì)真正寫(xiě)入到flash中,這會(huì)導(dǎo)致日志無(wú)法及時(shí)寫(xiě)到flash中,當(dāng)系統(tǒng)掉電或意外復(fù)位時(shí),很可能會(huì)丟失最近一段時(shí)間的日志。

    3、但是,如果要實(shí)現(xiàn)每次寫(xiě)入日志內(nèi)容都能及時(shí)寫(xiě)入到flash,則每次寫(xiě)入都需要刷新或保存文件系統(tǒng),這樣會(huì)導(dǎo)致每寫(xiě)入一次日志(幾十字節(jié)),文件系統(tǒng)的底層邏輯就會(huì)擦除并寫(xiě)入多個(gè)扇區(qū),降低flash壽命。同時(shí)擦除扇區(qū)耗時(shí)非常大,通常擦除一個(gè)扇區(qū)需要幾十到100毫秒時(shí)間,影響系統(tǒng)性能和實(shí)時(shí)性。

    4、cn113986842a公開(kāi)了一種實(shí)時(shí)數(shù)據(jù)庫(kù)日志滾動(dòng)存儲(chǔ)的方法,包括設(shè)置存檔文件滾動(dòng)參數(shù);運(yùn)用存檔文件滾動(dòng)參數(shù);設(shè)置日志文件滾動(dòng)參數(shù);設(shè)置日志管理機(jī)制。存檔文件所在磁盤(pán)的可用空間小于最低可用磁盤(pán)空間時(shí),則存檔文件滾動(dòng)存儲(chǔ);當(dāng)存檔文件所在磁盤(pán)的使用率達(dá)到磁盤(pán)最大使用率時(shí),存檔文件滾動(dòng)存儲(chǔ);當(dāng)磁盤(pán)可用空間與總空間百分比小于存檔文件所在磁盤(pán)最低預(yù)留的磁盤(pán)空間百分比時(shí),存檔文件滾動(dòng);通過(guò)設(shè)置以上兩個(gè)參數(shù)來(lái)控制存檔文件滾動(dòng)存儲(chǔ),解決數(shù)據(jù)存儲(chǔ)問(wèn)題。該方法通過(guò)設(shè)置參數(shù)和機(jī)制來(lái)動(dòng)態(tài)存儲(chǔ)日志文本,但是,在小型的mcu系統(tǒng)中采用該方法,會(huì)占用一定資源,影響系統(tǒng)性能,不利于小型的mcu系統(tǒng)的開(kāi)發(fā)。

    5、本專(zhuān)利技術(shù)需要解決的技術(shù)問(wèn)題是:如何提高日志文本存儲(chǔ)的效率,避免影響mcu系統(tǒng)性能和實(shí)時(shí)性,以及提高flash的壽命。


    技術(shù)實(shí)現(xiàn)思路

    1、本專(zhuān)利技術(shù)的主要目的是提供一種基于nor?flash的日志文本滾動(dòng)存儲(chǔ)方法,通過(guò)設(shè)置索引區(qū)和日志文本區(qū),能夠通過(guò)索引信息直接讀取日志文本,提高日志文本的存儲(chǔ)以及讀取效率。而且通過(guò)此方式,減少flash的擦除次數(shù),提高flash的壽命。同時(shí),還提供了一種基于nor?flash的日志文本滾動(dòng)存儲(chǔ)裝置。

    2、為實(shí)現(xiàn)上述目的,本申請(qǐng)所采用的技術(shù)方案:

    3、一種基于nor?flash的日志文本滾動(dòng)存儲(chǔ)方法,包括以下步驟:

    4、步驟1:對(duì)日志文本存儲(chǔ)區(qū)域劃分為索引區(qū)和日志文本區(qū);所述索引區(qū)和日志文本區(qū)分別包含多個(gè)扇區(qū);所述索引區(qū)用于存儲(chǔ)日志文本的索引信息以便能夠找到日志文本所在位置;所述日志文本區(qū)用于存儲(chǔ)日志文本;所述日志文本設(shè)有起始位置和結(jié)束位置;

    5、步驟2:判斷日志文本區(qū)中結(jié)束位置所在扇區(qū)的剩余空間是否滿(mǎn)足寫(xiě)入日志文本;若滿(mǎn)足,則從上一次的結(jié)束位置的下一位置開(kāi)始寫(xiě)入日志文本;

    6、若不滿(mǎn)足,則進(jìn)行步驟3;

    7、步驟3:判斷結(jié)束位置所在扇區(qū)的下一扇區(qū)是否為日志文本的起始位置所在扇區(qū);若不是;則進(jìn)行步驟4;若是,則進(jìn)行步驟5;

    8、步驟4:擦除結(jié)束位置所在扇區(qū)的下一扇區(qū),從上一次的結(jié)束位置的下一位置開(kāi)始寫(xiě)入日志文本,更新索引信息,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū);

    9、步驟5:更新起始位置和索引信息,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū);擦除結(jié)束位置所在扇區(qū)的下一扇區(qū),從上一次的結(jié)束位置的下一位置開(kāi)始寫(xiě)入日志文本,更新索引信息,把更新后的索引信息再次滾動(dòng)寫(xiě)入到索引區(qū)。

    10、優(yōu)選地,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū)具體為:所述索引區(qū)的多個(gè)扇區(qū)均包括多個(gè)用于儲(chǔ)存索引信息的位置,更新后的索引信息寫(xiě)入到儲(chǔ)存原索引信息位置的下一位置,并清除原本的索引信息。

    11、優(yōu)選地,當(dāng)索引信息滾動(dòng)寫(xiě)入完一個(gè)扇區(qū)的位置后,擦除下一扇區(qū),寫(xiě)入更新后的索引信息并清除原本的索引信息;當(dāng)索引信息寫(xiě)入到索引區(qū)的最后一個(gè)扇區(qū)后,則下次返回第一個(gè)扇區(qū)重新循環(huán)進(jìn)行寫(xiě)入。

    12、優(yōu)選地,所述索引信息包括日志文本的起始位置所在的扇區(qū)號(hào)、結(jié)束位置所在的扇區(qū)號(hào)、flag、crc校驗(yàn);所述flag的值設(shè)置為不全為0x00或0xff。

    13、優(yōu)選地,所述起始位置的計(jì)算方式為起始位置所在的扇區(qū)號(hào)*扇區(qū)大小;所述結(jié)束位置的計(jì)算方式為結(jié)束位置所在的扇區(qū)號(hào)*扇區(qū)大小+x;

    14、其中x為最后一個(gè)非0xff值的數(shù)據(jù)所在位置。

    15、優(yōu)選地,若為首次使用或重啟時(shí),則需要進(jìn)行初始化,具體為:遍歷索引區(qū)的索引信息;若索引信息通過(guò)crc校驗(yàn),則記錄該索引信息,用于下一次寫(xiě)入日志文本;若沒(méi)有索引信息通過(guò)crc校驗(yàn),則擦除索引區(qū)及日志文本區(qū),并在索引區(qū)的第一個(gè)扇區(qū)寫(xiě)入初始化索引信息。

    16、優(yōu)選地,所述索引區(qū)的扇區(qū)數(shù)量*扇區(qū)大小/16大于等于日志文本區(qū)的扇區(qū)數(shù)量*2。

    17、優(yōu)選地,當(dāng)需要讀取日志文本時(shí),具體操作為:若結(jié)束位置位于起始位置后,則讀取開(kāi)始位置到結(jié)束位置之間的內(nèi)容;若結(jié)束位置位于起始位置前,則需要分兩次讀取,先讀取起始位置到日志文本區(qū)結(jié)尾位置的內(nèi)容,再讀取日志文本區(qū)開(kāi)始位置到日志結(jié)束位置的內(nèi)容。

    18、其中,

    19、nor?flash為:一種閃存類(lèi)型,可以用于存儲(chǔ)程序代碼、固件、操作系統(tǒng)以及其他數(shù)據(jù)。具有較低的存儲(chǔ)密度和較高的成本,但具有較快的讀取速度、較低的讀取延遲和較好的隨機(jī)訪(fǎng)問(wèn)性能。

    20、crc校驗(yàn)為:即循環(huán)冗余校驗(yàn),是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包或電腦文件等數(shù)據(jù)產(chǎn)生簡(jiǎn)短固定位數(shù)校核碼的快速算法,主要用來(lái)檢測(cè)或校核數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯(cuò)誤。crc利用除法及余數(shù)的原理,實(shí)現(xiàn)錯(cuò)誤偵測(cè)的功能,具有原理清晰、實(shí)現(xiàn)簡(jiǎn)單等優(yōu)點(diǎn)。

    21、同時(shí),還提供了一種基于nor?flash的日志文本滾動(dòng)存儲(chǔ)裝置,包括如下單元:

    22、分區(qū)單元:用于對(duì)日志文本存儲(chǔ)區(qū)域劃分為索引區(qū)和日志文本區(qū);

    23、第一判斷單元:判斷日志文本區(qū)中結(jié)束位置所在扇區(qū)的剩余空間是否滿(mǎn)足寫(xiě)入日志文本;若滿(mǎn)足,則從上一次的結(jié)束位置的下一位置開(kāi)始寫(xiě)入日志文本;

    24、第二判斷單元:判斷結(jié)束位置所在扇區(qū)的下一扇區(qū)是否為日志文本起始位置所在扇區(qū);

    25、第一寫(xiě)入單元:擦除結(jié)束位置所在扇區(qū)的下一扇區(qū),從上一次的結(jié)束位置的下一位置開(kāi)始寫(xiě)入日志文本,更新索引信息,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū);

    26、第二寫(xiě)入單元:更新起始位置和索引信息,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū);擦除結(jié)束位置所在扇區(qū)的下一扇區(qū),從上一次的結(jié)束位置的下一位置開(kāi)始寫(xiě)入日志文本,更新索引信息,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū)。

    27、優(yōu)選地,還包括讀取單元;所述讀取單元本文檔來(lái)自技高網(wǎng)...

    【技術(shù)保護(hù)點(diǎn)】

    1.一種基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,包括以下步驟:

    2.根據(jù)權(quán)利要求1所述的基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū)具體為:所述索引區(qū)的多個(gè)扇區(qū)均包括多個(gè)用于儲(chǔ)存索引信息的位置,更新后的索引信息寫(xiě)入到儲(chǔ)存原索引信息位置的下一位置,并清除原本的索引信息。

    3.根據(jù)權(quán)利要求2所述的基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,當(dāng)索引信息滾動(dòng)寫(xiě)入完一個(gè)扇區(qū)的位置后,擦除下一扇區(qū),寫(xiě)入更新后的索引信息并清除原本的索引信息;當(dāng)索引信息寫(xiě)入到索引區(qū)的最后一個(gè)扇區(qū)后,則下次返回第一個(gè)扇區(qū)重新循環(huán)進(jìn)行寫(xiě)入。

    4.根據(jù)權(quán)利要求1所述的基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,所述索引信息包括日志文本的起始位置所在的扇區(qū)號(hào)、結(jié)束位置所在的扇區(qū)號(hào)、FLAG、CRC校驗(yàn);所述FLAG的值設(shè)置為不全為0x00或0xFF。

    5.根據(jù)權(quán)利要求4所述的基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,所述起始位置的計(jì)算方式為起始位置所在的扇區(qū)號(hào)*扇區(qū)大小;所述結(jié)束位置的計(jì)算方式為結(jié)束位置所在的扇區(qū)號(hào)*扇區(qū)大小+X;

    6.根據(jù)權(quán)利要求1所述的基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,若為首次使用或重啟時(shí),則需要進(jìn)行初始化,具體為:遍歷索引區(qū)的索引信息;若索引信息通過(guò)CRC校驗(yàn),則記錄該索引信息,用于下一次寫(xiě)入日志文本;若沒(méi)有索引信息通過(guò)CRC校驗(yàn),則擦除索引區(qū)及日志文本區(qū),并在索引區(qū)的第一個(gè)扇區(qū)寫(xiě)入初始化索引信息。

    7.根據(jù)權(quán)利要求1所述的基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,所述索引區(qū)的扇區(qū)數(shù)量*扇區(qū)大小/16大于等于日志文本區(qū)的扇區(qū)數(shù)量*2。

    8.根據(jù)權(quán)利要求1所述的基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,當(dāng)需要讀取日志文本時(shí),具體操作為:若結(jié)束位置位于起始位置后,則讀取開(kāi)始位置到結(jié)束位置之間的內(nèi)容;若結(jié)束位置位于起始位置前,則需要分兩次讀取,先讀取起始位置到日志文本區(qū)結(jié)尾位置的內(nèi)容,再讀取日志文本區(qū)開(kāi)始位置到日志結(jié)束位置的內(nèi)容。

    9.一種基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)裝置,其特征在于,包括如下單元:

    10.根據(jù)權(quán)利要求9所述的一種基于NOR?Flash的日志文本滾動(dòng)存儲(chǔ)裝置,其特征在于,還包括讀取單元;所述讀取單元用于讀取日志文本。

    ...

    【技術(shù)特征摘要】

    1.一種基于nor?flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,包括以下步驟:

    2.根據(jù)權(quán)利要求1所述的基于nor?flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,把更新后的索引信息滾動(dòng)寫(xiě)入到索引區(qū)具體為:所述索引區(qū)的多個(gè)扇區(qū)均包括多個(gè)用于儲(chǔ)存索引信息的位置,更新后的索引信息寫(xiě)入到儲(chǔ)存原索引信息位置的下一位置,并清除原本的索引信息。

    3.根據(jù)權(quán)利要求2所述的基于nor?flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,當(dāng)索引信息滾動(dòng)寫(xiě)入完一個(gè)扇區(qū)的位置后,擦除下一扇區(qū),寫(xiě)入更新后的索引信息并清除原本的索引信息;當(dāng)索引信息寫(xiě)入到索引區(qū)的最后一個(gè)扇區(qū)后,則下次返回第一個(gè)扇區(qū)重新循環(huán)進(jìn)行寫(xiě)入。

    4.根據(jù)權(quán)利要求1所述的基于nor?flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,所述索引信息包括日志文本的起始位置所在的扇區(qū)號(hào)、結(jié)束位置所在的扇區(qū)號(hào)、flag、crc校驗(yàn);所述flag的值設(shè)置為不全為0x00或0xff。

    5.根據(jù)權(quán)利要求4所述的基于nor?flash的日志文本滾動(dòng)存儲(chǔ)方法,其特征在于,所述起始位置的計(jì)算方式為起始位置所在的扇區(qū)號(hào)*扇區(qū)大小;所述結(jié)束位置的計(jì)算方式為結(jié)束位置所在的扇區(qū)號(hào)*扇區(qū)大小+x;<...

    【專(zhuān)利技術(shù)屬性】
    技術(shù)研發(fā)人員:陳龍遠(yuǎn)陳小軍黃章良陶洋
    申請(qǐng)(專(zhuān)利權(quán))人:廣州魯邦通物聯(lián)網(wǎng)科技股份有限公司
    類(lèi)型:發(fā)明
    國(guó)別省市:

    網(wǎng)友詢(xún)問(wèn)留言 已有0條評(píng)論
    • 還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 潮喷失禁大喷水无码| 久久无码专区国产精品| 精品久久久久久无码专区不卡| 国产成年无码AV片在线韩国| 国产精品无码AV一区二区三区| 久久久国产精品无码一区二区三区| 国产午夜无码片在线观看| 久久久无码精品亚洲日韩蜜臀浪潮 | 亚洲爆乳无码专区www| 久久精品无码一区二区三区| 精品久久久无码人妻中文字幕豆芽| 中文字幕久久精品无码| 国产莉萝无码AV在线播放| 无码人妻精品一区二区三| 久久亚洲精品中文字幕无码| 亚洲av无码成人精品区| 无码日本电影一区二区网站| 久久久久无码精品亚洲日韩| 国产午夜无码专区喷水| 在线观看免费无码专区| 成人免费无码大片A毛片抽搐色欲| 日韩人妻无码一区二区三区久久 | 亚洲AV成人无码天堂| 国产aⅴ无码专区亚洲av| 亚洲av无码专区国产乱码在线观看| 老司机无码精品A| 青青爽无码视频在线观看| 久久亚洲精品无码aⅴ大香| 亚洲AV日韩AV永久无码免下载 | 亚洲av永久无码精品漫画| 国产综合无码一区二区辣椒 | 2020无码专区人妻系列日韩| 精品亚洲AV无码一区二区三区 | 少妇无码一区二区三区| 国产午夜无码精品免费看动漫| 亚洲国产精品成人精品无码区 | 蜜桃无码AV一区二区| 精品亚洲AV无码一区二区三区 | 亚洲av永久中文无码精品综合 | 无码专区狠狠躁躁天天躁| 久久精品亚洲中文字幕无码网站|