remove robin enable config

This commit is contained in:
SheldonDai
2019-09-27 11:30:24 +08:00
parent 874b7307ae
commit 26edb2dfb3
7 changed files with 7 additions and 18 deletions

View File

@@ -1447,7 +1447,7 @@ int main(void)
board_init(); board_init();
tos_knl_init(); tos_knl_init();
// 配置robin机制参数 // 配置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, (void)tos_task_create(&task_demo1, "demo1", entry_task_demo1, NULL,
PRIO_TASK_DEMO, stack_task_demo1, STK_SIZE_TASK_DEMO, PRIO_TASK_DEMO, stack_task_demo1, STK_SIZE_TASK_DEMO,
timeslice_demo1); timeslice_demo1);

View File

@@ -56,7 +56,7 @@ int main(void)
{ {
board_init(); board_init();
tos_knl_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, (void)tos_task_create(&task_demo1, "demo1", entry_task_demo1, NULL,
PRIO_TASK_DEMO, stack_task_demo1, STK_SIZE_TASK_DEMO, PRIO_TASK_DEMO, stack_task_demo1, STK_SIZE_TASK_DEMO,
timeslice_demo1); timeslice_demo1);

View File

@@ -49,7 +49,6 @@ extern k_mmheap_ctl_t k_mmheap_ctl;
#if TOS_CFG_ROUND_ROBIN_EN > 0u #if TOS_CFG_ROUND_ROBIN_EN > 0u
extern k_timeslice_t k_robin_default_timeslice; extern k_timeslice_t k_robin_default_timeslice;
extern k_robin_state_t k_robin_state;
#endif #endif
#if TOS_CFG_TIMER_EN > 0u #if TOS_CFG_TIMER_EN > 0u

View File

@@ -3,11 +3,6 @@
#if TOS_CFG_ROUND_ROBIN_EN > 0u #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. * @brief Set time slice.
* Set time slice of a task. * 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 * @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); __KERNEL__ void robin_sched(k_prio_t prio);

View File

@@ -32,7 +32,6 @@ k_mmheap_ctl_t k_mmheap_ctl;
#if TOS_CFG_ROUND_ROBIN_EN > 0u #if TOS_CFG_ROUND_ROBIN_EN > 0u
k_timeslice_t k_robin_default_timeslice = TOS_CFG_CPU_TICK_PER_SECOND / 10; 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 #endif
#if TOS_CFG_TIMER_EN > 0u #if TOS_CFG_TIMER_EN > 0u

View File

@@ -2,18 +2,18 @@
#if TOS_CFG_ROUND_ROBIN_EN > 0u #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_CPSR_ALLOC();
TOS_CPU_INT_DISABLE();
k_robin_state = robin_state; TOS_CPU_INT_DISABLE();
if (default_timeslice > (k_timeslice_t)0u) { if (default_timeslice > (k_timeslice_t)0u) {
k_robin_default_timeslice = default_timeslice; k_robin_default_timeslice = default_timeslice;
} else { } else {
k_robin_default_timeslice = TOS_CFG_CPU_TICK_PER_SECOND / 10; k_robin_default_timeslice = TOS_CFG_CPU_TICK_PER_SECOND / 10;
} }
TOS_CPU_INT_ENABLE(); TOS_CPU_INT_ENABLE();
} }
@@ -44,10 +44,6 @@ __KERNEL__ void robin_sched(k_prio_t prio)
TOS_CPU_CPSR_ALLOC(); TOS_CPU_CPSR_ALLOC();
k_task_t *task; k_task_t *task;
if (k_robin_state != TOS_ROBIN_STATE_ENABLED) {
return;
}
TOS_CPU_INT_DISABLE(); TOS_CPU_INT_DISABLE();
task = readyqueue_first_task_get(prio); task = readyqueue_first_task_get(prio);

View File

@@ -34,7 +34,7 @@ TEST test_robin(void)
int test_count = 0; int test_count = 0;
const double deviation = 0.1; 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, err = tos_task_create(&test_task_00, "test_task_00", test_robin_task_00_entry,
NULL, k_curr_task->prio + 1, NULL, k_curr_task->prio + 1,
test_task_stack_00, sizeof(test_task_stack_00), test_task_stack_00, sizeof(test_task_stack_00),