分享几个非常不错嵌入式开源项目,一定不要错过
大家好,我是知微!
经常有小伙伴后台私信我:
- 有没有好的开源项目推荐
- 怎么样才能提升自己的编程能力
那么这篇文章就推荐几个还不错的开源项目,感兴趣的小伙伴可以学习一下!
日志库EasyLogger
开发一个项目,如果没有日志的记录,当遇到问题需要分析并解决的时候,就会变得比较棘手。
EasyLogger是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目。
主要特性
- 支持用户自定义输出方式(例如:终端、文件、数据库、串口、485、Flash...);
- 日志内容可包含级别、时间戳、线程信息、进程信息等;
- 日志输出被设计为线程安全的方式,并支持 异步输出 及 缓冲输出 模式;
- 支持多种操作系统(RT-Thread、UCOS、Linux、Windows、Nuttx...),也支持裸机平台;
- 日志支持 RAW格式 ,支持 hexdump ;
- 支持按 标签 、 级别 、 关键词 进行动态过滤;
- 各级别日志支持不同颜色显示;
- 扩展性强,支持以插件形式扩展新功能。
多功能按键MultiButton
MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。
- 它支持以下的按键事件
PRESS_DOWN | 按键按下,每次按下都触发 |
---|---|
PRESS_UP | 按键弹起,每次松开都触发 |
PRESS_REPEAT | 重复按下触发,变量repeat计数连击次数 |
SINGLE_CLICK | 单击按键事件 |
DOUBLE_CLICK | 双击按键事件 |
LONG_PRESS_START | 达到长按时间阈值时触发一次 |
LONG_PRESS_HOLD | 长按期间一直触发 |
软件定时器模块MultiTimer
MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。
在使用的时候,下面几个事项,需要注意一下
-
定时器的时钟频率直接影响定时器的精确度,尽可能采用1ms/5ms/10ms这几个精度较高的tick;
-
定时器的回调函数内不应执行耗时操作,否则可能因占用过长的时间,导致其他定时器无法正常超时;
-
由于定时器的回调函数是在 MultiTimerYield 内执行的,需要注意栈空间的使用不能过大,否则可能会导致栈溢出。
轻量级系统框架mr-library
MR
框架是专为嵌入式系统设计的轻量级框架。充分考虑了嵌入式系统在资源和性能方面的需求。 通过提供标准化的设备管理接口,极大简化了嵌入式应用开发的难度,帮助开发者快速构建嵌入式应用程序
MR
提供 Kconfig
可视化配置工具,开发者无需深入了解源代码即可进行配置。
Kconfig
会根据配置文件自动生成配置选项界面。开发者可以通过简单的操作来选择需要启用的功能组件和设置相关参数。
暂时就分享这么多了,小伙伴们也不要心急贪多。要想真正学会一件事情,一定需要动手实践,赶紧行动起来吧!
📢欢迎各位 👍点赞 ⭐收藏 📝评论,如有错误请留言指正,非常感谢!