Stone
|
187b4d7a21
|
如果有挂起的切换,则不再切换。否则切换时需要保存的栈会出错。
解决不停创建、销毁线程时,内存暴涨不消的问题。这个问题估计跟没法完全释放线程有关
|
2014-09-19 03:28:16 +00:00 |
Stone
|
6e0727217f
|
重构系统、时间、线程三者的关系,Sleep优先使用线程级睡眠
|
2014-09-18 16:33:14 +00:00 |
Stone
|
cce81bf91c
|
优化建立就绪队列的操作,提升性能
|
2014-09-18 15:28:25 +00:00 |
Stone
|
fe933042c6
|
每个线程结束时执行该方法,销毁线程。
测试通过,成功销毁Led线程
|
2014-09-18 09:24:11 +00:00 |
Stone
|
315fa99f8b
|
StackSize保存完整的栈大小,包括用户部分和STK部分
|
2014-09-18 09:01:25 +00:00 |
Stone
|
33192897fe
|
增加线程栈溢出检测
|
2014-09-18 04:50:29 +00:00 |
Stone
|
5eff87f132
|
使用调度入口函数,测试通过。
小灯闪烁例程通过。
Idle例程出现异常
|
2014-09-17 21:04:25 +00:00 |
Stone
|
844cf441f5
|
当前线程栈的指针。需要保存线程栈,所以需要指针
测试通过
|
2014-09-17 19:45:31 +00:00 |
Stone
|
537ab2d480
|
Thread::Sleep/Suspend/Resume测试通过,挂起指定时间后可以恢复
|
2014-09-17 19:15:41 +00:00 |
Stone
|
e3fdeb1009
|
删除无用的代码注释,测试通过
|
2014-09-17 18:09:37 +00:00 |
Stone
|
3a8bbe0d0b
|
重新整理PendSV_Handler实现,更好性能更好逻辑。
使用模版列表重构Thread链表实现
测试通过,单一小灯线程闪烁
|
2014-09-17 16:53:51 +00:00 |
Stone
|
da0381de95
|
Thread增加日志输出,恢复使用4字节ID
|
2014-09-17 13:45:30 +00:00 |
Stone
|
71608df485
|
注释Thread.ID,它导致了对齐问题,堆栈溢出到隔壁。
每次时间片调度时,支持Sleep睡眠处理
|
2014-09-17 12:18:48 +00:00 |
Stone
|
ffe948b038
|
增加基于线程调度的睡眠支持
|
2014-09-17 06:51:39 +00:00 |
Stone
|
7ea0d4b135
|
线程调度小灯闪烁成功,代码还需要进一步巩固
|
2014-09-16 19:42:57 +00:00 |
Stone
|
b8ef6a8fd2
|
无法用纯C/C++实现整个中断,最主要的问题是它会编译生成压栈操作,使得函数内的栈操作出错
|
2014-09-16 19:30:58 +00:00 |
Stone
|
e800e0d27f
|
已经可以主动调度任务,但是在时间片到来时无法正确调度。怀疑跟编译警告里面的2字节对齐有关
|
2014-09-16 19:22:06 +00:00 |
Stone
|
4698b4481f
|
抢占式任务调度,使用系统滴答作为时间分片提供源
|
2014-09-16 17:14:12 +00:00 |
Stone
|
cb9a152edf
|
很多RTOS在这里设置PSP为0,然后这个函数最后是一个死循环。
其实,PSP为0以后,这个函数就无法正常退出了,我们把它设置为MSP,确保函数正常退出,外部死循环
|
2014-09-16 14:22:16 +00:00 |
Stone
|
5c239c4c51
|
|
2014-09-15 05:44:30 +00:00 |
Stone
|
0f5cd80398
|
通过PendSV_Handler实现任务切换,在线程栈的处理上还有问题
|
2014-09-14 12:32:34 +00:00 |
Stone
|
a1c93b4a64
|
编译通过,未完成
|
2014-09-12 16:22:58 +00:00 |
Stone
|
26f51abc65
|
增加线程封装,基于优先级的时间片抢占式任务调度
编译未通过,诡异的错误
|
2014-09-10 19:34:24 +00:00 |