OSAL的工作原理就是通过taskEvents指针方位事件表的每一项,如果有事件发生,则查找函数表找到事件处理函数进行处理,处理完后,继续访问事件表,查看是否有事件发生,无限循环。
从某种意义上说,OSAL是一种基于事件驱动的轮训是操作系统。事件驱动是指发生事件后采取相应的事件处理方法,轮询是指不断的查询是否有事件发生。**
1. 建立tasksArr[idx]函数表,用于记录任务号为idx的任务事件处理函数;
2. 建立tasksEvents[idx]事件表,用于记录任务号为idx的任务发生的事件;
3. 循环扫描tasksEvents[idx]事件表,找到tasksEvents[idx]!=0的任务号idx,并通过 (tasksArr[idx])( idx, events )调用tasksArr[idx]中的函数处理该任务的事件。