这个项目的目的主要是帮助自己更进一步的了解C/C++的底层原理,以输出的方式来学习,还可以帮组更多人。这个项目主要以llvm/compiler-rt, libgcc, musl,lllvm/libc为目标实现,实现他们的nano版本或者说Micro版本。最终实现一个能够被常见的编译器如:(gcc,llvm)所使用的C运行时库。
- 教学目标:
- 了解c运行库在各种情况下承担的作用,如何更好适配编译器,RTOS。
- 对于c库里面各种函数实现的原理和优化方法,当然这个是前人栽树了,我没有很好的能力想到这些优化方法。
- 涉及的c标准知识点,IEEE754原理我都整理好文档。
- 拓展各类工具的使用如(qemu,llvm工具链)
- 项目目标: 嵌入式c库的版本有很多,现在大家用的最多的就是newlib,picolibc这两种,我期望的是最终MicroCRT能达到他们的高度,被认可和接受。当然这个目标可能是很久之后的事情。
- 核心卖点:
- 代码结构清晰,更加合理清晰的使用宏
- 更加清晰的函数文档
- 更加合理的模块化设计让库模块化
- 将软实现和libc,libm库能够更好的配合起来
- 更好的函数测试,争取更好的函数覆盖率
- 简单介绍编译器和c库如何配合起来使用
- 介绍MicroCRT的框架设计理念
- 实现大部分c函数的codesize版本
- 适配Zephyr操作系统
- 实现常用的数学函数和辅助函数
- 实现各种运行时函数