隨著互聯網快速發展及大數據時代的到來,NoSQL數據庫以其強大的可伸縮性、高效性、實時性等特點,而獲得十足的發展。鍵值(Key-Value)存儲數據庫就是NoSQL的一種,大名鼎鼎的Redis就是一款用C開發的開源鍵值對存儲數據庫。
與此同時又有越來越多的廠家加入了IoT產品、可穿戴設備、智能家居的嵌入式產品開發行列中來,數據的持久化存儲需求也就變得越來越多,選型一款伸縮性好、占用資源小、穩定性高,并可以應用于嵌入式產品的持久化存儲庫就顯得越來越重要。
EasyFlash是一款開源的輕量級嵌入式Flash存儲器庫,主要為MCU提供便捷、通用的上層應用接口,它提供的主要功能有3種:Env(環境變量)、IAP(在線升級)以及Log(Flash存儲日志)。這里主要介紹可以讓Flash變為小型鍵值存儲數據庫的Env功能。
下圖為通過控制臺(終端)來調用環境變量的常用接口,演示了環境變量 “temp” 從創建到保存,再修改,后刪除的過程。這些接口都支持被應用層直接調用。 
EasyFlash環境變量功能的API位于https://github.com/armink/EasyFlash/blob/master/docs/zh/api.md#12-環境變量
主要使用方法如下:
/* 創建Key名為temp的環境變量,并賦初值"123" */flash_set_env("temp","123");/* 修改環境變量temp的值為"456" */flash_set_env("temp","456");/* 讀取環境變量temp的值 */char *temp = flash_get_env("temp");/* 刪除環境變量temp */flash_set_env("temp","");目前筆者已應用EasyFlash的產品,主要存儲以下內容
1、產品上電的運行參數;
2、運行記錄;
3、用戶可編輯的參數;
4、軟件斷言及硬件異常等系統崩潰日志;
5、在線升級時的Bootloader與APP之間的交互參數;
6、更多存儲內容有待大家去挖掘……
目前已移植硬件平臺有 stm32f10x與 stm32f4xx 系列的片內Flash,并支持裸機及RT-Thread嵌入式操作系統。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。