Commit Graph

22 Commits

Author SHA1 Message Date
nnhy c1544f64e1 整合List到Type,增加Array.FindIndex 2015-10-29 03:35:35 +00:00
nnhy d0b9ff5000 线程池部分完成,编译通过。考虑到维持多个线程在池里面会大量占用栈内存,不划算。因此暂停线程池开发 2014-10-19 04:35:45 +00:00
nnhy 8ef3af5a8a Sys.h默认不包含List.h 2014-10-06 16:06:08 +00:00
Stone 8fd39cf5d1 OnEnd以后加上死循环,避免指针满天飞
每个线程默认0x100栈空间太小了,加大
2014-09-29 15:33:49 +00:00
Stone 7b067ce7e4 进一步融合Sys和多线程调度,统一使用Sys.Start 2014-09-26 07:45:28 +00:00
Stone 044acd716f 如果用空闲线程Idle驱动系统定时Sys.Start,可能出现Sleep导致线程挂起,然后没有可用线程供调度。
为此专门增加独立的Main线程。
2014-09-19 20:17:57 +00:00
Stone 9846af80bd 完善多线程调度设计方法 2014-09-18 15:49:19 +00:00
Stone 510ce74ba2 编写SmartOS多线程调度模块的特性 2014-09-18 15:02:20 +00:00
Stone fe933042c6 每个线程结束时执行该方法,销毁线程。
测试通过,成功销毁Led线程
2014-09-18 09:24:11 +00:00
Stone 33192897fe 增加线程栈溢出检测 2014-09-18 04:50:29 +00:00
Stone 5eff87f132 使用调度入口函数,测试通过。
小灯闪烁例程通过。
Idle例程出现异常
2014-09-17 21:04:25 +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 5c239c4c51 2014-09-15 05:44:30 +00:00
Stone 0f5cd80398 通过PendSV_Handler实现任务切换,在线程栈的处理上还有问题 2014-09-14 12:32:34 +00:00
Stone 26f51abc65 增加线程封装,基于优先级的时间片抢占式任务调度
编译未通过,诡异的错误
2014-09-10 19:34:24 +00:00