|
TinyThread是一个多线程库,为Cortex-M0系统提供实时多线程支持。
目前这版支持 NUC100 和 M051 系列芯片,
Keil 和 IAR 编译器都能使用。
需要代码不妨移步这里下载,遵循 MIT 协议,开源不谈钱。
http://code.google.com/p/tinythread/
1. TinyThread特性
多线程
时间片轮转算法
抢占式多任务
Mutex能够克服优先级翻转
线程特性
定义线程数,无限制
活动线程数,无限制
用户优先级,无限制
线程堆栈检测,支持
上下文切换时间,
不支持线程sleep函数和堆栈检测时,< 300 CPU周期
支持线程sleep函数和堆栈检测时,< 400 CPU周期
时间
延迟,通过tt_sleep()支持
微秒级延迟,通过tt_usleep()支持
线程交互
信号量(Semaphore),无个数限制
锁(Mutex),无个数限制
递归锁(Recursive Mutex),无个数限制
条件变量(Condition),无个数限制
邮箱(Message),无个数限制
线程/中断交互
信号量/锁/递归锁/条件变量,均可用在中断里。
(有限制的支持,请参考Doc\TinyThread.doc)
2. 内存使用状况
一个任务需要的RAM
堆栈大小 + 68 Bytes(最大)
堆栈大小 + 28 Bytes(最小)
一个信号量需要的RAM, 8 Bytes
一个锁需要的RAM, 8 Bytes
一个递归锁需要的RAM, 16 Bytes
一个条件变量需要的RAM, 12 Bytes
一个邮箱消息使用RAM:40字节 + 自定义消息缓存
3. 文档资料
Doc\TinyThread.doc |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|