你好-392883 发表于 2015-9-23 15:24:27

关于STM32 开关总中断、软中优先级

开发环境: 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不是可以实现中断嵌套的吗,按理说应该在执行软中断函数过程中就会触发定时器中断。



页: [1]
查看完整版本: 关于STM32 开关总中断、软中优先级