diff --git a/doc/4.TencentOS-tiny开发指南.md b/doc/4.TencentOS-tiny开发指南.md index d46822fe..d0fb364b 100644 --- a/doc/4.TencentOS-tiny开发指南.md +++ b/doc/4.TencentOS-tiny开发指南.md @@ -1447,7 +1447,7 @@ int main(void) board_init(); tos_knl_init(); // 配置robin机制参数 - tos_robin_config(TOS_ROBIN_STATE_ENABLED, (k_timeslice_t)500u); + tos_robin_default_timeslice_config((k_timeslice_t)500u); (void)tos_task_create(&task_demo1, "demo1", entry_task_demo1, NULL, PRIO_TASK_DEMO, stack_task_demo1, STK_SIZE_TASK_DEMO, timeslice_demo1); diff --git a/doc/code/2.7 robin/main.c b/doc/code/2.7 robin/main.c index 93249eb8..c511f8f5 100644 --- a/doc/code/2.7 robin/main.c +++ b/doc/code/2.7 robin/main.c @@ -56,7 +56,7 @@ int main(void) { board_init(); tos_knl_init(); - tos_robin_config(TOS_ROBIN_STATE_ENABLED, (k_timeslice_t)500u); + tos_robin_default_timeslice_config((k_timeslice_t)500u); (void)tos_task_create(&task_demo1, "demo1", entry_task_demo1, NULL, PRIO_TASK_DEMO, stack_task_demo1, STK_SIZE_TASK_DEMO, timeslice_demo1); diff --git a/kernel/core/include/tos_global.h b/kernel/core/include/tos_global.h index 9193d51c..7fa01b8e 100644 --- a/kernel/core/include/tos_global.h +++ b/kernel/core/include/tos_global.h @@ -49,7 +49,6 @@ extern k_mmheap_ctl_t k_mmheap_ctl; #if TOS_CFG_ROUND_ROBIN_EN > 0u extern k_timeslice_t k_robin_default_timeslice; -extern k_robin_state_t k_robin_state; #endif #if TOS_CFG_TIMER_EN > 0u diff --git a/kernel/core/include/tos_robin.h b/kernel/core/include/tos_robin.h index f6678b67..91bdaae0 100644 --- a/kernel/core/include/tos_robin.h +++ b/kernel/core/include/tos_robin.h @@ -3,11 +3,6 @@ #if TOS_CFG_ROUND_ROBIN_EN > 0u -typedef enum k_robin_state_en { - TOS_ROBIN_STATE_ENABLED, - TOS_ROBIN_STATE_DISABLED, -} k_robin_state_t; - /** * @brief Set time slice. * Set time slice of a task. @@ -32,7 +27,7 @@ __API__ void tos_robin_timeslice_set(k_task_t *task, k_timeslice_t timeslice) * * @return None */ -__API__ void tos_robin_config(k_robin_state_t robin_state, k_timeslice_t default_timeslice); +__API__ void tos_robin_default_timeslice_config(k_timeslice_t default_timeslice); __KERNEL__ void robin_sched(k_prio_t prio); diff --git a/kernel/core/tos_global.c b/kernel/core/tos_global.c index e0b8f53a..5cedc45a 100644 --- a/kernel/core/tos_global.c +++ b/kernel/core/tos_global.c @@ -32,7 +32,6 @@ k_mmheap_ctl_t k_mmheap_ctl; #if TOS_CFG_ROUND_ROBIN_EN > 0u k_timeslice_t k_robin_default_timeslice = TOS_CFG_CPU_TICK_PER_SECOND / 10; -k_robin_state_t k_robin_state = TOS_ROBIN_STATE_DISABLED; #endif #if TOS_CFG_TIMER_EN > 0u diff --git a/kernel/core/tos_robin.c b/kernel/core/tos_robin.c index 0e0d39f5..b99b9c23 100644 --- a/kernel/core/tos_robin.c +++ b/kernel/core/tos_robin.c @@ -2,18 +2,18 @@ #if TOS_CFG_ROUND_ROBIN_EN > 0u -__API__ void tos_robin_config(k_robin_state_t robin_state, k_timeslice_t default_timeslice) +__API__ void tos_robin_default_timeslice_config(k_timeslice_t default_timeslice) { TOS_CPU_CPSR_ALLOC(); - TOS_CPU_INT_DISABLE(); - k_robin_state = robin_state; + TOS_CPU_INT_DISABLE(); if (default_timeslice > (k_timeslice_t)0u) { k_robin_default_timeslice = default_timeslice; } else { k_robin_default_timeslice = TOS_CFG_CPU_TICK_PER_SECOND / 10; } + TOS_CPU_INT_ENABLE(); } @@ -44,10 +44,6 @@ __KERNEL__ void robin_sched(k_prio_t prio) TOS_CPU_CPSR_ALLOC(); k_task_t *task; - if (k_robin_state != TOS_ROBIN_STATE_ENABLED) { - return; - } - TOS_CPU_INT_DISABLE(); task = readyqueue_first_task_get(prio); diff --git a/test/suit_robin.c b/test/suit_robin.c index b762e7ae..6f078d8c 100644 --- a/test/suit_robin.c +++ b/test/suit_robin.c @@ -34,7 +34,7 @@ TEST test_robin(void) int test_count = 0; const double deviation = 0.1; - tos_robin_config(TOS_ROBIN_STATE_ENABLED, (k_timeslice_t)500u); + tos_robin_default_timeslice_config((k_timeslice_t)500u); err = tos_task_create(&test_task_00, "test_task_00", test_robin_task_00_entry, NULL, k_curr_task->prio + 1, test_task_stack_00, sizeof(test_task_stack_00),