Skip to content

kaishaoshao/MicroCRT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MicroCRT

介绍

这个项目的目的主要是帮助自己更进一步的了解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操作系统
  • 实现常用的数学函数和辅助函数
  • 实现各种运行时函数

About

This is a c runtime library containing libc, libm, libgloss, soft-float, mainly for educational purposes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages