開篇分割線,上一篇我們聊了SFUD掛載flash設備的組件,說白了就是為了適配各種類型的flash用于讀寫、擦除操作,接下來我們來講一下fal分區,關于fal的概念很重要,實際上它有不一定非要基于RTOS實現裸機也一樣,那么fal到底是什么呢?
FAL (Flash Abstraction Layer) Flash 抽象層,是對 Flash 及基于 Flash 的分區進行管理、操作的抽象層,對上層統一了 Flash 及 分區操作的 API (框架圖如下所示):
想想windows系統中的ABCD盤,其實就是fal分區的結果,比如插入一個U盤以后會自動掛在為一個新的分區,當然如果沒有分過區它可能不識別或者提示為請先進行分區操作,在我們的rtos中它需要的操作就是fal_init();
當我們對于flash類型的設備(片內或片外)完成分區以后,就可以建立文件系統或者是flash數據庫,用于服務應用程序,下一篇我們就來講一下flashdb數據庫的應用(扯遠了繼續我們的fal大業)。
1. 接下來就進入實戰時基于studio創建fal分區:
2. 完成fal組件的添加后,嘗試編譯整個工程,編譯結果如下:
3. 編譯結果提示無法找到fal_cfg.h文件,這個文件是需要我們手動創建的,也就是所謂的分區表:
4.完成分區表的創建后,調用fal_init(),完成分區功能:
下載程序到板子里面,我么你可以看到綠色部分有SFUD初始化成功及FAL分區表創建完成的提示,我們可以在msh明令中調用fal操作對應的分區,本篇文章就到這里結束了,感謝閱讀。