Skip to content

1049010335/EmbeddedModules

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

自用的嵌入式软件模块仓库

主要是给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 模块配置工具

配置工具 tool.py

python tool.py -h
usage: 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

TODO

  • 用kconfig替代modules_conf.template.h
  • 为所有自己写的模块编写README

LICENSE

MIT (For self-written modules only)

About

个人嵌入式软件模块仓库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.2%
  • Python 0.4%
  • Assembly 0.3%
  • C++ 0.1%
  • CMake 0.0%
  • Makefile 0.0%