《痞子衡嵌入式半月刊》 第 31 期

痞子衡嵌入式半月刊: 第 31 期

這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發布一期。

本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。

上期回顧《痞子衡嵌入式半月刊: 第 30 期》

嘮兩句

上周三是立夏,歷史上的今天:1940年5月16日,在棗宜會戰中中華民國軍事將領張自忠於宜城陣亡,被追授為上將,成為二戰中盟軍陣亡的最高軍銜的將領。

本期共收錄 4個項目,2個工具,希望對你有幫助!

項目類

1、CuTest – 最簡潔的C語言單元測試框架

CuTest是一款微小的C語言單元測試框,是我迄今為止見到的最簡潔的測試框架之一,只有2個文件,CuTest.c和CuTest.h,全部程式碼加起來不到一千行。麻雀雖小,五臟俱全,測試的構建、測試的管理、測試語句,都全部包含在內。

項目主頁: //cutest.sourceforge.net/

2、LuatOS – 支援lua語言開發的物聯網RTOS

合宙LuatOS是運行在嵌入式硬體的實時作業系統,用戶編寫lua程式碼就可完成各種功能,只佔用很少的記憶體和Flash空間。

項目主頁: //gitee.com/openLuat/LuatOS

特點包括:

- 基於Lua 5.3.x
- 低記憶體需求, 最低32kb, 96kb flash空間
- 硬體抽象層兼容M3/arm/risc-v/win32等
- 可測試,可模擬(qemu)
- 在線升級
- 可裁剪,可擴展

3、EFSM – 一個基於事件驅動的有限狀態機

EFSM(event finite state machine,事件驅動型有限狀態機),是一個基於事件驅動的有限狀態機,主要應用於嵌入式設備的軟體系統中。

項目主頁: //gitee.com/simpost/EFSM

EFSM的設計原則是:簡單!EFSM的使用者只需要關心:

- 當事件到來時,通過EFSM取得對應事件的處理方法;
- 當特定事件到來,或者條件滿足時,調用狀態切換方法進行狀態切換。

由於EFSM的巧妙設計,避免了命名衝突的問題,你可以在一個程式中定義多個狀態機;要是能對不同狀態進行組織,還可以做出層次狀態機的結構。EFSM總共分為兩個部分:

- EFSM核心:由uthash.h、efsm.h和efsm_conf.h三個文件組成;他們構成了事件驅動型狀態機的核心;使用的時候只需要包含efsm.h即可;
- EFSM擴展:在EFSM核心的基礎上,增加efsmt.h和efsmt.c兩個文件,這兩個文件會根據具體的狀態機創建狀態機執行緒,用於驅動狀態機運轉;使用的時候只需要包含efsmt.h即可;

4、WowCube – 具有24個螢幕的魔方遊戲機

WowCube是2021年CES創新獎的獲獎者。這款立方體形狀的設備由父子團隊Savva和Ilya Osipov發明,兩側各有4個彩色IPS螢幕–總共24個,還有8個微處理器和隱藏在內部的加速計。

項目主頁: //wowcube.com/

WowCube用戶可以沿著多個軸轉動從而不斷改變螢幕之間的排列方式。遊戲是通過旋轉和搖晃設備來實現。用戶無需點擊螢幕或按鍵。

工具類

1、愛科識 – 用於靜態程式碼掃描(SAST)的下一代源程式碼分析工具

愛科識是用於靜態程式碼分析(SAST)的下一代源程式碼分析工具。它使用先進的編譯 器分析技術來解析軟體程式上下文、數據流及控制流,以便檢測出程式碼里難以找出的缺陷。 愛科識能 輕鬆、快速地開發高品質程式碼、識別漏洞,並保證程式碼符合公司與行業,以及軟體的合規性標準。

軟體主頁: //xcalibyte.com.cn/aikeshi-jingtai-fenxi-gongju/

愛科識精準、直觀,可在軟體開發生命周期(SDLC)的早期識別程式碼缺陷。您可以在開發周期中進行「左移」測試,從而極大地提高工作效率。此外,愛科識還可通過源程式碼分析來識別導致記憶體損壞,核心轉儲,緩衝區溢出,非法操作,空指針等的缺陷。

2、ImHex – 一款功能強大的開源十六進位編輯器

ImHex是一款功能強大的十六進位編輯器,該工具專為逆向工程分析師、編程開發人員以及那些想好好保護自己眼睛的安全人員所設計。

軟體主頁: //github.com/WerWolv/ImHex

功能包括:

- 功能豐富的十六進位數據介面:位元組修復、修復管理、位元組拷貝(位元組、十六進位字元串、C、C++、C#、Rust、Python、Java和JavaScript數組、HTML自包含div等)。
- 字元串、十六進位搜索。
- 自定義C++類模式語言,支援對文件內容進行解析和高亮顯示。
- 數據導入:支援Base64文件、IPS和IPS32。
- 數據導出:IPS和IPS32。
- 數據檢查器允許解釋多種不同類型的數據(小端和大端)。
- 大文件支援和快速有效的載入。
- 文件哈希支援:CRC16、CRC32、MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384和SHA-512。
- 反彙編程式支援多種不同的體系結構:ARM32 (ARM, Thumb, Cortex-M, AArch32)、ARM64、MIPS (MIPS32, MIPS64, MIPS32R6, Micro)、x86 (16-bit, 32-bit, 64-bit)、PowerPC (32-bit, 64-bit)、SPARC、IBM SystemZ、xCORE、M68K、TMS320C64X、M680X和Ethereum。
- 支援書籤、區域突出顯示和注釋。
- 數據分析:提供文件解析器和MIME類型資料庫、位元組分布圖、熵圖、最高平均熵、加密/壓縮文件檢測。
- 其他實用工具:ASCII表、正則表達式替換、數學表達式計算器、十六進位顏色選擇器。

歡迎訂閱

文章會同時發布到我的 部落格園主頁CSDN主頁知乎主頁微信公眾號 平台上。

微信搜索”痞子衡嵌入式“或者掃描下面二維碼,就可以在手機上第一時間看了哦。