lmch 发表于 2016-9-18 22:16:32

新手求教uCOS设置primask可屏蔽中断的问题

在uCOS初始化时,调用了 BSP_IntDisAll();                                          /* Disable all Interrupts.                              */

这句话是设置了primask位,即是关闭了可屏蔽中断。
为什么要这样做啊?我去掉了这句话后,lwip确实就不正常了。

lmch 发表于 2016-9-19 17:15:52

各位大神啊,怎么没人回?

anywill 发表于 2016-10-12 08:32:25

功能描述
PRIMASK
只有单一比特的寄存器。置为1后,就关掉所有可屏蔽异常,只剩下NMI和硬Fault可以响应。默认值是0,表示没有关闭中断。

lvyunzeng 发表于 2016-10-12 09:20:06

我想问问楼主是在什么样的项目中使用UCOS的。现在刚刚入门STM32,使用此芯片做了几个小项目。不知道UCOS是在什么量级的项目中应用。我使用的是F105

lmch 发表于 2016-10-26 22:51:59

anywill 发表于 2016-10-12 08:32
功能描述
PRIMASK
只有单一比特的寄存器。置为1后,就关掉所有可屏蔽异常,只剩下NMI和硬Fault可以响应。默 ...

是这样的,我在学习ucOS+lwip,在别人的代码里,ucOS启动任务前将PRIMASK置位关了中断,但是后面一直没有找到开中断的地方,那么SysTick中断也应该被关了。但是lwip任务还是能够正常运行,去掉关中断那句话反而不行了。后来就把这个问题搁那儿了。

lmch 发表于 2016-10-26 22:54:34

lvyunzeng 发表于 2016-10-12 09:20
我想问问楼主是在什么样的项目中使用UCOS的。现在刚刚入门STM32,使用此芯片做了几个小项目。不知道UCOS是 ...

我也只是在自学,没有上过项目。stm32给的示例代码里,实时操作系统都用FreeRTOS

gino8888 发表于 2016-11-7 20:55:48

lvyunzeng 发表于 2016-10-12 09:20
我想问问楼主是在什么样的项目中使用UCOS的。现在刚刚入门STM32,使用此芯片做了几个小项目。不知道UCOS是 ...

趁早改行
页: [1]
查看完整版本: 新手求教uCOS设置primask可屏蔽中断的问题