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

 

 

這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。

 

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

 

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

 

嘮兩句

上周三是立夏,歷史上的今天:1940年5月16日,在棗宜會(huì)戰(zhàn)中中華民國軍事將領(lǐng)張自忠于宜城陣亡,被追授為上將,成為二戰(zhàn)中盟軍陣亡的###高軍銜的將領(lǐng)。

 

本期共收錄 4個(gè)項(xiàng)目,2個(gè)工具,希望對(duì)你有幫助!

 

項(xiàng)目類

1、CuTest - ###簡潔的C語言單元測試框架

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

 

項(xiàng)目主頁: http://cutest.sourceforge.net/

 

2、LuatOS - 支持lua語言開發(fā)的物聯(lián)網(wǎng)RTOS

合宙LuatOS是運(yùn)行在嵌入式硬件的實(shí)時(shí)操作系統(tǒng),用戶編寫lua代碼就可完成各種功能,只占用很少的內(nèi)存和Flash空間。

 

項(xiàng)目主頁: https://gitee.com/openLuat/LuatOS

 

 

特點(diǎn)包括:

  - 基于Lua 5.3.x  - 低內(nèi)存需求, ###低32kb, 96kb flash空間  - 硬件抽象層兼容M3/arm/risc-v/win32等  - 可測試,可模擬(qemu)  - 在線升級(jí)  - 可裁剪,可擴(kuò)展  

 

3、EFSM - 一個(gè)基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)

EFSM(event finite state machine,事件驅(qū)動(dòng)型有限狀態(tài)機(jī)),是一個(gè)基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī),主要應(yīng)用于嵌入式設(shè)備的軟件系統(tǒng)中。

 

項(xiàng)目主頁: https://gitee.com/simpost/EFSM

 

EFSM的設(shè)計(jì)原則是:簡單!EFSM的使用者只需要關(guān)心:

 

  - 當(dāng)事件到來時(shí),通過EFSM取得對(duì)應(yīng)事件的處理方法;  - 當(dāng)特定事件到來,或者條件滿足時(shí),調(diào)用狀態(tài)切換方法進(jìn)行狀態(tài)切換。  

 

由于EFSM的巧妙設(shè)計(jì),避免了命名沖突的問題,你可以在一個(gè)程序中定義多個(gè)狀態(tài)機(jī);要是能對(duì)不同狀態(tài)進(jìn)行組織,還可以做出層次狀態(tài)機(jī)的結(jié)構(gòu)。EFSM總共分為兩個(gè)部分:

 

  - EFSM核心:由utb.h、efsm.h和efsm_conf.h三個(gè)文件組成;他們構(gòu)成了事件驅(qū)動(dòng)型狀態(tài)機(jī)的核心;使用的時(shí)候只需要包含efsm.h即可;  - EFSM擴(kuò)展:在EFSM核心的基礎(chǔ)上,增加efsmt.h和efsmt.c兩個(gè)文件,這兩個(gè)文件會(huì)根據(jù)具體的狀態(tài)機(jī)創(chuàng)建狀態(tài)機(jī)線程,用于驅(qū)動(dòng)狀態(tài)機(jī)運(yùn)轉(zhuǎn);使用的時(shí)候只需要包含efsmt.h即可;  

 

4、WowCube - 具有24個(gè)屏幕的魔方游戲機(jī)

WowCube是2021年CES創(chuàng)新獎(jiǎng)的獲獎(jiǎng)?wù)?。這款立方體形狀的設(shè)備由父子團(tuán)隊(duì)Savva和Ilya Osipov發(fā)明,兩側(cè)各有4個(gè)彩色I(xiàn)PS屏幕--總共24個(gè),還有8個(gè)微處理器和隱藏在內(nèi)部的加速計(jì)。

 

項(xiàng)目主頁: https://wowcube.com/

 

 

WowCube用戶可以沿著多個(gè)軸轉(zhuǎn)動(dòng)從而不斷改變屏幕之間的排列方式。游戲是通過旋轉(zhuǎn)和搖晃設(shè)備來實(shí)現(xiàn)。用戶無需點(diǎn)擊屏幕或按鍵。

 

工具類

1、愛科識(shí) - 用于靜態(tài)代碼掃描(SAST)的下一代源代碼分析工具

愛科識(shí)是用于靜態(tài)代碼分析(SAST)的下一代源代碼分析工具。它使用先進(jìn)的編譯 器分析技術(shù)來解析軟件程序上下文、數(shù)據(jù)流及控制流,以便檢測出代碼里難以找出的缺陷。愛科識(shí)能 輕松、快速地開發(fā)高質(zhì)量代碼、識(shí)別漏洞,并保證代碼符合公司與行業(yè),以及軟件的合規(guī)性標(biāo)準(zhǔn)。

 

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

 

 

愛科識(shí)精準(zhǔn)、直觀,可在軟件開發(fā)生命周期(SDLC)的早期識(shí)別代碼缺陷。您可以在開發(fā)周期中進(jìn)行“左移”測試,從而極大地提高工作效率。此外,愛科識(shí)還可通過源代碼分析來識(shí)別導(dǎo)致內(nèi)存損壞,核心轉(zhuǎn)儲(chǔ),緩沖區(qū)溢出,非法操作,空指針等的缺陷。

 

2、ImHex - 一款功能強(qiáng)大的開源十六進(jìn)制編輯器

ImHex是一款功能強(qiáng)大的十六進(jìn)制編輯器,該工具專為逆向工程分析師、編程開發(fā)人員以及那些想好好保護(hù)自己眼睛的安全人員所設(shè)計(jì)。

 

軟件主頁: https://github.com/WerWolv/ImHex

 

 

功能包括:

  - 功能豐富的十六進(jìn)制數(shù)據(jù)界面:字節(jié)修復(fù)、修復(fù)管理、字節(jié)拷貝(字節(jié)、十六進(jìn)制字符串、C、C++、C#、Rust、Python、Java和JavaScript數(shù)組、HTML自包含div等)。  - 字符串、十六進(jìn)制搜索。  - 自定義C++類模式語言,支持對(duì)文件內(nèi)容進(jìn)行解析和高亮顯示。  - 數(shù)據(jù)導(dǎo)入:支持Base64文件、IPS和IPS32。  - 數(shù)據(jù)導(dǎo)出:IPS和IPS32。  - 數(shù)據(jù)檢查器允許解釋多種不同類型的數(shù)據(jù)(小端和大端)。  - 大文件支持和快速有效的加載。  - 文件哈希支持:CRC16、CRC32、MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384和SHA-512。  - 反匯編程序支持多種不同的體系結(jié)構(gòu):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é)分布圖、熵圖、###高平均熵、加密/壓縮文件檢測。  - 其他實(shí)用工具:ASCII表、正則表達(dá)式替換、數(shù)學(xué)表達(dá)式計(jì)算器、十六進(jìn)制顏色選擇器。