ttlib 是一个侧重嵌入式软件的C语言库。了解更多请参考在线文档。
-
应用程序在不同嵌入式平台迁移的问题。
嵌入式硬件架构多,嵌入式
OS
也多,例如在ARM-Linux
上运行的程序很难迁移到M3-rtthread/uCos
上,然后在M3上正常运行的程序又很难运行到DSP-sys/bios
上等等。不同的产品往往跑在不同的硬件架构不同的OS
上面,这样使得一个公司的嵌入式软件产品维护难度大增。 -
嵌入式软件开发效率低的问题。
嵌入式程序员大多喜欢从头开始,行业也少有标准库。自己造轮子不仅仅效率低,往往是bug的源头,也是可维护性的敌人。
- 平台库主要是对系统调用进行一次封装,对上层应用屏蔽
OS
特性。计划支持Linux
、rt-thread
、sys/bios
。 - 线程/任务
- 信号量
- 事件
- 互斥
- 自旋锁
- socket
- file
- time
- timer等
- 流库主要实现统一
I/O
操作接口,不管是可见大小的file
流还是串口这样的纯流,提供阻塞与非阻塞操作方式。 - file流
- socket
- buffer
- 串口
- u口等
- ttlib库的其他模块也基于此进行动态内存操作,这样就算在裸机上也能跑ttlib库
- 大块内存分配
- 固定内存分配
- 内存池
- 提供哈希、链表、数组、队列、堆栈、最小最大堆等常用容器
- 迭代器支持
- 提供各种排序算法:冒泡排序、堆排序、快速排序、插入排序。
- 提供各种查找算法:线性遍历、二分法搜索。
- 提供各种遍历、删除、统计算法
- 实现base64/32编解码
- 实现crc32、md5等常用hash算法
- 实现debug输出、断言
- 实现日志模块
- 实现位操作相关接口,支持各种数据格式的解析,可以对8bits、16bits、32bits、64bits字段进行解析操作,并且同时支持大端、小端和本地端模式。
- 实现单例模块,可以对静态对象、实例对象进行快速的单例封装,实现全局线程安
- 等等