修正_get_highest_priority_thread中对“是否只有idle可运行”判断位置的问题

This commit is contained in:
shaojinchun 2019-05-10 10:36:19 +08:00
parent 6cdfb2ac92
commit 737d58fbb9
1 changed files with 2 additions and 1 deletions

View File

@ -128,9 +128,9 @@ static struct rt_thread* _get_highest_priority_thread(rt_ubase_t *highest_prio)
register struct rt_thread *highest_priority_thread; register struct rt_thread *highest_priority_thread;
register rt_ubase_t highest_ready_priority, local_highest_ready_priority; register rt_ubase_t highest_ready_priority, local_highest_ready_priority;
struct rt_cpu* pcpu = rt_cpu_self(); struct rt_cpu* pcpu = rt_cpu_self();
#if RT_THREAD_PRIORITY_MAX > 32 #if RT_THREAD_PRIORITY_MAX > 32
register rt_ubase_t number; register rt_ubase_t number;
#endif
if (rt_thread_ready_priority_group == 0 && pcpu->priority_group == 0) if (rt_thread_ready_priority_group == 0 && pcpu->priority_group == 0)
{ {
@ -139,6 +139,7 @@ static struct rt_thread* _get_highest_priority_thread(rt_ubase_t *highest_prio)
return pcpu->current_thread; return pcpu->current_thread;
} }
#if RT_THREAD_PRIORITY_MAX > 32
number = __rt_ffs(rt_thread_ready_priority_group) - 1; number = __rt_ffs(rt_thread_ready_priority_group) - 1;
highest_ready_priority = (number << 3) + __rt_ffs(rt_thread_ready_table[number]) - 1; highest_ready_priority = (number << 3) + __rt_ffs(rt_thread_ready_table[number]) - 1;
number = __rt_ffs(pcpu->priority_group) - 1; number = __rt_ffs(pcpu->priority_group) - 1;