亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

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

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

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

EEPROM輕量級(jí)的簡(jiǎn)易類文件的數(shù)據(jù)讀寫庫(kù):EEPROMFS

STM32嵌入式開發(fā) ? 來(lái)源:STM32嵌入式開發(fā) ? 2024-11-15 16:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

雖然 EEPROM 相對(duì) Flash 讀寫速度更慢,但 EEPROM 一些獨(dú)有特性是 Flash 無(wú)法實(shí)現(xiàn)的,比如字節(jié)讀寫操作。

所以,EEPROM至今依然應(yīng)用在很多電子設(shè)備上,而且市場(chǎng)還不小。 這里就給大家分享一款EEPROM輕量級(jí)的簡(jiǎn)易類文件的數(shù)據(jù)讀寫庫(kù):EEPROMFS

1 關(guān)于EEPROMFS

EEPROMFS,基于EEPROM的簡(jiǎn)易類文件的數(shù)據(jù)讀寫庫(kù),方便做動(dòng)態(tài)功能增減時(shí)參數(shù)管理。 增減參數(shù)塊類似增減文件,不會(huì)對(duì)已有數(shù)據(jù)存儲(chǔ)帶來(lái)影響。EEPROM硬件資源充裕的情況下使用。 開源地址: https://gitee.com/wtau_zaozao/eepromfs

8424785e-9072-11ef-a511-92fbcf53809c.png

2 使用說(shuō)明和軟件架構(gòu) 開源庫(kù)使用說(shuō)明: 基于 Arm 處理器,EEPROM存儲(chǔ),比如24C256、24c512之類的相對(duì)較大一點(diǎn)容量的EEPROM存儲(chǔ)芯片。 軟件架構(gòu): EPPROM存儲(chǔ)區(qū)開頭存儲(chǔ)eepromfs管理相關(guān)信息,采用鏈表方式串聯(lián)每一個(gè)文件,每個(gè)文件建立的時(shí)候指定名稱和大小,新增加的文件自動(dòng)追加在鏈表末尾。

typedef struct deepromfs_s{
    eeprom_handle_t *handle;


    la_t startAddr1;
    efs_size_t size1;


    la_t startAddr2;
    efs_size_t size2;
}deepromfs_t;
static deepromfs_t deepromfs;
eepromfs_result_t deepromfs_init(eeprom_handle_t *handle,la_t startAddr,efs_size_t size)
{
    eepromfs_result_t eepromfs_result1;
    eepromfs_result_t eepromfs_result2;


    //初始化
    deepromfs.handle=handle;
    deepromfs.startAddr1=startAddr;
    deepromfs.size1=size/2;
    deepromfs.startAddr2=deepromfs.startAddr1+deepromfs.size1;
    deepromfs.size2=size/2;




    eepromfs_result1=eepromfs_init(deepromfs.handle,deepromfs.startAddr1);
    eepromfs_result2=eepromfs_init(deepromfs.handle,deepromfs.startAddr2);
    if((eepromfs_result1==EFR_OK)&&(eepromfs_result2==EFR_OK))
    {
        return EFR_OK;
    }
    else if((eepromfs_result1==EFR_OK)&&(eepromfs_result2!=EFR_OK))
    {
        //拷貝分區(qū)1數(shù)據(jù)到分區(qū)2
        eepromfs_copy(deepromfs.handle,deepromfs.startAddr2,deepromfs.startAddr1,deepromfs.size1);
        return EFR_OK;
    }
    else if((eepromfs_result1!=EFR_OK)&&(eepromfs_result2==EFR_OK))
    {
        //拷貝分區(qū)2數(shù)據(jù)到分區(qū)1
        eepromfs_copy(deepromfs.handle,deepromfs.startAddr1,deepromfs.startAddr2,deepromfs.size2);
        return EFR_OK;
    }
    else if((eepromfs_result1==EFR_CRC_INFO_ERR)&&(eepromfs_result2==EFR_CRC_INFO_ERR))
    {
        return EFR_CRC_INFO_ERR;
    }
    return EFR_ERR;
}
eepromfs_result_t deepromfs_format_quick(void)
{
    eepromfs_result_t eepromfs_result;


    eepromfs_result=eepromfs_init(deepromfs.handle,deepromfs.startAddr1);
    if(eepromfs_result!=EFR_OK)
    {
        return eepromfs_result;
    }


    if(eepromfs_format_quick()!=EFR_OK)
    {
        return eepromfs_result;
    }


    eepromfs_result=eepromfs_init(deepromfs.handle,deepromfs.startAddr2);
    if(eepromfs_result!=EFR_OK)
    {
        return eepromfs_result;
    }


    eepromfs_result=eepromfs_format_quick();
    if(eepromfs_result!=EFR_OK)
    {
        return eepromfs_result;
    }


    return EFR_OK;
}
提供各類格式化、讀、寫、刪除的函數(shù)接口,方便用戶直接調(diào)用:
eepromfs_result_t eepromfs_init(eeprom_handle_t *handle,la_t startAddr);
eepromfs_result_t eepromfs_format_quick(void);//格式化不改變大小
eepromfs_result_t eepromfs_format_full(la_t startAddr,efs_size_t size);//格式化并重新指定大小


