mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-02-05 11:29:44 +08:00
@@ -3,8 +3,8 @@
|
||||
* @file os_handler.c
|
||||
* @brief SysTick2_Handler and PendSV2_Handler
|
||||
* @author 迟凯峰
|
||||
* @version V2.2.0
|
||||
* @date 2024.04.18
|
||||
* @version V2.2.1
|
||||
* @date 2024.04.20
|
||||
******************************************************************************/
|
||||
|
||||
#include "os_link.h"
|
||||
@@ -756,12 +756,13 @@ void PendSV2_Handler(void) MCUCFG_PENDSV_ATTRIBUTE
|
||||
MOV DPH, s_task_current
|
||||
MOV A, SP
|
||||
SUBB A, #?STACK-1
|
||||
MOV R1, A
|
||||
MOVX @DPTR, A
|
||||
SUBB A, #6
|
||||
MOV R1, A
|
||||
|
||||
CLR C
|
||||
MOV A, m_bsp_add
|
||||
ADD A, s_task_current+1
|
||||
MOV A, s_task_current+1
|
||||
ADD A, m_bsp_add
|
||||
MOV DPL, A
|
||||
JNC LABLE_A0
|
||||
INC DPH
|
||||
@@ -776,6 +777,30 @@ LABLE_A0: MOVX A, @DPTR
|
||||
|
||||
MOV R0, #?STACK
|
||||
|
||||
MOV A, @R0
|
||||
MOVX @DPTR, A
|
||||
INC R0
|
||||
INC DPTR
|
||||
MOV A, @R0
|
||||
MOVX @DPTR, A
|
||||
INC R0
|
||||
INC DPTR
|
||||
MOV A, @R0
|
||||
MOVX @DPTR, A
|
||||
INC R0
|
||||
INC DPTR
|
||||
MOV A, @R0
|
||||
MOVX @DPTR, A
|
||||
INC R0
|
||||
INC DPTR
|
||||
MOV A, @R0
|
||||
MOVX @DPTR, A
|
||||
INC R0
|
||||
INC DPTR
|
||||
MOV A, @R0
|
||||
MOVX @DPTR, A
|
||||
INC R0
|
||||
INC DPTR
|
||||
LABLE_A1: MOV A, @R0
|
||||
MOVX @DPTR, A
|
||||
INC R0
|
||||
@@ -783,13 +808,14 @@ LABLE_A1: MOV A, @R0
|
||||
DJNZ R1, LABLE_A1
|
||||
|
||||
#if MCUCFG_SYSTICKREGBANK
|
||||
MOV A, m_reg_add
|
||||
ADD A, s_task_current+1
|
||||
MOV A, s_task_current+1
|
||||
ADD A, m_reg_add
|
||||
MOV DPL, A
|
||||
JNC LABLE_A2
|
||||
INC DPH
|
||||
CLR A
|
||||
ADDC A, s_task_current
|
||||
MOV DPH, A
|
||||
|
||||
LABLE_A2: MOV A, 0x00
|
||||
MOV A, 0x00
|
||||
MOVX @DPTR, A
|
||||
INC DPTR
|
||||
MOV A, 0x01
|
||||
@@ -832,13 +858,12 @@ LABLE_A2: MOV A, 0x00
|
||||
MOV DPL, s_task_current+1
|
||||
MOV DPH, s_task_current
|
||||
MOVX A, @DPTR
|
||||
SUBB A, #6
|
||||
MOV R1, A
|
||||
ADD A, #?STACK-1
|
||||
MOV SP, A
|
||||
|
||||
CLR C
|
||||
MOV A, m_bsp_add
|
||||
ADD A, s_task_current+1
|
||||
MOV A, s_task_current+1
|
||||
ADD A, m_bsp_add
|
||||
MOV DPL, A
|
||||
JNC LABLE_B0
|
||||
INC DPH
|
||||
@@ -851,22 +876,40 @@ LABLE_B0: MOVX A, @DPTR
|
||||
MOV DPH, R0
|
||||
MOV DPL, A
|
||||
|
||||
MOV R0, #?STACK
|
||||
MOV SP, #?STACK-1
|
||||
|
||||
MOVX A, @DPTR
|
||||
PUSH ACC
|
||||
INC DPTR
|
||||
MOVX A, @DPTR
|
||||
PUSH ACC
|
||||
INC DPTR
|
||||
MOVX A, @DPTR
|
||||
PUSH ACC
|
||||
INC DPTR
|
||||
MOVX A, @DPTR
|
||||
PUSH ACC
|
||||
INC DPTR
|
||||
MOVX A, @DPTR
|
||||
PUSH ACC
|
||||
INC DPTR
|
||||
MOVX A, @DPTR
|
||||
PUSH ACC
|
||||
INC DPTR
|
||||
LABLE_B1: MOVX A, @DPTR
|
||||
MOV @R0, A
|
||||
INC R0
|
||||
PUSH ACC
|
||||
INC DPTR
|
||||
DJNZ R1, LABLE_B1
|
||||
|
||||
#if MCUCFG_SYSTICKREGBANK
|
||||
MOV A, m_reg_add
|
||||
ADD A, s_task_current+1
|
||||
MOV A, s_task_current+1
|
||||
ADD A, m_reg_add
|
||||
MOV DPL, A
|
||||
JNC LABLE_B2
|
||||
INC DPH
|
||||
CLR A
|
||||
ADDC A, s_task_current
|
||||
MOV DPH, A
|
||||
|
||||
LABLE_B2: MOVX A, @DPTR
|
||||
MOVX A, @DPTR
|
||||
MOV 0x00, A
|
||||
INC DPTR
|
||||
MOVX A, @DPTR
|
||||
|
||||
Reference in New Issue
Block a user