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