现在使用的事6678这个8核的片子,有几个问题请教一下:
1、在同一个核里有三个任务线程,比如task1、task2和task3·,优先级分别为1、2、3,如果同时触发这三个线程,处理顺序为task3、task2、task1?是不是只有高优先级的任务处理完了才会跑优先级低的任务?
2、在同一个核里有两个任务线程,比如task1和task2,优先级分别为1、2,先触发task1线程,task1中正在处理过程中触发task2任务,此时是不是task2会抢占处理资源并且等task2处理完后task1才接着处理?
3、在同一个核里有两个任务线程,比如task1和task2,优先级相同都为2,如果同时触发这两个线程,这两个线程任务会怎么运行?如果先触发task1,再触发task2(触发task2时,task1没有跑完),这两个线程又会怎么运行?
4、8个核之间使用IPC进行通信和中断,比如核1、2、3、4、5、6、7同时向核0同时发送IPC事件中断,核0里中断响应函数是同一个,6678会怎么处理?会把这个7个中断事件放在一个队列里么,等核0一个一个处理么?会丢中断吗?如果会丢,什么情况下会丢?
5、在核0中有3个任务线程,比如task1、task2和task3·,优先级分别为1、2、3,task2和task3都可以触发task1,task之间使用信号量来触发,如果task2和task3同时触发task1,即同时向task1发送Semaphore_post,这时task1会响应两次么?还是会丢掉一次,只会响应一次?
6、在核0中有3个任务线程,比如task1、task2·,优先级分别为1、2,task2可以触发task1,task之间使用信号量来触发,如果task2第一次发送Semaphore_post触发task1,这时task1会响应处理任务,在task1没有处理完task2又触发task1,这时dsp会怎么处理?
请各位大神给予指导,并且能给一些参考资料看一下最好,感谢感谢!!!
Nancy Wang:
如果任务A,B同优先级,那么调度器会先执行完先被调度的任务如A,等A执行完以后或者主动睡眠后,才执行B,B不会抢占A;如果B比A优先级高且被唤醒,那么B立刻抢占A执行,等B执行完或休眠以后,A才继续执行。
Nancy Wang:
看看这个trainning视频的1.8和1.9章节,讲了跟task优先级有关的内容。 training.ti.com/ti-rtos-workshop-series-4-10-ti-rtos-configuration
我从视频里截了一个图,可以解答你的第二个问题。
zhiyuc:
首先感谢一下帮助解答的大神,还有些问题有大神给解答一下么?
zhiyuc:
回复 zhiyuc:
或者有相关资料推荐给我看看也可以