痞子衡嵌入式半月刊: 第 113 期
這裡分享嵌入式領域有用有趣的專案/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時釋出一期。
本期刊是開源專案(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。
上期回顧 :《痞子衡嵌入式半月刊: 第 112 期》
嘮兩句
歷史上的今天:1981年12月8日,中國自行設計製造的大型噴氣式客機“運-10”試飛成功。
本期共 4 個專案,希望對你有幫助!
專案類
1、USB-SERIAL-L - 設計先進的USB轉串列埠的開源硬體
USB-SERIAL-L 是一個 USB 轉串列埠的開源硬體,其比大多數板更先進,不僅具有 Tx/Rx 引腳,還具有 CTS/RTS 引腳,支援高達 3 Mbps 的速度,以及從 0.65V 到 5.5V 的可調電壓,以滿足各種板的需求。目前版本 1.1,KiCAD 格式和 PDF 格式原理圖和硬體設計檔案、外殼的 3D 檔案和文件完全開源。
- 專案地址:https://github.com/OLIMEX/USB-SERIAL-L/
2、JesFs - 專門為小型低功耗裝置設計的檔案系統
JesFs(Jo's Embedded Serial File System)是一款專為資源受限的嵌入式系統設計的輕量級序列 NOR 快閃記憶體檔案系統。它具備極小的記憶體佔用、強大的安全性以及優異的效能,完美適用於各種物聯網應用場景,例如資料採集、事件記錄和韌體更新等。
- 專案地址:https://github.com/joembedded/JesFs
JesFS 的一個基本特性是:可以把嵌入式系統的檔案透過網際網路自動地映象儲存到伺服器,伺服器因此具有嵌入式檔案系統的一個實時更新的副本。這個特性也可以用在分鐘級獲取資料的場景,但是為了降低功耗,一般不會頻繁透過網際網路對比更新伺服器副本(通常幾小時一次)。 即使傳輸了新檔案、遠端升級了韌體,只要有需要,JesFS 就可以透過特殊標誌位(時間戳和 CRC32 雜湊校驗)很容易地從伺服器上找回檔案。
3、Spiffs - 專門為嵌入式裝置設計的輕量級檔案系統
Spiffs (SPI Flash File System) 是一個專門為嵌入式目標上的 SPI NOR 快閃記憶體裝置設計的輕量級檔案系統。它針對小型嵌入式裝置的特點進行了最佳化,特別是在記憶體資源有限的情況下表現出色。Spiffs 的設計目標是:在最小化 RAM 使用量的同時,提供 POSIX 風格的 API 介面,方便開發者使用。
- 專案地址:https://github.com/pellepl/spiffs
Spiffs 的主要功能包括:
• 極低的RAM佔用: Spiffs的設計理念是最大限度地減少RAM的消耗,它使用靜態大小的RAM緩衝區,與檔案數量無關,非常適合記憶體資源緊張的嵌入式系統。
• 類POSIX API: Spiffs提供了一套與POSIX標準相容的API介面,包括open、close、read、write、seek、stat等常用函式,方便開發者快速上手和進行移植。
• 跨平臺相容性: 理論上,Spiffs不僅可以執行在SPI快閃記憶體上,也可以執行在微處理器的其他嵌入式快閃記憶體上,具有良好的平臺相容性。
• 多配置支援: 在同一個目標裝置上,甚至在同一個SPI快閃記憶體裝置上,可以執行多個Spiffs配置,靈活地管理不同的資料儲存空間。
• 靜態磨損均衡: Spiffs內建了靜態磨損均衡演算法,可以有效地延長快閃記憶體的使用壽命。
• 檔案系統一致性檢查: Spiffs具備內建的檔案系統一致性檢查機制,確保資料的完整性和可靠性。
• 高可配置性: Spiffs提供了豐富的配置選項,可以根據實際需求進行定製。
4、modm - 精簡高效的嵌入式庫生成工具
modm是一個用於構建定製 C++23 嵌入式庫的工具箱。它能夠生成啟動程式碼、硬體抽象層 (HAL) 及其實現、通訊協議、外部裝置驅動程式和板級支援包 (BSP)。modm 的模組化和可定製化流程允許你根據自身需求進行微調,極大簡化嵌入式開發的複雜性。
- 專案地址:https://github.com/modm-io/modm
modm 的主要功能包括:
• 快速搭建專案骨架: 自動生成啟動程式碼、HAL、驅動程式等,減少重複性工作,加快開發速度。
• 最佳化資源利用: modm 致力於最小化程式碼大小和記憶體消耗,特別適合資源受限的微控制器。它在 HAL 中避免記憶體分配,並提供輕量級的庫,如 printf 實現和部分 libstdc++ 實現。
• 提高程式碼可移植性: 支援數千種來自 Microchip、STMicroelectronics 和 Raspberry Pi 的 AVR 和 ARM Cortex-M 微控制器,並與多種構建系統相容,例如 SCons、CMake 和 Makefile。
• 簡化外設操作: 提供了豐富的跨平臺外設介面,包括 GPIO、中斷、I2C、SPI、UART、CAN、乙太網、ADC、DAC 等,幷包含許多常用感測器的驅動程式。
• 增強程式碼可靠性: 擁有數百個單元測試,並進行持續整合測試,確保程式碼質量和穩定性。整合了一些有用的第三方軟體,如 FreeRTOS、TinyUSB、FatFS 等。
• 高效的除錯和日誌系統: 提供基於 IOStream 和 printf 的除錯和日誌系統,方便開發和除錯過程。
• 先進的併發模型: 支援協作式無棧 protothreads 和可恢復函式,以及協作式有棧 fibers 和排程器,方便進行併發程式設計。
歡迎訂閱
文章會同時釋出到我的 部落格園主頁、CSDN主頁、知乎主頁、微信公眾號 平臺上。
微信搜尋"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。