
大家好,我是杂烩君。
之前给大家推荐过主流的嵌入式框架,但今天要分享的是那些藏在社区角落的宝藏工具。
这些组件可能没那么有名,但在特定场景下能发挥奇效!
MemFault

MemFault是一款专注于嵌入式系统的崩溃分析与调试工具,能实时检测内存泄漏和越界。它提供可视化内存地图,支持PC端仿真调试。
核心功能:
- 实时监控设备状态,捕获崩溃日志和内存转储。
- 提供远程诊断、OTA(空中下载)更新验证。
- 集成错误分类与根本原因分析(RCA)。
MemFault是嵌入式优先:支持在任何RTOS或操作系统(如Android或Linux)上运行的嵌入式系统和设备。
MemFault可以在任何设备上运行:从功能强大的SoC到功能最受限的MCU。
可应用于IoT 设备、智能硬件、工业物联网(IIoT),支持多平台(如 ESP32、STM32),降低现场故障排查成本。
GitHub:
Armadillo

Armadillo是一款轻量级代码混淆工具,支持C/C++代码混淆。它能有效防止逆向工程,保护知识产权。
GitHub:
混淆前后对比:
// 混淆前
int calculate(int a, int b) {
return a + b;
}
// 混淆后
int x32a9(int x1, int x2) {
int x4 = x1;
int x5 = x2;
return x4 + x5;
}
其可通过CMake脚本自动混淆,支持IAR/Keil等开发环境。应用于算法保护。
TscanCode

TscanCode是腾讯研发的静态代码扫描工具,最早的版本是基于 cppcheck 二次开发。之后又重新自研,不仅支持 C/C++,还支持 C#,Lua 语言,在发掘 C/C++ 空指针、越界、未初始化、C#空引用、Lua变量未初始化等比较有效。
TscanCode 主要能够发现的问题如下:
- 自动变量检查:返回自动变量(局部变量)指针;
- 越界检查:数组越界返回自动变量(局部变量)指针;
- 类检查:构造函数初始化;
- 内存泄露检查;
- 空指针检查;
- 废弃函数检查;
TscanCode 的 Github链接:
NanoGUI

NanoGUI是一款超轻量级图形库,支持单色LCD驱动。它代码量仅8KB,适合简单显示设备。
核心功能:
- 提供按钮、文本框、图表等控件,支持布局管理。
- 支持 2D/3D 可视化(如科学数据、仿真结果)。
- 跨平台(Windows/macOS/Linux)。
GitHub:
代码简洁,依赖少,适合资源受限的桌面应用。
QP/C
Quantum Platform for C(QP/C)是嵌入式系统领域的实时框架,由 Quantum Leaps 公司开发,基于状态机和事件驱动架构(EDA)。

官网:
核心优势:
- 支持分层状态机(HSM),简化复杂系统设计。
- 提供实时调度、事件队列和内存管理机制。
- 兼容 C 语言,可移植至多种微控制器(如 ARM Cortex-M)。

适用于汽车电子、医疗设备、工业控制等对实时性要求高的嵌入式系统。
AutoIt
AutoIt不是传统意义上的框架,而是一款自动化脚本工具。它能根据硬件配置自动生成初始化代码,支持STM32/ESP32等主流平台。 配合VirtualBox搭建虚拟开发环境,自动生成代码后直接编译测试。

核心功能:
- 模拟键盘、鼠标操作,支持窗口控制和文件管理。
- 提供 COM 对象交互、正则表达式和错误处理机制。
- 可生成独立 EXE 文件,无需额外运行环境。
官网:
应用于软件测试、安装程序自动化、重复性任务批量处理。语法简单(类似 BASIC),开源且社区活跃。
