allows rewrite to interrupt enable/disable api to support independent interrupts management
This commit is contained in:
@ -11,6 +11,7 @@
|
||||
; * 2013-06-18 aozima add restore MSP feature.
|
||||
; * 2013-06-23 aozima support lazy stack optimized.
|
||||
; * 2018-07-24 aozima enhancement hard fault exception handler.
|
||||
; * 2024-08-13 Evlers allows rewrite to interrupt enable/disable api to support independent interrupts management
|
||||
; */
|
||||
|
||||
;/**
|
||||
@ -36,7 +37,8 @@ NVIC_PENDSVSET EQU 0x10000000 ; value to trigger PendSV excep
|
||||
;/*
|
||||
; * rt_base_t rt_hw_interrupt_disable();
|
||||
; */
|
||||
EXPORT rt_hw_interrupt_disable
|
||||
PUBWEAK rt_hw_interrupt_disable
|
||||
SECTION .text:CODE:REORDER:NOROOT(2)
|
||||
rt_hw_interrupt_disable:
|
||||
MRS r0, PRIMASK
|
||||
CPSID I
|
||||
@ -45,7 +47,8 @@ rt_hw_interrupt_disable:
|
||||
;/*
|
||||
; * void rt_hw_interrupt_enable(rt_base_t level);
|
||||
; */
|
||||
EXPORT rt_hw_interrupt_enable
|
||||
PUBWEAK rt_hw_interrupt_enable
|
||||
SECTION .text:CODE:REORDER:NOROOT(2)
|
||||
rt_hw_interrupt_enable:
|
||||
MSR PRIMASK, r0
|
||||
BX LR
|
||||
@ -208,6 +211,10 @@ rt_hw_context_switch_to:
|
||||
CPSIE F
|
||||
CPSIE I
|
||||
|
||||
; clear the BASEPRI register to disable masking priority
|
||||
MOV r0, #0x00
|
||||
MSR BASEPRI, r0
|
||||
|
||||
; ensure PendSV exception taken place before subsequent operation
|
||||
DSB
|
||||
ISB
|
||||
|
Reference in New Issue
Block a user