最近在学习官方基于CH582的三模键盘源码,源码中关于PM的部分是这样的:
每次有按键生成时,调用
pm_start_working(PM_WORKING_TIMEOUT, PM_IDLE_TIMEOUT);
来触发一个5分钟后的睡眠任务。这个函数内部再调用
tmos_start_task(pm_task_id, PM_ENTER_IDLE_EVENT, MS1_TO_SYSTEM_TIME(working_timeout));
那假设用户不停的按键,tmos_start_task就会被不停的调用。我的问题是,当有同一个task_id和event_type的task被多次启动时,是最新的task替换掉之前旧的task呢(即只触发一次),还是每一个task都会在它们各自的working_timeout到期时被触发?谢谢!
根据我的测试好象是前者,但是这跟我对TMOS的文档理解不太一样,我以为每个task_id里的event是形成一个链表,那么应该会允许同一个event_type有多次的触发。