打印

中断隐身之精华--天然的协作式操作系统

[复制链接]
6510|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2009-2-10 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Keil C51红杏出墙记之精华-中断隐身,它用一个“中断隐身门”将

正常的中断服务程序分割为两个部分:

1.中断级的系统服务程序,如定时器的节拍中断处理程序。

2.低于中断级且高于用户级(如主循环)和其他任何中断的隐身程序。

当一个中断级的系统服务程序对应自己的多个中断隐身程序时,就可

自动构成天然的一主多从的协作式操作系统~~~

精华论述:

任何操作系统都有中断任务的能力,而任务可是低于当前中断优先级

或任何非中断程序。

操作系统都是固定间隔引发中断的,即节拍中断。一般在10mS左右。

若此节拍中断服务程序内有多个隐身程序时,并为其每个配发一个“隐身门”

当每次节拍中断时,打开某个隐身门后即可中断降级后运行某个隐身程序,

进入隐身程序时将其关闭!!!

每个隐身程序又由节拍程序配发一把“隐身锁”,开锁后隐身程序死循环自己

的任务处理程序,隐身程序不交权给节拍程序!!!即不返回。

故本次节拍中断出口"蒸发"了!!!

哈哈~~~这就是菜农“发明”的名词“中断隐身”一词的由来和出处!!!

那么节拍中断服务程序的RETI指令不是没法执行了???

不然,因为中断隐身函数_intjmp_()内实际是条lcall (reti)->task

哈哈~~~我们只需考虑隐身程序不交权时节拍中断的重入即堆栈平衡问题即可。

在Keil C51中,若ISR()若使用寄存器组即using X时,则中断程序只保护

PSW,ACC,B,DPH,DPL这几个寄存器。这是X应该>0,假设用户级为using 0

所以要将中断隐身升华为操作系统,则只需在进入隐身程序前恢复这几个

寄存器即可。

故裸奔式实时操作系统HotTask51原理要比普通的嵌入式实时操作系统原理简单

许多~~~

这就是菜农将HotTask51冠以“裸奔式”的由来~~~

也是不起名为HotOS51的由来和所在~~~

菜农HotPower@126.com  2009.2.10 作于雁塔菜地


相关帖子

来自 2楼
airwill| | 2009-2-11 12:26 | 只看该作者

窃以为:裸奔式实时操作系统是个"忽悠"!

首先非常感谢 hotpower 热情提高个人研究成果.
我的观点仅代表个人看法, 对技术的理解和探讨.

在我看来, 不管如何简单的操作系统, 最起码要解决这一个"资源"的管理和分配问题——这就是时间.对 CPU 时间进行分配是操作系统的第一首要任务.

为此, 就出现了任务, 和任务调度
为了准确进行任务调度, 就必须采用任务状态数据结构来记录任务的状态
为了能让剥夺了运行权的任务能再次恢复运行, 就必须保存任务的工作参数(寄存器和堆栈)

裸奔式实时操作系统基本是在讲述裸奔系统.而对于这些核心问题没有做足够的阐述.

另外, 关于定时节拍, 只要有时间响应要求的裸奔系统, 也都是必须的, 根本不是操作系统的特性.
中断服务,通常的裸奔系统也需要处理.这不是操作系统的特性.
其中描述的“隐身门”,“中断隐身”并不玄奥,我们可以将其看做是任务调度的一个手段而已.


使用特权

评论回复
板凳
s448| | 2009-2-10 20:47 | 只看该作者

沙发

哈哈,能坐上菜农家的沙发真是不容易啊

使用特权

评论回复
地板
救火车| | 2009-2-11 09:39 | 只看该作者

地板

呵呵。给菜农运点水

使用特权

评论回复
5
ayb_ice| | 2009-2-11 12:01 | 只看该作者

与MCU斗其乐无穷

使用特权

评论回复
6
hotpower|  楼主 | 2009-2-11 12:37 | 只看该作者

与MCU/ARM/DSP斗其乐无穷~~~不敢和领袖攀比~~~但可以雷翻一片~~~

使用特权

评论回复
7
程序匠人| | 2009-2-11 12:40 | 只看该作者

看来此帖有望成为辩论贴,匠人赶紧抢位子

使用特权

评论回复
8
hotpower|  楼主 | 2009-2-11 12:42 | 只看该作者

哈哈~~~地球人肯定不明白~~~

使用特权

评论回复
9
常来21ic| | 2009-2-11 13:23 | 只看该作者

与老板斗,其乐无穷

使用特权

评论回复
10
aceice| | 2009-2-11 15:25 | 只看该作者

确实不明白

使用特权

评论回复
11
温知新| | 2009-2-12 08:56 | 只看该作者

不明白..谁敢用?除了hotpower...

使用特权

评论回复
12
hottask51| | 2009-2-12 09:09 | 只看该作者

哈哈~~~这就是火星与地球之间以光年作为长度单位的原因之

使用特权

评论回复
13
Ice_River| | 2009-2-12 10:19 | 只看该作者

还是晕!期待

请农科家讲豆种--举粒说明!

使用特权

评论回复
14
Airwill| | 2009-2-12 14:28 | 只看该作者

严重晕倒!

是不是新年刚过?
现在的技术人员是越来越虚浮了? 科技发展到现在, 是不是一种倒退?

to:12楼

火星与地球之间真的以光年作为长度单位吗? 说这话有没有考证过?

下面给一点数据你看看
地球的公转轨道平均半径约 1.5 亿公里
火星的公转轨道平均半径约 2.3 亿公里
地球跟火星的最大距离也就 3.8 亿公里左右

而 1 光年是多少? 大约是9.5万亿公里

那么  3.8 亿公里 = 0.00004 光年!(是不是12楼喜欢用0.后面那么多零)?

忠告, 不要以为自己做了个什么, 就那么神, 好不好?!
做技术的, 要谦虚一点!

使用特权

评论回复
15
HotTask51| | 2009-2-12 14:29 | 只看该作者

哈哈~~~俺不是搞技术的~~~俺是老实巴交的庄稼汉~

使用特权

评论回复
16
HotTask51| | 2009-2-12 14:34 | 只看该作者

哈哈~~~菜农对14楼的天文学家失礼了~~~

原题决定是个天文学课题[/B]
 airwill 发表于 2009-1-25 22:49 技术交流 ←返回版面   举报该贴

给出日期、时间、经度、纬度,求出太阳的方位角和高度角。

也可以技术成一个立体几何题目, 后面就是简单的计算了.

不过有一点, 关于蒙气差(不记得是不是这么说的), 几何计算的角度, 还要再计算空气折射率的问题.
有个叫"日梭万年历"的软件会准确计算的, 去google 搜一下吧

最后, 再有一个问题, 关于阴晴雨雪的影响.

相关链接:https://bbs.21ic.com/club/bbs/list.asp?boardid=68&t=3227907

使用特权

评论回复
17
HotTask51| | 2009-2-12 14:46 | 只看该作者

哈哈~~~俺去和VxWorks专家探讨颠覆MCUOS理论可行性去了~

烦劳专家自考一下的多少分???

后头告诉俺~~~

三角及冗余校验密码技术JavaScript语言源程序

HotPower 猜谜乐园         当直角边a(>=3)为奇数时,另1直角边b为a平方砍半取整,斜边比b大1         HotPower 猜谜乐园         当直角边a(>=3)为偶数时,另1直角边b为a砍半平方减1,斜边比b大2

用户运行脚本语言版本号:  JScript Version5.6    作者:HotPower   2003.7.18

原码A      密码BC     角度  

直角边a    直角边b    斜  边c  

已知: a=  

回答: b=    c=  得分      偷看次数   

初值 输入 CRC

加权 输出 方式8位右移8位左移16位右移16位左移32位右移32位左移64位右移64位左移 

    用户访问日期:   2009年2月12日   星期四

 声明:本文的转载已经过HotPower授权,本页面为HotPower乐园的成员页面 

使用特权

评论回复
18
dai_weis| | 2009-2-12 22:40 | 只看该作者

好东西,支持

使用特权

评论回复
19
wjy1107| | 2009-2-13 09:35 | 只看该作者

讨论操作系统?天文学?没看懂,拿个板凳先。

使用特权

评论回复
20
machunshui| | 2009-2-13 11:05 | 只看该作者

不能称为实时

所谓实时要求,当前最高优先级任务具备运行条件,立即运行.

过程无非是:

任务1运行
---->等待资源
----->调度程序调度运行任务2或者IDLE任务
------>中断发生,运行中断服务程序使任务1要求的资源得到满足
----->中断服务程序在退出以前运行调度程序,发现任务1资源得到满足
----->如果任务1优先级别高于任务2,中断返回到任务1,否则返回到任务2.


这是实时OS的一个基本流程,与所谓的节拍中断没有什么关系.

实时OS节拍中断主要是用作任务定时延时.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21619

帖子

506

粉丝