1.硬件平台STM32F103
2.软件平台MDK4.2.3 RL-ARM - RTX4.2
3.背景:最近Debug时,发现can通信任务被不停地触发。
can通信任务触发条件为if(os_evt_wait_or(0x0001,OS_10MS) == OS_R_EVT)
4.问题解决
RTX系统每个任务最多拥有16个事件,事件编号不是1-16,而是用位表示即1,2,4,8,16等等
我的程序中该任务还会有一个事件编号为5,则5号事件触发时,顺带1号事件也触发了。所以进入了软件陷阱。
不同的任务,事件编号可以相同。