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

📄 00000000.htm

📁 水木社区 embeded 版精华区 下载
💻 HTM
📖 第 1 页 / 共 5 页
字号:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARM&nbsp;(32位RISC)&nbsp;+&nbsp;RTEMS&nbsp;(完全FREE的军用操作系统),&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;203.93.105.209]&nbsp;<br />发信人:&nbsp;flyking&nbsp;(小排),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;又一道嵌入试题!&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Nov&nbsp;&nbsp;8&nbsp;13:03:58&nbsp;2001)&nbsp;<br />&nbsp;<br />我认为中断程序中干的都是对实时要求很高的东西,比如解固定速率的编码,如果你在解出&nbsp;<br />一个编码之前把控制权交给内核,可能下次中断时前一个码系统还码分配到时间处理&nbsp;<br />所以这种情况必须中断中完成以后再交出cpu,所谓分层和前后台的目的就在这里,前台&nbsp;<br />是要实时的,后台有空再干,以此类推,相对的前台总比相对的后台优先处理,&nbsp;<br />比如一种数据结构:8位组成byte,16位组成dbyte,32位组成word,64位组成block,前一种&nbsp;<br />子帧总要先处理,处理完了就交给后台处理更高级的帧。当然实际中不用这么繁&nbsp;<br />【&nbsp;在&nbsp;hongchen&nbsp;(kissing-fire)&nbsp;的大作中提到:&nbsp;】&nbsp;<br />∶<i>&nbsp;在中断服务程序里不对中断作处理,只是置一个标志位,或者写一个状态字,然后由一个&nbsp;</i><br />∶<i>&nbsp;短时定时程序或无限循环程序来扫描这些标志位或状态字,再启动相应的处理程序,这不&nbsp;</i><br />∶<i>&nbsp;就相当于把原本可以一次完成的事情,拆成了两段吗?肯定要引入新的变量,增加跳转时&nbsp;</i><br />∶<i>&nbsp;间,也就相当于增加了系统被干扰的机会,跳转是程序最容易跑飞的时候,这样做的好处&nbsp;</i><br />∶<i>&nbsp;是什么呢?&nbsp;</i><br />∶<i>&nbsp;如果一次发生了多个中断,那么启动的处理程序应该是相当于一个线程,或是一个任务,&nbsp;</i><br />∶<i>&nbsp;应该是独立运行的,这时这个短时定时程序或无限循环程序要启动多个线程,而此时多线&nbsp;</i><br />∶<i>&nbsp;程之间的通讯以及对线程根据优先级进行频繁的执行、挂起,却要由内核来做?那么这个&nbsp;</i><br />∶<i>&nbsp;短时定时程序或无限循环程序到底有什么用呢?为什么不直接由内核来管理呢?直接由内&nbsp;</i><br />∶<i>&nbsp;核来管理这些中断信号?还是你说的这个程序本身就是内核呢?&nbsp;</i><br />∶<i>&nbsp;我觉得这个流程就好像是&nbsp;</i><br />∶<i>&nbsp;...................&nbsp;</i><br />&nbsp;<br />--&nbsp;<br />&nbsp;&nbsp;起初,神创造天地。地是空虚混沌,渊面黑暗;神的灵运行在水面上。&nbsp;<br />神说:&quot;要有光&quot;。就有了光。神看光是好的,就把光暗分开了。神称光&nbsp;<br />为&quot;昼&quot;,称暗为&quot;夜&quot;。&nbsp;<br />&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;210.52.210.55]&nbsp;<br />发信人:&nbsp;neuronlee&nbsp;(机械化神经元),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;又一道嵌入试题!&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Nov&nbsp;&nbsp;8&nbsp;13:13:01&nbsp;2001)&nbsp;<br />&nbsp;<br />我想她说的是在没有RTOS的情况下的解决方案.由中断程序设置标志然后&nbsp;<br />退出,由其他程序接手是很正常的行为.无论有无RTOS这样做都有其道理,&nbsp;<br />应情况而易.&nbsp;<br />【&nbsp;在&nbsp;hongchen&nbsp;(kissing-fire)&nbsp;的大作中提到:&nbsp;】&nbsp;<br />∶<i>&nbsp;在中断服务程序里不对中断作处理,只是置一个标志位,或者写一个状态字,然后由一个&nbsp;</i><br />∶<i>&nbsp;短时定时程序或无限循环程序来扫描这些标志位或状态字,再启动相应的处理程序,这不&nbsp;</i><br />∶<i>&nbsp;就相当于把原本可以一次完成的事情,拆成了两段吗?肯定要引入新的变量,增加跳转时&nbsp;</i><br />∶<i>&nbsp;间,也就相当于增加了系统被干扰的机会,跳转是程序最容易跑飞的时候,这样做的好处&nbsp;</i><br />∶<i>&nbsp;是什么呢?&nbsp;</i><br />∶<i>&nbsp;如果一次发生了多个中断,那么启动的处理程序应该是相当于一个线程,或是一个任务,&nbsp;</i><br />∶<i>&nbsp;应该是独立运行的,这时这个短时定时程序或无限循环程序要启动多个线程,而此时多线&nbsp;</i><br />∶<i>&nbsp;程之间的通讯以及对线程根据优先级进行频繁的执行、挂起,却要由内核来做?那么这个&nbsp;</i><br />∶<i>&nbsp;短时定时程序或无限循环程序到底有什么用呢?为什么不直接由内核来管理呢?直接由内&nbsp;</i><br />∶<i>&nbsp;核来管理这些中断信号?还是你说的这个程序本身就是内核呢?&nbsp;</i><br />∶<i>&nbsp;我觉得这个流程就好像是&nbsp;</i><br />∶<i>&nbsp;...................&nbsp;</i><br />&nbsp;<br />--&nbsp;<br />According&nbsp;to&nbsp;the&nbsp;system&nbsp;log,&nbsp;windows&nbsp;had&nbsp;already&nbsp;started,&nbsp;but&nbsp;<br />it&nbsp;seems&nbsp;to&nbsp;be&nbsp;murdered&nbsp;mysteriously!&nbsp;:-DDDDDDDD&nbsp;<br />&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;66.75.17.82]&nbsp;<br />发信人:&nbsp;wheregone&nbsp;(猫猫),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;又一道嵌入试题!&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Nov&nbsp;&nbsp;8&nbsp;13:50:28&nbsp;2001)&nbsp;<br />&nbsp;<br />实际上&nbsp;在中断里发消息或mail,物理上也是置标志位&nbsp;<br />对不对?&nbsp;<br />&nbsp;<br />&nbsp;<br />【&nbsp;在&nbsp;neuronlee&nbsp;(机械化神经元)&nbsp;的大作中提到:&nbsp;】&nbsp;<br />∶<i>&nbsp;我想她说的是在没有RTOS的情况下的解决方案.由中断程序设置标志然后&nbsp;</i><br />∶<i>&nbsp;退出,由其他程序接手是很正常的行为.无论有无RTOS这样做都有其道理,&nbsp;</i><br />∶<i>&nbsp;应情况而易.&nbsp;</i><br />&nbsp;<br />&nbsp;<br />--&nbsp;<br />the&nbsp;longing&nbsp;for&nbsp;love,&nbsp;&nbsp;&nbsp;the&nbsp;search&nbsp;for&nbsp;knowledge,&nbsp;<br />and&nbsp;unbearable&nbsp;pity&nbsp;for&nbsp;the&nbsp;suffering&nbsp;of&nbsp;mankind.&nbsp;<br />------------------------------------------------&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;202.120.8.69]&nbsp;<br />发信人:&nbsp;hongchen&nbsp;(kissing-fire),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;又一道嵌入试题!&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Nov&nbsp;&nbsp;8&nbsp;13:58:30&nbsp;2001)&nbsp;<br />&nbsp;<br />&nbsp;<br />【&nbsp;在&nbsp;wangyyff&nbsp;(郁闷的大面瓜)&nbsp;的大作中提到:&nbsp;】&nbsp;<br />∶<i>&nbsp;这根本就不是操作系统,只是最简单的单片机程序,&nbsp;</i><br />∶<i>&nbsp;扯这么多大理论出来干啥?受不了你&nbsp;</i><br />虽然你已经受不了我了&nbsp;<br />不过我还是想把这个问题弄明白&nbsp;<br />这样写单片机程序有什么好处。&nbsp;<br />&nbsp;<br />中断1,2,3。。。-&gt;置位或写状态字&lt;-无限循环,查询状态位,启动程序&nbsp;<br />&nbsp;<br />能不能举个例子,说明一下这样写程序的理由呢?&nbsp;<br />&nbsp;<br />--&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;166.111.60.132]&nbsp;<br />发信人:&nbsp;wheregone&nbsp;(猫猫),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;又一道嵌入试题!&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Nov&nbsp;&nbsp;8&nbsp;14:09:52&nbsp;2001)&nbsp;<br />&nbsp;<br />单线程编程只能这样处理多任务吧&nbsp;<br />比如你要处理键盘,要处理UART的数据,又要输出&nbsp;<br />只能在一个大循环里套小循环,特别是用户菜单&nbsp;<br />这个方法缺点多多:&nbsp;<br />两个中断之间如果处理时间不够,会得不到响应或延迟太&nbsp;<br />多&nbsp;<br />&nbsp;<br />维护和升级太麻烦&nbsp;<br />不利于多人合作写代码&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />【&nbsp;在&nbsp;hongchen&nbsp;(kissing-fire)&nbsp;的大作中提到:&nbsp;】&nbsp;<br />∶<i>&nbsp;虽然你已经受不了我了&nbsp;</i><br />∶<i>&nbsp;不过我还是想把这个问题弄明白&nbsp;</i><br />∶<i>&nbsp;这样写单片机程序有什么好处。&nbsp;</i><br />∶<i>&nbsp;中断1,2,3。。。-&gt;置位或写状态字&lt;-无限循环,查询状态位,启动程序&nbsp;</i><br />∶<i>&nbsp;能不能举个例子,说明一下这样写程序的理由呢?&nbsp;</i><br />&nbsp;<br />&nbsp;<br />--&nbsp;<br />the&nbsp;longing&nbsp;for&nbsp;love,&nbsp;&nbsp;&nbsp;the&nbsp;search&nbsp;for&nbsp;knowledge,&nbsp;<br />and&nbsp;unbearable&nbsp;pity&nbsp;for&nbsp;the&nbsp;suffering&nbsp;of&nbsp;mankind.&nbsp;<br />------------------------------------------------&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;202.120.8.69]&nbsp;<br />发信人:&nbsp;hongchen&nbsp;(kissing-fire),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;又一道嵌入试题!&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Nov&nbsp;&nbsp;8&nbsp;16:58:57&nbsp;2001)&nbsp;<br />&nbsp;<br />&nbsp;<br />【&nbsp;在&nbsp;wheregone&nbsp;(猫猫)&nbsp;的大作中提到:&nbsp;】&nbsp;<br />∶<i>&nbsp;单线程编程只能这样处理多任务吧&nbsp;</i><br />∶<i>&nbsp;比如你要处理键盘,要处理UART的数据,又要输出&nbsp;</i><br />∶<i>&nbsp;只能在一个大循环里套小循环,特别是用户菜单&nbsp;</i><br />应该是使用短时定时器中断来查询键盘中断,&nbsp;<br />串口工作在中断方式&nbsp;<br />∶<i>&nbsp;这个方法缺点多多:&nbsp;</i><br />∶<i>&nbsp;两个中断之间如果处理时间不够,会得不到响应或延迟太&nbsp;</i><br />∶<i>&nbsp;多&nbsp;</i><br />∶<i>&nbsp;维护和升级太麻烦&nbsp;</i><br />∶<i>&nbsp;不利于多人合作写代码&nbsp;</i><br />我明白了,先把中断产生的信息和数据存储下来,然后再一一去执行,&nbsp;<br />可以避免没有响应,保证按优先级顺序执行。&nbsp;<br />这个方式可能提高了编程效率,和结构性,但是可能会带来跳转太多,&nbsp;<br />系统容易死机。&nbsp;<br />真是一个矛盾,要想提高编程效率,必然降低代码的执行效率。&nbsp;<br />&nbsp;<br />&nbsp;<br />--&nbsp;<br />&nbsp;<br />※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;166.111.60.132]&nbsp;<br />发信人:&nbsp;ncic&nbsp;(yiran),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;又一道嵌入试题!&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Nov&nbsp;&nbsp;8&nbsp;21:14:39&nbsp;2001)&nbsp;<br />&nbsp;<br />大面瓜说的是有道理,有依据的,&nbsp;<br />中断处理程序分成两部分可以更快更及时地的响应中断,更少地丢失中断信号&nbsp;<br />

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -