502398542 发表于 2019-6-13 18:05:03

中断屏蔽

程序的顺序是,在main函数开始先__set_PRIMASK(1);
然后初始化串口,
最后vTaskStartScheduler();


发现初始化串口之后就会进串口中断,也试了__disable_irq(); 屏蔽中断,效果一样的,都是会在系统调度开始之前进串口中断,然后由于串口中断中调用了队列相关的函数,导致程序错误


虽然后来加个标志位解决了这个问题,但是没有搞明白为什么中断屏蔽不住



eric2013 发表于 2019-6-14 08:41:14


502398542 发表于 2019-6-14 09:11:07

我就是在这个工程基础上改的,在任务调度开始之前,哪里会调用这个cpsie i吗,我没有主动开启过全局中断

eric2013 发表于 2019-6-14 09:18:49

502398542 发表于 2019-6-14 09:11
我就是在这个工程基础上改的,在任务调度开始之前,哪里会调用这个cpsie i吗,我没有主动开启过全局中断

二楼红色方框的字,读一遍。

502398542 发表于 2019-6-14 09:39:07

原来是这样,建议禁止全局中断,但例程里是开启全局中断,红框里的意思是不是,如果我禁止里全局中断,任务开始调度的时候会自动开启全局中断?

eric2013 发表于 2019-6-14 10:46:23

502398542 发表于 2019-6-14 09:39
原来是这样,建议禁止全局中断,但例程里是开启全局中断,红框里的意思是不是,如果我禁止里全局中断,任务 ...

对,FreeRTOS的port文件里面的那个函数会将其开启。

502398542 发表于 2019-6-14 15:22:34

多谢,是我看的不仔细
页: [1]
查看完整版本: 中断屏蔽