⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 83.htm

📁 pcb设计资料初学者难得的入门资料包含工厂制作过程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
: 内核是不是指嵌入式操作系统的内核? <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 + -