📄 83.htm
字号:
: 内核是不是指嵌入式操作系统的内核? <br>
: 还是泛指任何操作系统? <br>
: 还是任何核心程序? <br>
: 实际系统中恐怕不会出现这种情况吧, <br>
: 肯定应该通过主系统精确定时来触发这种外部频繁事件吧 <br>
: 否则这种中断,恐怕没有哪个系统能承受得了,这么频繁的进行中断,系统不死机才怪! <br>
: 好久没有和人深入讨论问题了,真是觉得高兴! <br>
<br>
<br>
-- <br>
起初,神创造天地。地是空虚混沌,渊面黑暗;神的灵运行在水面上。 <br>
神说:"要有光"。就有了光。神看光是好的,就把光暗分开了。神称光 <br>
为"昼",称暗为"夜"。 <br>
<br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 210.52.211.247] <br>
发信人: wangyyff (郁闷的大面瓜), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Fri Nov 9 08:40:52 2001) <br>
<br>
<br>
为什么频繁中断就会把系统搞死?说说看 <br>
精确定时?系统的实时性何在? <br>
<br>
【 在 hongchen (kissing-fire) 的大作中提到: 】 <br>
: 内核是不是指嵌入式操作系统的内核? <br>
: 还是泛指任何操作系统? <br>
: 还是任何核心程序? <br>
: 实际系统中恐怕不会出现这种情况吧, <br>
: 肯定应该通过主系统精确定时来触发这种外部频繁事件吧 <br>
: 否则这种中断,恐怕没有哪个系统能承受得了,这么频繁的进行中断,系统不死机才怪! <br>
: 好久没有和人深入讨论问题了,真是觉得高兴! <br>
<br>
<br>
-- <br>
===================================================================== <br>
新域名启动: <br>
英文版:http://www.cfly.org <br>
中文版:http://wangyunfei.yeah.net <br>
<br>
ARM (32位RISC) + RTEMS (完全FREE的军用操作系统), <br>
<br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 203.93.105.209] <br>
发信人: neuronlee (机械化神经元), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Fri Nov 9 11:02:25 2001) <br>
<br>
我想你说的是进程间通信巴.各种通信机制不同,实现方法也不同. <br>
在传统的UNIX中,发SIGNAL实际上就是在进程控制块中的数据结构 <br>
中置相应的位.但发消息就不太一样了,因为涉及到数据传输, <br>
所以在进程内存空间分离的情况吓要进行内存拷贝,在许多嵌入式 <br>
操作系统中因为内存空间是统一的,所以仅传送指针就行了. <br>
但中段有其特殊性,就是不能阻塞.这是极其重要的. <br>
【 在 wheregone (猫猫) 的大作中提到: 】 <br>
: 实际上 在中断里发消息或mail,物理上也是置标志位 <br>
: 对不对? <br>
<br>
<br>
-- <br>
According to the system log, windows had already started, but <br>
it seems to be murdered mysteriously! :-DDDDDDDD <br>
<br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 66.75.17.82] <br>
发信人: neuronlee (机械化神经元), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Fri Nov 9 11:04:15 2001) <br>
<br>
他不过是在没OS的情况吓实现一个简单的调度程序而已. <br>
【 在 hongchen (kissing-fire) 的大作中提到: 】 <br>
: 虽然你已经受不了我了 <br>
: 不过我还是想把这个问题弄明白 <br>
: 这样写单片机程序有什么好处。 <br>
: 中断1,2,3。。。->置位或写状态字<-无限循环,查询状态位,启动程序 <br>
: 能不能举个例子,说明一下这样写程序的理由呢? <br>
<br>
<br>
-- <br>
According to the system log, windows had already started, but <br>
it seems to be murdered mysteriously! :-DDDDDDDD <br>
<br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 66.75.17.82] <br>
发信人: neuronlee (机械化神经元), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Fri Nov 9 11:10:44 2001) <br>
<br>
<br>
是呀,定时时限太短空耗许多CPU时间,太长又不能保证及时响应. <br>
【 在 wangyyff (郁闷的大面瓜) 的大作中提到: 】 <br>
: 为什么频繁中断就会把系统搞死?说说看 <br>
: 精确定时?系统的实时性何在? <br>
<br>
<br>
<br>
-- <br>
According to the system log, windows had already started, but <br>
it seems to be murdered mysteriously! :-DDDDDDDD <br>
<br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 66.75.17.82] <br>
发信人: hongchen (kissing-fire), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Fri Nov 9 18:58:31 2001) <br>
<br>
<br>
【 在 wangyyff (郁闷的大面瓜) 的大作中提到: 】 <br>
: 为什么频繁中断就会把系统搞死?说说看 <br>
这只是我个人的经验,因为以前做工控的时候,如果频繁中断,系统程序 <br>
很容易跑飞,而且一旦强电磁干扰来,使用中断程序比使用查询方式更容易 <br>
死机。不信你可以找个大电动机试试。大电动机的电磁 脉冲瞬间浪涌电流 <br>
导致的尖峰脉冲,不过是千伏级。而BC类设备电磁兼容性测试时,加的电压 <br>
可以到5000V。这时候程序如果是使用中断方式,很容易发生程序指针某位 <br>
翻转。但是如果使用顺序执行的程序,就不容易发生这种情况。而且现场 <br>
的控制方式往往使用数字电路,或者使用极低级的单片机来做核心的控制。 <br>
实际上就是按一个固定的流程来启动程序。 <br>
: 精确定时?系统的实时性何在? <br>
频繁中断情况下,使用精确定时,当然可以保证系统的实时性,因为只有当 <br>
CPU需要外设工作,或者需要外设数据时,才会启动设备,所以由CPU根据预先 <br>
设定的工作流程,通过精确定时来启动外设,这样做比让外设频繁发送中断, <br>
在系统的可靠性和稳定性上会好一些。当然如果只是消费类的普通民用设备, <br>
你用中断和查询两者之间没有差别,只取决于你自己的爱好,或者为了团队 <br>
编程方便。 <br>
但是如果是一个工控项目,或者是象我这种高可靠性的设备,我想恐怕没有人 <br>
会使用频繁中断这种方式的。不信你可以去问问看。 <br>
<br>
-- <br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.60.132] <br>
发信人: wangyyff (郁闷的大面瓜), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 08:27:40 2001) <br>
<br>
<br>
【 在 hongchen (kissing-fire) 的大作中提到: 】 <br>
: 这只是我个人的经验,因为以前做工控的时候,如果频繁中断,系统程序 <br>
: 很容易跑飞,而且一旦强电磁干扰来,使用中断程序比使用查询方式更容易 <br>
: 死机。不信你可以找个大电动机试试。大电动机的电磁 脉冲瞬间浪涌电流 <br>
: 导致的尖峰脉冲,不过是千伏级。而BC类设备电磁兼容性测试时,加的电压 <br>
: 可以到5000V。这时候程序如果是使用中断方式,很容易发生程序指针某位 <br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <br>
: 翻转。但是如果使用顺序执行的程序,就不容易发生这种情况。而且现场 <br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <br>
说说看,为什么会这样?这个结论有什么理论依据?还是这个结论仅仅是你 <br>
的个人经验总结?中断操作的软件编写肯定是比关掉中断查询对程序员的要求 <br>
要高得多,所以……你有没有想过出现这种问题是因为你软件设计的问题? <br>
别多心,我不是怎么怎么你,我自己在编写一些东东时也喜欢先关着中断试通 <br>
一些外设,然后再试着用中断来搞,毕竟在中断时需要考虑的东东太多。 <br>
<br>
: 的控制方式往往使用数字电路,或者使用极低级的单片机来做核心的控制。 <br>
: 实际上就是按一个固定的流程来启动程序。 <br>
: 频繁中断情况下,使用精确定时,当然可以保证系统的实时性,因为只有当 <br>
: CPU需要外设工作,或者需要外设数据时,才会启动设备, <br>
我的天哪,如果每个做工控的人都这么考虑自己的设备,工控岂不是比PC还好搞? <br>
不好意思,我还真没搞过工控,门外汉,不多嘴了^_^ <br>
<br>
: 所以由CPU根据预先 <br>
: 设定的工作流程,通过精确定时来启动外设,这样做比让外设频繁发送中断, <br>
: ................... <br>
<br>
-- <br>
-- <br>
===================================================================== <br>
新域名启动: <br>
英文版:http://www.cfly.org <br>
中文版:http://wangyunfei.yeah.net <br>
<br>
ARM (32位RISC) + RTEMS (完全FREE的军用操作系统), <br>
<br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 203.93.105.209] <br>
发信人: hongchen (kissing-fire), 信区: Embedded <br>
标 题: Re: 又一道嵌入试题! <br>
发信站: BBS 水木清华站 (Mon Nov 12 12:11:02 2001) <br>
<br>
<br>
【 在 wangyyff (郁闷的大面瓜) 的大作中提到: 】 <br>
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <br>
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <br>
: 说说看,为什么会这样?这个结论有什么理论依据?还是这个结论仅仅是你 <br>
: 的个人经验总结?中断操作的软件编写肯定是比关掉中断查询对程序员的要求 <br>
: 要高得多,所以……你有没有想过出现这种问题是因为你软件设计的问题? <br>
: 别多心,我不是怎么怎么你,我自己在编写一些东东时也喜欢先关着中断试通 <br>
: 一些外设,然后再试着用中断来搞,毕竟在中断时需要考虑的东东太多。 <br>
为了搞清楚这个问题,我曾经把图书馆里所有相关的书籍,都翻了个编,然后把 <br>
手头上ADC的光盘中的所有应用资料与之相关的部分,都看了一遍。EMC问题可以 <br>
说是电路里最复杂的问题,虽然我一直都在这个问题上不断收集资料,但是仍然 <br>
不敢说就对这个问题有很好的理解,只能说入了一点门吧。 <br>
可能普通人很难想象,你的电路板放到一个大电动机旁边,平常工作的很好,但是 <br>
在大电动机启动瞬间,或者电磁继电器阵列开启瞬间,你的电路板总线上全是1, <br>
还有,如果你使用地址线的低位,做地址选通,你可能经常访问不了你的外设, <br>
因为经常这些位在随机翻动。 <br>
其实原因很简单,Ldi/dt,一个小的电感,任何导线,或者说电路中的任何东西都 <br>
有电感,而i=q/t=cu/t,di/dt=cdu/dt,任何电路中的东西都有电容,自己有节 <br>
电容,寄生电容,耦合电容,对其他东西有分布电容,或各种各样的杂散电容, <br>
这些电容最终导致了位移电流的产生,这是你不管用什么样的屏蔽,都无法彻底去除 <br>
的,这个电流的变化,最终通过电感会产生电压。其实所有设备都有一个电冲击 <br>
上限,民用设备一般也就是1000多伏左右,一个1000多伏的电脉冲产生的电磁波, <br>
就足以让你的电路板上某些总线,或数字电平,全为1了。 <br>
中断方式,你的程序指针会跳变,而且是硬件产生的突发性跳变,这也就意味着 <br>
无穷的频率分量,频带无限宽,因为这是一个冲击或阶跃,这个时候,虽然你的 <br>
电路可能正常时工作很好,但是在外界干扰和自身电磁波干扰下,某一位地址发生 <br>
翻转,这是完全可能的,虽然概率很低。理论上虽然这种概率很低,可是实际情况中, <br>
这种概率一点也不低。一个月中间有那么一两次,你说是低还是高。对于我这行中 <br>
的监护仪,监护的都是要死的人,它一个月死机一两次,你说是高还是低? <br>
但是顺序执行的程序,程序指针只是随主频逐个增加。相对而言,自身的干扰会 <br>
小一些。 <br>
以上仅仅是我的一些想法。因为实际中曾经出现过这样的问题,而且我老是遇到 <br>
设备死机的问题,还经常要去修,所以自己在这上面,下过一些功夫去琢磨。也就是 <br>
后来对于没有通过EMC检测的CPU是一点兴趣也没有。 <br>
至于程序问题,我觉得也有,因为不用嵌入式操作系统的监护仪,就特别皮实,而 <br>
用了嵌入式操作系统的监护仪就老死机。我就曾经想,是不是嵌入式操作系统降低 <br>
了设备的可靠性。因为嵌入式操作系统程序太过复杂,而且实际上不停的在中断程序, <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -