From 647bb9063e6a0cd54fef57d9eb9d71f4dbdfeca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B6=E4=B8=AD=E6=96=AD=E5=BB=B6=E8=BF=9F=E7=9A=84RTOS?= Date: Wed, 19 Feb 2025 14:56:06 +0000 Subject: [PATCH] update System/sv_com.c. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 零中断延迟的RTOS --- System/sv_com.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/System/sv_com.c b/System/sv_com.c index a7e9c7a0..51e325af 100644 --- a/System/sv_com.c +++ b/System/sv_com.c @@ -4,8 +4,8 @@ * @brief 内核服务公共函数 * @details 在服务层临界区中,由内核服务调用。 * @author 迟凯峰 - * @version V1.0.0 - * @date 2025.02.08 + * @version V1.0.1 + * @date 2025.02.19 ******************************************************************************/ #include "os_var.h" @@ -149,16 +149,16 @@ void sv_task_remove_ready(s_tasknode_tsp htask) s_u8_t sv_task_select_ready(void) { #if SYSCFG_TASKPRIORITY > 64 - s_u8_t table_index = s_task_map_pick[s_task_table_index >> 1]; - s_u8_t bytes_index = s_task_map_pick[s_task_bytes_index[table_index] >> 1]; - s_u8_t bit_index = s_task_map_pick[s_task_ready_table[table_index][bytes_index] >> 1]; + s_u8_t table_index = s_task_map_pick[s_task_table_index >> (SYSCFG_TASKPICKBITMAP & 1)]; + s_u8_t bytes_index = s_task_map_pick[s_task_bytes_index[table_index] >> (SYSCFG_TASKPICKBITMAP & 1)]; + s_u8_t bit_index = s_task_map_pick[s_task_ready_table[table_index][bytes_index] >> (SYSCFG_TASKPICKBITMAP & 1)]; s_u8_t pri = (table_index << 6) + (bytes_index << 3) + bit_index; #elif SYSCFG_TASKPRIORITY > 8 - s_u8_t bytes_index = s_task_map_pick[s_task_bytes_index >> 1]; - s_u8_t bit_index = s_task_map_pick[s_task_ready_table[bytes_index] >> 1]; + s_u8_t bytes_index = s_task_map_pick[s_task_bytes_index >> (SYSCFG_TASKPICKBITMAP & 1)]; + s_u8_t bit_index = s_task_map_pick[s_task_ready_table[bytes_index] >> (SYSCFG_TASKPICKBITMAP & 1)]; s_u8_t pri = (bytes_index << 3) + bit_index; #else - s_u8_t pri = s_task_map_pick[s_task_ready_table >> 1]; + s_u8_t pri = s_task_map_pick[s_task_ready_table >> (SYSCFG_TASKPICKBITMAP & 1)]; #endif return pri; }