《痞子衡嵌入式半月刊》 第 17 期
阿新 • • 發佈:2020-10-09
# 痞子衡嵌入式半月刊: 第 17 期
![](http://henjay724.com/image/cnblogs/pzh_mcu_bi_weekly.PNG)
這裡分享嵌入式領域有用有趣的專案/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時釋出一期。
本期刊是開源專案(GitHub: [JayHeng/pzh-mcu-bi-weekly](https://github.com/JayHeng/pzh-mcu-bi-weekly)),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。
**上期回顧** :[《痞子衡嵌入式半月刊: 第 16 期》](https://www.cnblogs.com/henjay724/p/13712975.html)
## 嘮兩句
今天是寒露。寒露是一個反映氣候變化特徵的節氣,是涼爽向寒冷的轉折。
又是一年國慶中秋雙節同慶8天長假,鑑於國外疫情情況,今年國內各大旅遊勝地應該比往年要更加"熱鬧",痞子衡不喜歡湊熱鬧,因此在家宅了8天,沒有旅途奔波,倒是真正體驗了個最輕鬆的長假。
本期共收錄 4個專案,希望對你有幫助!
## 專案類
### 1、znFAT - 國產嵌入式FAT32檔案系統解決方案
znFAT是大神于振南維護的一套高效、完備、精簡且具有高可移植性的嵌入式FAT32檔案系統解決方案。
> 專案主頁: https://gitee.com/dbembed/znfat
該專案的特性有:
```text
- 與FAT32檔案系統高度相容,提供豐富檔案操作函式,可實現檔案與目錄建立、開啟、刪除,資料的讀取與寫入等功能。
- 可方便地移植到多種嵌入式CPU平臺上,如51、STM32、AVR、PIC、ColdFile、MSP430等。
- 佔用RAM與ROM資源極少,並可由使用者視目標平臺資源情況進行靈活配置,最小配置情況下,RAM的使用量約在800~900位元組,最大配置下約為1300位元組。
- 內建獨特資料讀寫加速演算法,以及多種工作模式,均可由使用者自行配置,以滿足不同的速度與功能需求。
- 創新性提出資料寫入的實時工作模式,可保證寫入到磁碟檔案中的資料安全。防止因惡劣工作環境、干擾或其它原因引起的目標平臺不可預見的宕機或故障,造成資料丟失(實時模式資料寫入速度不高,資料直接寫入物理扇區,而不在RAM中暫存,並對檔案資料進行實時維護)。
- 底層提供簡單的單扇區讀寫驅動介面以及可選的硬體多扇區讀、寫、擦除驅動介面。(在提供硬體多扇區讀、寫、擦除驅動的情況下,磁碟格式化與資料讀寫速度將有近2~4倍的提升,甚至更高。)
- 提供清晰而強大的功能模組裁剪功能,可極大程度減小最終生成的可執行檔案的體積,節省ROM資源。
- 提供資料讀取重定向功能,使讀到的資料無需緩衝暫存,直接流向應用目的。
```
znFAT作者還為該專案專門寫了一本書:
![](http://henjay724.com/image/biweekly/znFAT_book.PNG)
### 2、NorthFrame - 一個微控制器極簡圖形化狀態機框架
NorthFrame是基於非UML極簡理念的狀態機框架,配合NF_FsmDesigner圖形化開發工具,可無負擔替代傳統switch-case狀態機開發。
> 專案主頁: https://gitee.com/PISCES_X/NorthFrame
NorthFrame包含三個元件:
```text
NF_FSM : 極簡非UML狀態機框架
NF_FsmDesigner : 基於C# Winform開發的狀態機圖形化開發工具,可直接生成C程式碼
NF_Signal : 用於代替全域性變數的動態訊號機制
```
![](http://henjay724.com/image/biweekly/NorthFrame.PNG)
建立一個在VS2012環境中執行的判斷QE組合鍵的狀態機例程僅需如下三步:
```text
Step1 : 使用NF_FsmDesigner工具設計繪製狀態轉換圖,並儲存為XML檔案
Step2 : 點選生成程式碼,生成C語言程式碼
Step3 : 在main.c檔案中實現按鍵處理,併發送事件給狀態機
```
### 3、MonoGUI - 一個黑白圖形使用者介面系統
MonoGUI是針對電子詞典、高階計算器、電子手錶、標籤印表機、收款機、電子貨籤等 具有黑白螢幕的小電子裝置開發的專用GUI系統。本系統具有結構簡單、使用容易、內 存佔用小、單執行緒、處理器負擔輕等特點。雖然圖形能力僅有黑與白,但其支援完整的 中文顯示處理功能(GB18030中2位元組漢字,即舊GB13000標準),其Edit控制元件和中文輸 入法(包括九鍵輸入法)功能上達到Windows和Android的輸入法水平,且擴充套件容易。
> 專案主頁: https://gitee.com/liuxinouc/MonoGUI
MonoGUI使用純C++編寫,不依賴於第三方原始碼,便於移植和除錯。配套的工具軟體, 如圖片轉換器、對話方塊模板編輯器等,全部開源。設計資料完整,文件充實,也是一份 不可多得的研究資料。
![](http://henjay724.com/image/biweekly/MonoGUI.PNG)
### 4、OpenBLT - 功能資料比較全面的開源Bootloader
OpenBLT是一個開源引導載入程式,可以在任何微控制器上執行並使用任何型別的通訊介面來執行軟體更新,而無需專用的偵錯程式硬體。
> 專案主頁: https://github.com/feaser/openblt
![](http://henjay724.com/image/biweekly/OpenBLT.PNG)
該專案的特點有:
```text
- 使用者友好的PC下載程式。
- 完整的原始碼可用。
- 與STM32,XMC4,XCM1,Tricore,HCS12和其他基於ARM Cortex的微控制器一起使用。
- 易於移植到不同的微控制器。
- 支援常用的通訊介面,例如RS232,CAN,TCP / IP和USB。
- 支援從本地連線的儲存裝置(例如SD卡)進行軟體更新。
- 可擴充套件以支援額外的儲存器,例如序列EEPROM或外部快閃記憶體。
- 可擴充套件以支援使用者定義的後門條目。
```
### 歡迎訂閱
文章會同時釋出到我的 [部落格園主頁](https://www.cnblogs.com/henjay724/)、[CSDN主頁](https://blog.csdn.net/henjay724)、[知乎主頁](https://www.zhihu.com/people/henjay724)、[微信公眾號](http://weixin.sogou.com/weixin?type=1&query=痞子衡嵌入式) 平臺上。
微信搜尋"__痞子衡嵌入式__"或者掃描下面二維碼,就可以在手機上第一時間看了哦。
![](http://henjay724.com/image/github/pzhMcu_qrcode_258x2