51OS切换任务是否把R0~R7保存在各自任务私栈里

uCOS51移植心得_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
uCOS51移植心得
上传于||文档简介
&&u​C​O​S1​移​植​心​得
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩11页未读,继续阅读
你可能喜欢一直想巩固下操作系统的知识,但直接在PC机上写个操作系统可不是简单的活,正好现在学51于是就拿他来开刀,不过在这上面写实在是太憋屈了!
有些同学可能觉得你这也能叫操作系统?然后开始扣操作系统的定义了。我想有这时间还不如把功能帮我加进去,我会很感激的,也不会忘了你的功劳的。其实最早的操作系统比我这个还要原始得多呢,只能完成单任务调度而已。我也想过要添加内存管理,外设管理,进程通信,等。但是仔细想想51就那么大内存需要管理么;不同的应用有不同的外设,没办法统一;8个进程之间互相通信,用户自己完成也不会有问题。于是我就将主要问题放在处理器调度,及定时器0的管理上。后期如果需要还会继续添加更多功能,比如中断管理,更丰富的系统调用。但我的原则是系统的效率不得低于80%,并方便用户的使用。
源代码在:/ghking1/Garfield-51OS&
演示视频在:/v_show/id_XODM2NDk3NDY0.html
使用手册:还没写好
实现功能:1.任务切换,每1ms切换一次任务,每秒切换1000次,每次切换消耗100个时钟周期左右,平均效率在90%左右。
&&&&&&&&&&&&&&&&&&& 2.系统调用,暂时只提供WAIT和WAKEUP系统调用来定时,最小单位是10ms。
&&&&&&&&&&&&&&&&&&& 3.可同时并行执行8个任务,其中包括3个快速任务和5个标准任务
&&&&&&&&&&&&&&&&&&& 4.更多特性敬请期待!
设计思路:
&&&&&&&&&&&&&&&&&& 这是RAM空间分布图,30H~37H保存每个任务的SP值,38H~3FH保存任务的状态,40H~47H做其他活。剩下空白的地方可以自由使用。
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& 任务切换的实现,用定时器零每1ms产生一次中断并运行_SEITCH_函数切换任务,切换时:
&&&&&&&&&&&&&&&&& 先保存当前寄存器环境:因为中断时PC值已保存到栈顶,所以只要将R0~R7,PSW, ACC,& B, DPL, DPH依次入栈即可,SP要保存到30H~37H相应的位置
&&&&&&&&&&&&&&&&& 选择下一个任务:根据38H~3FH的值判断下一个任务号
&&&&&&&&&&&&&& && 恢复到该任务现场:先恢复SP,然后依次弹出个寄存器值
&&&&&&&&&&&&& & & 用RETI切换到该任务:现在栈顶的值就是PC值了,RETI可以切换到该PC处继续运行
&&&&&&&&&&&&&&&& 系统调用WAIT和WAKEUP,每进行10次任务切换就将38H~3FH里的某些值减去一,代表过去了10ms。最小单位是10ms,而不是1ms(因为有8个任务,切换一圈也要8ms,那么1ms的精确度是永远无法达到的),也不是8ms(你要定1s该把值设成多少呢?5,4,3,2,1。。。算出来了吗?没有吧!)。
&&&&&&&&&&&&&&&& WAIT调用中如果把状态设成0FFH则表示休眠状态,暂停运行。
&&&&&&&&&&&&&& & WAKEUP调用可以唤醒休眠任务也可以唤醒延时任务,都是简单的把状态设为00H。
暂时就写到这吧,整体思路不难,但主要是细节,如何才能达到更高的效率,如何才能更节省空间,如何才能更方便使用,等等问题才是设计的关键。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2238次
排名:千里之外
原创:11篇
(1)(1)(1)(1)(1)(1)(5)(2)的硬件设计RTL8019AS&网卡驱动程序51TCP/IP&协议栈设计应用协..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
uCOS51残牡
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口ucos51移植心得,ucos iii 移植,stm32 ucos移植,ucos 移植,stm32移植ucos ii,ucos ..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
ucos51移植心得
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 stmfd sp r0 r7 的文章

 

随机推荐