溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在嵌入式產(chǎn)品中應(yīng)用鍵值存儲數(shù)據(jù)庫

發(fā)布時間:2021-12-02 14:31:14 來源:億速云 閱讀:145 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家介紹如何在嵌入式產(chǎn)品中應(yīng)用鍵值存儲數(shù)據(jù)庫,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

##1、背景

隨著互聯(lián)網(wǎng)快速發(fā)展及大數(shù)據(jù)時代的到來,NoSQL數(shù)據(jù)庫以其強大的可伸縮性、高效性、實時性等特點,而獲得十足的發(fā)展。鍵值(Key-Value)存儲數(shù)據(jù)庫就是NoSQL的一種,大名鼎鼎的Redis就是一款用C開發(fā)的開源鍵值對存儲數(shù)據(jù)庫。

與此同時又有越來越多的廠家加入了IoT產(chǎn)品、可穿戴設(shè)備、智能家居的嵌入式產(chǎn)品開發(fā)行列中來,數(shù)據(jù)的持久化存儲需求也就變得越來越多,選型一款伸縮性好、占用資源小、穩(wěn)定性高,并可以應(yīng)用于嵌入式產(chǎn)品的持久化存儲庫就顯得越來越重要。

##2、EasyFlash

EasyFlash是一款開源的輕量級嵌入式Flash存儲器庫,主要為MCU提供便捷、通用的上層應(yīng)用接口,它提供的主要功能有3種:Env(環(huán)境變量)、IAP(在線升級)以及Log(Flash存儲日志)。這里主要介紹可以讓Flash變?yōu)樾⌒玩I值存儲數(shù)據(jù)庫的Env功能。

##3、增刪改查

下圖為通過控制臺(終端)來調(diào)用環(huán)境變量的常用接口,演示了環(huán)境變量 "temp" 從創(chuàng)建到保存,再修改,最后刪除的過程。這些接口都支持被應(yīng)用層直接調(diào)用。 如何在嵌入式產(chǎn)品中應(yīng)用鍵值存儲數(shù)據(jù)庫

EasyFlash環(huán)境變量功能的API位于https://github.com/armink/EasyFlash/blob/master/docs/zh/api.md#12-環(huán)境變量 主要使用方法如下:

/* 創(chuàng)建Key名為temp的環(huán)境變量,并賦初值"123" */
ef_set_env("temp","123");
/* 修改環(huán)境變量temp的值為"456" */
ef_set_env("temp","456");
/* 讀取環(huán)境變量temp的值 */
char *temp = ef_get_env("temp");
/* 刪除環(huán)境變量temp */
ef_set_env("temp","");

##4、使用場景

目前筆者已應(yīng)用EasyFlash的產(chǎn)品,主要存儲以下內(nèi)容

  • 1、產(chǎn)品上電的運行參數(shù);

  • 2、運行記錄;

  • 3、用戶可編輯的參數(shù);

  • 4、軟件斷言及硬件異常等系統(tǒng)崩潰日志;

  • 5、在線升級時的Bootloader與APP之間的交互參數(shù);

  • 6、更多存儲內(nèi)容有待大家去挖掘……

##5、Demo

目前已移植硬件平臺有 stm32f10x與 stm32f4xx 系列的片內(nèi)Flash,并支持裸機及RT-Thread嵌入式操作系統(tǒng)。

關(guān)于如何在嵌入式產(chǎn)品中應(yīng)用鍵值存儲數(shù)據(jù)庫就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI