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