痞子衡嵌入式半月刊:第 31 期
這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。
本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。
上期回顧 :《痞子衡嵌入式半月刊:第 30 期》
嘮兩句
上周三是立夏,歷史上的今天:1940年5月16日,在棗宜會戰(zhàn)中中華民國軍事將領張自忠于宜城陣亡,被追授為上將,成為二戰(zhàn)中盟軍陣亡的###高軍銜的將領。
本期共收錄 4個項目,2個工具,希望對你有幫助!
項目類
1、CuTest - ###簡潔的C語言單元測試框架
CuTest是一款微小的C語言單元測試框,是我迄今為止見到的###簡潔的測試框架之一,只有2個文件,CuTest.c和CuTest.h,全部代碼加起來不到一千行。麻雀雖小,五臟俱全,測試的構建、測試的管理、測試語句,都全部包含在內。
項目主頁: http://cutest.sourceforge.net/
2、LuatOS - 支持lua語言開發(fā)的物聯(lián)網RTOS
合宙LuatOS是運行在嵌入式硬件的實時操作系統(tǒng),用戶編寫lua代碼就可完成各種功能,只占用很少的內存和Flash空間。
項目主頁: https://gitee.com/openLuat/LuatOS
特點包括:
- 基于Lua 5.3.x - 低內存需求, ###低32kb, 96kb flash空間 - 硬件抽象層兼容M3/arm/risc-v/win32等 - 可測試,可模擬(qemu) - 在線升級 - 可裁剪,可擴展
3、EFSM - 一個基于事件驅動的有限狀態(tài)機
EFSM(event finite state machine,事件驅動型有限狀態(tài)機),是一個基于事件驅動的有限狀態(tài)機,主要應用于嵌入式設備的軟件系統(tǒng)中。
項目主頁: https://gitee.com/simpost/EFSM
EFSM的設計原則是:簡單!EFSM的使用者只需要關心:
- 當事件到來時,通過EFSM取得對應事件的處理方法; - 當特定事件到來,或者條件滿足時,調用狀態(tài)切換方法進行狀態(tài)切換。
由于EFSM的巧妙設計,避免了命名沖突的問題,你可以在一個程序中定義多個狀態(tài)機;要是能對不同狀態(tài)進行組織,還可以做出層次狀態(tài)機的結構。EFSM總共分為兩個部分:
- EFSM核心:由utb.h、efsm.h和efsm_conf.h三個文件組成;他們構成了事件驅動型狀態(tài)機的核心;使用的時候只需要包含efsm.h即可; - EFSM擴展:在EFSM核心的基礎上,增加efsmt.h和efsmt.c兩個文件,這兩個文件會根據(jù)具體的狀態(tài)機創(chuàng)建狀態(tài)機線程,用于驅動狀態(tài)機運轉;使用的時候只需要包含efsmt.h即可;
4、WowCube - 具有24個屏幕的魔方游戲機
WowCube是2021年CES創(chuàng)新獎的獲獎者。這款立方體形狀的設備由父子團隊Savva和Ilya Osipov發(fā)明,兩側各有4個彩色IPS屏幕--總共24個,還有8個微處理器和隱藏在內部的加速計。
項目主頁: https://wowcube.com/
WowCube用戶可以沿著多個軸轉動從而不斷改變屏幕之間的排列方式。游戲是通過旋轉和搖晃設備來實現(xiàn)。用戶無需點擊屏幕或按鍵。
工具類
1、愛科識 - 用于靜態(tài)代碼掃描(SAST)的下一代源代碼分析工具
愛科識是用于靜態(tài)代碼分析(SAST)的下一代源代碼分析工具。它使用先進的編譯 器分析技術來解析軟件程序上下文、數(shù)據(jù)流及控制流,以便檢測出代碼里難以找出的缺陷。愛科識能 輕松、快速地開發(fā)高質量代碼、識別漏洞,并保證代碼符合公司與行業(yè),以及軟件的合規(guī)性標準。
軟件主頁: https://xcalibyte.com.cn/aikeshi-jingtai-fenxi-gongju/
愛科識精準、直觀,可在軟件開發(fā)生命周期(SDLC)的早期識別代碼缺陷。您可以在開發(fā)周期中進行“左移”測試,從而極大地提高工作效率。此外,愛科識還可通過源代碼分析來識別導致內存損壞,核心轉儲,緩沖區(qū)溢出,非法操作,空指針等的缺陷。
2、ImHex - 一款功能強大的開源十六進制編輯器
ImHex是一款功能強大的十六進制編輯器,該工具專為逆向工程分析師、編程開發(fā)人員以及那些想好好保護自己眼睛的安全人員所設計。
軟件主頁: https://github.com/WerWolv/ImHex
功能包括:
- 功能豐富的十六進制數(shù)據(jù)界面:字節(jié)修復、修復管理、字節(jié)拷貝(字節(jié)、十六進制字符串、C、C++、C#、Rust、Python、Java和JavaScript數(shù)組、HTML自包含div等)。 - 字符串、十六進制搜索。 - 自定義C++類模式語言,支持對文件內容進行解析和高亮顯示。 - 數(shù)據(jù)導入:支持Base64文件、IPS和IPS32。 - 數(shù)據(jù)導出:IPS和IPS32。 - 數(shù)據(jù)檢查器允許解釋多種不同類型的數(shù)據(jù)(小端和大端)。 - 大文件支持和快速有效的加載。 - 文件哈希支持: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。 - 支持書簽、區(qū)域突出顯示和注釋。 - 數(shù)據(jù)分析:提供文件解析器和MIME類型數(shù)據(jù)庫、字節(jié)分布圖、熵圖、###高平均熵、加密/壓縮文件檢測。 - 其他實用工具:ASCII表、正則表達式替換、數(shù)學表達式計算器、十六進制顏色選擇器。