eepromfs_result_t eepromfs_new(file_handle_t *fh,const char* filename,efs_size_t fileSize);
eepromfs_result_t eepromfs_open(file_handle_t *fh,const char* filename);
eepromfs_result_t eepromfs_close(file_handle_t* fh);
eepromfs_result_t eepromfs_write(file_handle_t* fh, const fdata_t* data, efs_size_t size);
eepromfs_result_t eepromfs_offsetWrite(file_handle_t* fh,la_t offSet,const fdata_t* data, efs_size_t size);
eepromfs_result_t eepromfs_read(file_handle_t* fh, fdata_t* buf,efs_size_t bufLen,efs_size_t *pFilesize);
eepromfs_result_t eepromfs_delete(const char* filename);
eepromfs_result_t eepromfs_copy(eeprom_handle_t *handle,la_t destAddr,la_t srcAddr,efs_size_t size);

總體而言,這個(gè)庫(kù)相對(duì)比較輕量級(jí),普通ARM 單片機(jī)運(yùn)行完全沒(méi)有壓力,具體源碼,可以參考:

https://gitee.com/wtau_zaozao/eepromfs

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7256

    瀏覽量

    91832
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4531

    瀏覽量

    87440
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1086

    瀏覽量

    83732

原文標(biāo)題:EEPROM簡(jiǎn)易文件數(shù)據(jù)讀寫庫(kù)

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于Openharmony輕量級(jí)操作系統(tǒng)的分布式數(shù)據(jù)管理開發(fā)案例

    實(shí)驗(yàn)內(nèi)容本例程演示如何在小凌派-RK2206開發(fā)板上使用OpenHarmony輕量級(jí)操作系統(tǒng)進(jìn)行KvStore(即分布式數(shù)據(jù)管理)數(shù)據(jù)讀寫。例程:(1)創(chuàng)建兩個(gè)線程,一個(gè)負(fù)責(zé)寫入KvS
    的頭像 發(fā)表于 08-07 08:23 ?1725次閱讀
    基于Openharmony<b class='flag-5'>輕量級(jí)</b>操作系統(tǒng)的分布式<b class='flag-5'>數(shù)據(jù)</b>管理開發(fā)案例

    輕量級(jí)的ui框架如何去制作

    原創(chuàng)分享:自制輕量級(jí)單片機(jī)UI框架框架元素用戶接口代碼開源平時(shí)??碿sdn,但是從來(lái)沒(méi)有自己寫過(guò)。正好這幾天需要用單片機(jī)做一個(gè)簡(jiǎn)易的ui界面,于是自己寫了一個(gè)輕量級(jí)的ui框架。發(fā)個(gè)csdn分享給大家
    發(fā)表于 07-14 07:39

    木棉花:輕量級(jí)偏好數(shù)據(jù)庫(kù)學(xué)習(xí)筆記--沈泳鑫

    全量數(shù)據(jù)將會(huì)被加載在內(nèi)存中的,使得訪問(wèn)速度更快,存取效率更高。如果對(duì)數(shù)據(jù)持久化,數(shù)據(jù)最終會(huì)落盤到文本文件中,建議在開發(fā)過(guò)程中減少落盤頻率,即減少對(duì)持久化
    發(fā)表于 09-04 14:30

    基于輕量級(jí)偏好數(shù)據(jù)庫(kù),實(shí)現(xiàn)存儲(chǔ)在本地應(yīng)用數(shù)據(jù)的訪問(wèn)及操作

    (filename);說(shuō)明輕量級(jí)偏好數(shù)據(jù)庫(kù)支持數(shù)據(jù)庫(kù)文件的創(chuàng)建、移動(dòng),數(shù)據(jù)的查詢、插入、刪除,以及支持注冊(cè)觀察者來(lái)觀察數(shù)據(jù)是否發(fā)生變化。詳細(xì)
    發(fā)表于 10-09 14:43

    一種超輕量級(jí)的flashKV數(shù)據(jù)存儲(chǔ)方案分享

    tinyFlash一種超輕量級(jí)的flash KV數(shù)據(jù)存儲(chǔ)方案Github 地址:https://github.com/ospanic/tinyFlash設(shè)計(jì)原理本方案采用兩個(gè)扇區(qū)輪流使用的方法存儲(chǔ)
    發(fā)表于 12-20 06:08

    深度剖析OpenHarmony輕量級(jí)數(shù)據(jù)存儲(chǔ)

    一、輕量級(jí)數(shù)據(jù)存儲(chǔ)的版本openharmony的輕量級(jí)數(shù)據(jù)存儲(chǔ)現(xiàn)有兩個(gè)版本,但是harmonyOS的官網(wǎng)上只有一個(gè)輕量級(jí)數(shù)據(jù)存儲(chǔ)。二、應(yīng)用目錄的獲取數(shù)據(jù)存儲(chǔ)需要獲取到應(yīng)用的存放目錄,便
    發(fā)表于 03-31 14:45

    輕量級(jí)的SDN數(shù)據(jù)包轉(zhuǎn)發(fā)驗(yàn)證方案

    輕量級(jí)的SDN數(shù)據(jù)包轉(zhuǎn)發(fā)驗(yàn)證方案
    發(fā)表于 06-08 11:29 ?10次下載

    用于openharmony的輕量級(jí)、簡(jiǎn)單的結(jié)構(gòu)化NoSQL數(shù)據(jù)庫(kù)

    用于openharmony的輕量級(jí)、簡(jiǎn)單的結(jié)構(gòu)化 NoSQL 數(shù)據(jù)庫(kù)。 下載 依賴項(xiàng){ 實(shí)現(xiàn)“io.openharmony.tpc.thirdlib:ohos-NoSql:1.0.0” } 將數(shù)據(jù)
    發(fā)表于 04-13 10:05 ?2次下載

    TinyDB輕量級(jí)數(shù)據(jù)庫(kù)有哪些特點(diǎn)呢

    TinyDB 是一個(gè)純 Python 編寫的輕量級(jí)數(shù)據(jù)庫(kù),一共只有1800行代碼,沒(méi)有外部依賴項(xiàng)。
    的頭像 發(fā)表于 10-28 14:07 ?1962次閱讀

    PSoC NeoPixel Easy輕量級(jí)庫(kù)

    電子發(fā)燒友網(wǎng)站提供《PSoC NeoPixel Easy輕量級(jí)庫(kù).zip》資料免費(fèi)下載
    發(fā)表于 11-17 09:48 ?0次下載
    PSoC NeoPixel Easy<b class='flag-5'>輕量級(jí)</b><b class='flag-5'>庫(kù)</b>

    一個(gè)純Python編寫的輕量級(jí)數(shù)據(jù)庫(kù)

    TinyDB 是一個(gè)純 Python 編寫的輕量級(jí)數(shù)據(jù)庫(kù),一共只有1800行代碼,沒(méi)有外部依賴項(xiàng)。
    的頭像 發(fā)表于 02-24 10:32 ?1234次閱讀

    輕量級(jí)數(shù)據(jù)庫(kù)有哪些

    輕量級(jí)數(shù)據(jù)庫(kù)有哪些 隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)等新一代信息技術(shù)的廣泛應(yīng)用,數(shù)據(jù)庫(kù)系統(tǒng)也變得越來(lái)越重要。人們對(duì)于數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的可靠性、安全性和性能等要求也越來(lái)越高。與傳統(tǒng)的關(guān)系型
    的頭像 發(fā)表于 08-28 16:41 ?6624次閱讀

    TinyDB :一個(gè)純Python編寫的輕量級(jí)數(shù)據(jù)庫(kù)

    TinyDB 是一個(gè)純 Python 編寫的輕量級(jí)數(shù)據(jù)庫(kù),一共只有1800行代碼,沒(méi)有外部依賴項(xiàng)。 TinyDB的目標(biāo)是降低小型 Python 應(yīng)用程序使用數(shù)據(jù)庫(kù)的難度,對(duì)于一些簡(jiǎn)單程序而言與其用
    的頭像 發(fā)表于 10-21 10:22 ?1378次閱讀

    輕量級(jí)數(shù)據(jù)庫(kù)有哪些類型

    輕量級(jí)數(shù)據(jù)庫(kù)是指具有小巧、靈活、高效的特點(diǎn),適用于小規(guī)模項(xiàng)目和嵌入式設(shè)備的數(shù)據(jù)庫(kù)管理系統(tǒng)。下面是對(duì)輕量級(jí)數(shù)據(jù)庫(kù)類型的詳細(xì)介紹,包括關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型
    的頭像 發(fā)表于 12-20 11:29 ?1782次閱讀

    鴻蒙語(yǔ)言基礎(chǔ)庫(kù):ohos.data.storage 輕量級(jí)存儲(chǔ)

    輕量級(jí)存儲(chǔ)為應(yīng)用提供key-value鍵值型的文件數(shù)據(jù)處理能力,支持應(yīng)用對(duì)數(shù)據(jù)進(jìn)行輕量級(jí)存儲(chǔ)及查詢。數(shù)據(jù)存儲(chǔ)形式為鍵值對(duì),鍵的類型為字符串型
    的頭像 發(fā)表于 07-15 18:21 ?1364次閱讀