开发环境: MDK515 使用的os是RTX 应用:想用软中断的方式来实现开关总中断, 方法:使用PRIMASK(1)来实现关总中断,PRIMASK(0)开总中断。 初始化OS后执行如下程序 ① CM3_DisableIRQ(); //进入软中断实现关闭总中断 for(i= 0 ;i< 10000 ;i++) { j = i; } ②CM3_ENableIRQ();// 在软中断中实现开总中断 当执行到②时就进不了软中断了。而是进入了handlerfault 问题1:从上面的程序执行情况看,好像关总中断后软中断也给关闭了;但是从其他的资料看,执行PRIMASK(1)只是关闭的所有的外部中断,不应该包括软中断; 另外,若有意把软中断执行的时间 > 定时器中断时间,发现只有执行完了软中断内容后才进入定时器中断。 问题2:软中断的优先级比定时器中断高吗? 因为SMT32不是可以实现中断嵌套的吗,按理说应该在执行软中断函数过程中就会触发定时器中断。 |