这个仓库收集了一些自己对嵌入式c的思考以及第三方嵌入式相关的开源代码,以方便自己以及他人学习之用。对于第三方的模块,大多来自github。如果你点击链接后网页无法显示,为了让自己有更多的时间享受生活,你可能需要准备一把梯子。
仓库会不定时更新,为了避免迷路,最好点颗星或者Watch。
software timer - 自己写的软件定时器,与平台无关,能满足多样化需求。
simulation uart - 自己写的使用I/O模拟的TX串口模块。
queue - 自己写的常常用于各种项目的队列模块。
data structuring - 自己写的一种数据结构化的例子,特别对协议数据的结构化比较有帮助。
malloc - malloc的实现原理讲解。
write-a-hash-table - 用C写一个哈希表(键值对),是一分很好的参考资料。
IMU融合算法
-
Fusion - 用于IMU的传感器融合库,针对嵌入式系统进行了优化。
-
Adafruit_AHRS - 多种AHRS算法实现。
-
MPU9250 - Arduino上使用MPU9250传感器的AHRS算法实现。
book_cprogramming - C中的框架与插件设计,里面介绍了如何使用C编写更高质量的程序。
bare-metal-programming-guide - 裸机编程指南。为那些希望用GCC编译器和数据手册而无需其他任何东西就能开始为微控制器(单片机)编程的开发者而写。
lowlevelprogramming-university - 怎样称为底层程序员,该库更多针对的是Linux的学习。
GPS数据解析库
GUI
-
UGUI - 开源小型GUI,该仓库已经停止维护。虽然提供的功能很少,但做为学习GUI原理的却是一份相当不错的资料。
-
awtk - 周立功出品的开源GUI,看上去比较流行。该开源GUI目前是由《系统程序员成长计划》的作者维护。
-
lvgl - 在嵌入式中很流行的开源GUI库。
-
MiniGUI - 可用在嵌入式平台的开源GUI库。
-
GuiLite - 该GUI库虽然号称只有4000+行C++代码,但是也正因为小,所以很多功能需要自己去实现。
-
LingLongGUI - 适用于嵌入式平台的国产GUI。
-
u8g2 - 适合嵌入式平台的单色图形库。
文件系统
-
fatfs - 用于小型嵌入式系统的通用 FAT 文件系统模块,该文件系统能直接被windows支持。
-
littlefs - 为微控制器设计的小型文件系统。该文件系统比fatfs更流行,但遗憾的是windows不兼容这个文件系统。
RTOS
CLI(命令行界面)
-
lwshell - 用于嵌入式系统的轻量级、平台无关的命令行 shell。
-
xcmd - 为单片机提供一个能够快速搭建且占用资源很小的命令行工具。
-
nr_micro_shell - 针对资源较少的MCU编写的基本命令行工具。
USB协议栈
stm32-bootloader - 用于STM32微控制器的可定制的Bootloader。该项目可应用于利用外部SD卡对STM32进行IAP(in-application-programming)编程。
Regexp - 可以用在嵌入式平台的正则表达式库。
EasyLogger - 超轻量级的C/C++日志库,适合对资源敏感的软件项目。
FlashDB - 超轻量级的嵌入式数据库。
CmBacktrace - 针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。
SFUD - 串行 Flash 通用驱动库。
MultiButton - 小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键。
lwrb - 通用的 FIFO 环形缓冲区实现,最大亮点在于该FIFO可与DMA无缝结合。
lwmem - 适合嵌入式平台的动态内存分配库。
cAT - 在嵌入式设备中解析AT指令的库。
mOTA - 专为32位 MCU 开发的 OTA 组件。
btstack - 蓝牙开源协议栈,但并非完全开源。
360 安全规则集合 - 360出品的C/C++的编程规范与风格。
Linux kernel coding style - Linux内核代码风格。
Clean-Code-Notes - 整洁代码笔记。
Apollo-11 - 阿姆斯特朗登月时登月舱的AGC(制导计算机)系统,仅用来膜拜。
How-To-Ask-Questions-The-Smart-Way - 怎么问问题?与编程没有直接关系,但也很重要。
Software-Engineering-at-Google - 谷歌软件工程,可以观摩一下。
GitHubDaily - 定期推送各种语言的流行库。
document-style-guide - 阮一峰的中文文档写作指南。
科技爱好者周刊 - 阮一峰的科技分享。
Arduino - Arduino的代码库,你可以从中找到很多很好的适合嵌入式平台的C++库。
every-programmer-should-know - 每个程序员都应该知道的。里面汇总了很多重要、有趣的论文、书籍以及计算机中的重要概念。
我做系统架构的一些原则 - 左耳朵耗子的一篇文章。
贡献规则:
[仓库名称](仓库网址) - 简要的描述。