[ZLG-ARM] LPC2378+uCOSII的问题,各位帮忙

[复制链接]
2611|3
 楼主| ZorroCN 发表于 2009-5-19 16:17 | 显示全部楼层 |阅读模式
问题1:<br />周立功的那个模板里面,OS_ENTER_CRITICAL()函数是只关IRQ中断,还是将FIQ也一并关掉?记的老版本的是只关IRQ的(从代码上看),而新的则丢到OsSwiHandle1(2)里面去了。<br />问题2:<br />在FIQ中断服务当中,调用OSSemPost()函数向任务发送消息,是否可行?我在快速中断当中每次调用此函数都会造成未定义异常(在这之前已经OSSemCreate()),如下:<br />void&nbsp;FIQ_Exception(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;……<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSSemPost(pSem);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;……<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr=0;<br />}<br />这种方式是否恰当?
usber 发表于 2009-5-20 12:45 | 显示全部楼层

不清楚,等待高人解决

  
赖皮 发表于 2009-5-25 10:52 | 显示全部楼层

看看你的OS_CPU_A.s

MRS&nbsp;r0&nbsp;,&nbsp;cp<br />ORR&nbsp;r0&nbsp;,&nbsp;r0&nbsp;I_Bit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;禁止IRQ<br />MSR&nbsp;cpsr_c<br />ORR&nbsp;r0&nbsp;,&nbsp;r0&nbsp;,&nbsp;#&nbsp;F_Bit&nbsp;;禁止&nbsp;FIQ<br />MSR&nbsp;cpsr_c&nbsp;r0<br /><br />需增加OSIntNesting防止任务切换OS_Sched<br />void&nbsp;FIQ_Exception(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;……<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSSemPost(pSem);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;……<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)<br />}<br /><br />增加两部分语句<br />(1)<br />if&nbsp;(OSIntNesting&nbsp;&lt&nbsp;255u)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSIntNesting++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />(2)if&nbsp;(OSIntNesting&nbsp;&gt&nbsp;0)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSIntNesting--;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;//可以增加OSIntNesting=0任务切换
zlg_Wankai 发表于 2009-5-25 20:38 | 显示全部楼层

re

问题楼上已经回答,最好还是去找一个最新的模板,这样不用修改。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

84

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部