在51上实现多任务,任务切换是难点

2020-01-30 13:59发布

我是仿真的,是C语言和汇编结合的,
主要思想就是时间片,我10ms 切换一次
最蛋疼就是切换任务了,我比较笨,我是用一段RAM来保存 程序现场的。把ACC PSW R0-R7  地址都保存在RAM中,一个任务就是13个字节,这样开销,还有就是任务
切换想不到好的办法,求思想,那位能说说如何实现任务切换,。
我加如汇编的原因是编译器编译的时候生成的代码不确定,所以我直接就手动人为控制了。我现在就是如果我纯C来写,我完不成,必须C和ASM结合。
任务切换不是很懂,对这个有点兴趣的讨论下吧。

/RAM  ID addr16 PSW ACC R0-R7  ID  addr16 PSW ACC R0-R7 /
上面就是RAM中的两个任务的示意图。我这个开销太大了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
learner123
1楼-- · 2020-01-30 14:49
 精彩回答 2  元偷偷看……
unifax001
2楼-- · 2020-01-30 15:08
搞操作系统的话还是换个年龄小点的芯片吧,51不方便
rookies
3楼-- · 2020-01-30 19:02
unifax001 发表于 2013-3-20 08:49
搞操作系统的话还是换个年龄小点的芯片吧,51不方便

RAM太小 估计上4个以上任务就差不多了!
jetli
4楼-- · 2020-01-31 01:00
rookies 发表于 2013-3-20 11:07
RAM太小 估计上4个以上任务就差不多了!

stc89c58rd+  6/12T  有1k ram
stc89c58ad   6/12T  有4k ram

stc15f2kxx/4kxx   1T 有 2k/4k ram

够了吧?
x2816960
5楼-- · 2020-01-31 01:04
就上4个任务先看看效果,以后再改进
bbssilverkey
6楼-- · 2020-01-31 06:06
 精彩回答 2  元偷偷看……

一周热门 更多>