主要是给stm32项目用的,对hal库有一定的依赖
标*的为自己写的模块,其他修改自开源库,原repo已列出
| Algorithm | 算法 | repo | 备注 |
|---|---|---|---|
| cmsis_dsp | CMSIS-DSP(Src) | link | 源码形式 |
| libcrc | CRC计算库 | link | |
| pid | 通用PID控制器 | * | |
| quaternion | 四元数和IMU姿态估计 | link | 未测试 |
| tiny_regex | 简易正则解析器 | link | 无捕获组 |
| Communication | 通信 | repo | 备注 |
|---|---|---|---|
| CherryUSB | Cherry USB | link | |
| lwpkt | 轻量级数据包 | link | |
| minmea | GPS NMEA解析器 | link | |
| modbus | Modbus协议 | link | |
| TinyFrame | 另一个轻量级数据包 | link |
| DataStruct | 数据结构 | repo | 备注 |
|---|---|---|---|
| btree | B树 | link | |
| cstring | C字符串 | link | |
| hashmap | 哈希表 | link | |
| json | JSON解析 | link | |
| lfbb | 二分循环缓冲区 | link | |
| lfifo | 通用环形缓冲区 | * | 比lwrb更高效 |
| lwrb | 轻量级环形缓冲区 | link | |
| pqueue | 优先队列 | link | |
| sds | 简单动态字符串 | link | |
| udict | 通用字典 | * | 基于ulist |
| ulist | 通用内存连续列表 | * |
| Debug | 调试 | repo | 备注 |
|---|---|---|---|
| benchmark | CoreMark基准测试 | link | |
| cm_backtrace | hardfault堆栈回溯 | link | |
| RTT | Segger-RTT 调试模块 | link | |
| log | 轻量级宏函数日志 | * | 需要uart_pack |
| minctest | 轻量级单元测试 | link |
| Graphics | 图形 | repo | 备注 |
|---|---|---|---|
| easy_ui | 单色屏UI库 | link | 大幅魔改 |
| hagl | HAL图形库 | link | |
| lvgl | LittlevGL图形库 | link | |
| lvgl_gaussian_blur | LVGL高斯模糊效果 | link | cpp->c |
| lvgl-pm | LVGL页面管理器 | link | |
| ugui | uGUI图形库 | link | |
| virtual_lcd | 虚拟LCD | * | 包含上位机 |
| NN | 神经网络 | repo | 备注 |
|---|---|---|---|
| genann | 简单前馈神经网络 | link |
| Peripheral | 外设 | repo | 备注 |
|---|---|---|---|
| board_i2c | 板级I2C包装层 | * | |
| board_led | 板级LED包装层 | * | |
| i2c_salve | LL库I2C从机 | * | |
| key | 通用按键 | * | 支持多种事件 |
| ll_i2c | LL库I2C | link | |
| motor | 直流电机闭环驱动 | * | |
| stepper | 步进电机驱动 | * | |
| sw_i2c | 软件I2C | link | |
| sw_spi | 软件SPI | N/A | |
| uart_pack | 串口操作功能包 | * | 包含CDC |
| ws2812_spi | WS2812灯带DMA-SPI驱动 | * |
| Storage | 存储 | repo | 备注 |
|---|---|---|---|
| littlefs | LittleFS | link | |
| MiniFlashDB | 轻量级Flash数据库 | link | 魔改 |
| System | 系统 | repo | 备注 |
|---|---|---|---|
| dalloc | 动态指针管理内存分配器 | link | |
| heap_4 | FreeRTOS堆4 | link | |
| klite | 基础实时内核 | link | 轻量高性能,推荐 |
| lwmem | 轻量级内存管理 | link | 性能远不如heap4 |
| rtthread_nano | RT-Thread Nano | link | |
| s_task | 精简的协程实现 | link | 需要实现栈切换 |
| scheduler | 多功能任务调度器 | * | 内有使用说明 |
| scheduler_lite | 轻量级任务调度器 | * |
| Utility | 工具 | repo | 备注 |
|---|---|---|---|
| cot_menu | 轻量级菜单框架 | link | 抽象菜单 |
| embedded_cli | 嵌入式命令行 | link | 魔改 |
| lwprintf | 轻量级无缓冲区printf | link | |
| perf_counter | PerfCounter性能统计/时基库 | link | 必备品 |
| ryu | 浮点数转字符串 | link | |
| term_table | 动态终端表格工具 | * | 仅debug使用 |
| xv | 类JavaScript的字符串解析器 | link | |
| incbin.h | 二进制文件嵌入 | link | |
| macro.h | 通用宏 | * |
| 根目录文件 | 功能 |
|---|---|
| modules.h | 模块统一头文件 |
| modules_conf.template.h | 模块统一配置文件模板 (deprecated) |
| tool.py | 模块配置工具 |
python tool.py -husage: tool.py [-m] [-n] [-g] [-k KCONFIG] [-c CONFIG] [-d HEADERDIR]
optional arguments:
-m, --menuconfig Run menuconfig
-n, --newmodule Create a new module
-g, --generate Generate header file without menuconfig
-k KCONFIG, --kconfig KCONFIG
Specify the kconfig file, default is Kconfig
-c CONFIG, --config CONFIG
Specify the menuconfig output file, default is .config
-d HEADERDIR, --headerdir HEADERDIR
Specify the directory for the output header file, or use MOD_HEADER_DIR env variable使用Kconfig可视化配置并生成头文件:
python tool.py -m创建新模块:
python tool.py -n- 用kconfig替代modules_conf.template.h
- 为所有自己写的模块编写README
MIT (For self-written modules only)