mirror of
https://github.com/QuantumLeaps/qpcpp.git
synced 2025-01-28 06:02:56 +08:00
6.3.6
This commit is contained in:
parent
f126d97199
commit
4fdcaf3c46
@ -1,11 +1,11 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Product: QK port to ARM7-9, GNU-ARM assembler
|
* Product: QK port to ARM7-9, GNU-ARM assembler
|
||||||
* Last Updated for Version: 5.8.2
|
* Last Updated for Version: 6.3.6
|
||||||
* Date of the Last Update: 2017-01-05
|
* Date of the Last Update: 2018-10-29
|
||||||
*
|
*
|
||||||
* Q u a n t u m L e a P s
|
* Q u a n t u m L e a P s
|
||||||
* ---------------------------
|
* ------------------------
|
||||||
* innovating embedded systems
|
* Modern Embedded Software
|
||||||
*
|
*
|
||||||
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
* Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
||||||
*
|
*
|
||||||
@ -28,7 +28,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* Contact information:
|
* Contact information:
|
||||||
* https://state-machine.com
|
* https://www.state-machine.com
|
||||||
* mailto:info@state-machine.com
|
* mailto:info@state-machine.com
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@ -39,7 +39,7 @@
|
|||||||
.equ SYS_MODE, 0x1F
|
.equ SYS_MODE, 0x1F
|
||||||
|
|
||||||
/* NOTE: keep in synch with the QK_Attr struct in "qk.h" !!! */
|
/* NOTE: keep in synch with the QK_Attr struct in "qk.h" !!! */
|
||||||
.equ QK_INT_NEST, 16
|
.equ QK_INT_NEST, 4
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.arm
|
.arm
|
||||||
@ -114,9 +114,9 @@ QK_irq:
|
|||||||
/* IRQ entry }}} */
|
/* IRQ entry }}} */
|
||||||
|
|
||||||
LDR r0,=QK_attr_ /* load address in already saved r0 */
|
LDR r0,=QK_attr_ /* load address in already saved r0 */
|
||||||
LDR r12,[r0,#QK_INT_NEST] /* load QK_attr_.intNest into saved r12 */
|
LDRB r12,[r0,#QK_INT_NEST] /* load QK_attr_.intNest into saved r12 */
|
||||||
ADD r12,r12,#1 /* increment the nesting level */
|
ADD r12,r12,#1 /* increment the nesting level */
|
||||||
STR r12,[r0,#QK_INT_NEST] /* store the value in QK_attr_.intNest */
|
STRB r12,[r0,#QK_INT_NEST] /* store the value in QK_attr_.intNest */
|
||||||
|
|
||||||
/* MSR cpsr_c,#(SYS_MODE | NO_IRQ) ; enable FIQ
|
/* MSR cpsr_c,#(SYS_MODE | NO_IRQ) ; enable FIQ
|
||||||
* NOTE: BSP_irq might re-enable IRQ interrupts (the FIQ is enabled
|
* NOTE: BSP_irq might re-enable IRQ interrupts (the FIQ is enabled
|
||||||
@ -128,9 +128,9 @@ QK_irq:
|
|||||||
|
|
||||||
MSR cpsr_c,#(SYS_MODE | NO_IRQ) /* make sure IRQs are disabled */
|
MSR cpsr_c,#(SYS_MODE | NO_IRQ) /* make sure IRQs are disabled */
|
||||||
LDR r0,=QK_attr_ /* load address */
|
LDR r0,=QK_attr_ /* load address */
|
||||||
LDR r12,[r0,#QK_INT_NEST] /* load QK_attr_.intNest into saved r12 */
|
LDRB r12,[r0,#QK_INT_NEST] /* load QK_attr_.intNest into saved r12 */
|
||||||
SUBS r12,r12,#1 /* decrement the nesting level */
|
SUBS r12,r12,#1 /* decrement the nesting level */
|
||||||
STR r12,[r0,#QK_INT_NEST] /* store the value in QK_attr_.intNest */
|
STRB r12,[r0,#QK_INT_NEST] /* store the value in QK_attr_.intNest */
|
||||||
BNE QK_irq_exit /* branch if interrupt nesting not zero */
|
BNE QK_irq_exit /* branch if interrupt nesting not zero */
|
||||||
|
|
||||||
LDR r12,=QK_sched_
|
LDR r12,=QK_sched_
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
; Product: QK port to ARM7/9, IAR-ARM Assembler
|
; Product: QK port to ARM7/9, IAR-ARM Assembler
|
||||||
; Last Updated for Version: 5.7.2
|
; Last Updated for Version: 6.3.6
|
||||||
; Date of the Last Update: 2016-09-26
|
; Date of the Last Update: 2018-10-29
|
||||||
;
|
;
|
||||||
; Q u a n t u m L e a P s
|
; Q u a n t u m L e a P s
|
||||||
; ---------------------------
|
; ------------------------
|
||||||
; innovating embedded systems
|
; Modern Embedded Software
|
||||||
;
|
;
|
||||||
; Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
; Copyright (C) Quantum Leaps, LLC. All rights reserved.
|
||||||
;
|
;
|
||||||
@ -28,7 +28,7 @@
|
|||||||
; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
;
|
;
|
||||||
; Contact information:
|
; Contact information:
|
||||||
; https://state-machine.com
|
; https://www.state-machine.com
|
||||||
; mailto:info@state-machine.com
|
; mailto:info@state-machine.com
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ IRQ_MODE DEFINE 0x12
|
|||||||
SYS_MODE DEFINE 0x1F
|
SYS_MODE DEFINE 0x1F
|
||||||
|
|
||||||
; NOTE: keep in synch with the QK_Attr struct in "qk.h" !!!
|
; NOTE: keep in synch with the QK_Attr struct in "qk.h" !!!
|
||||||
QK_INT_NEST DEFINE 16
|
QK_INT_NEST DEFINE 4
|
||||||
|
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
; Interrupt disabling/enabling and QK initialization
|
; Interrupt disabling/enabling and QK initialization
|
||||||
@ -94,9 +94,9 @@ QK_irq:
|
|||||||
; IRQ entry }}}
|
; IRQ entry }}}
|
||||||
|
|
||||||
LDR r0,=QK_attr_ ; load address in already saved r0
|
LDR r0,=QK_attr_ ; load address in already saved r0
|
||||||
LDR r12,[r0,#QK_INT_NEST] ; load QK_attr_.intNest into saved r12
|
LDRB r12,[r0,#QK_INT_NEST] ; load QK_attr_.intNest into saved r12
|
||||||
ADD r12,r12,#1 ; increment the nesting level
|
ADD r12,r12,#1 ; increment the nesting level
|
||||||
STR r12,[r0,#QK_INT_NEST] ; store the value in QK_attr_.intNest
|
STRB r12,[r0,#QK_INT_NEST] ; store the value in QK_attr_.intNest
|
||||||
|
|
||||||
; MSR cpsr_c,#(SYS_MODE | NO_IRQ) ; enable FIQ
|
; MSR cpsr_c,#(SYS_MODE | NO_IRQ) ; enable FIQ
|
||||||
; NOTE: BSP_irq might re-enable IRQ interrupts (the FIQ is enabled
|
; NOTE: BSP_irq might re-enable IRQ interrupts (the FIQ is enabled
|
||||||
@ -109,9 +109,9 @@ QK_irq:
|
|||||||
|
|
||||||
MSR cpsr_c,#(SYS_MODE | NO_IRQ) ; make sure IRQs are disabled
|
MSR cpsr_c,#(SYS_MODE | NO_IRQ) ; make sure IRQs are disabled
|
||||||
LDR r0,=QK_attr_ ; load address
|
LDR r0,=QK_attr_ ; load address
|
||||||
LDR r12,[r0,#QK_INT_NEST] ; load QK_attr_.intNest into saved r12
|
LDRB r12,[r0,#QK_INT_NEST] ; load QK_attr_.intNest into saved r12
|
||||||
SUBS r12,r12,#1 ; decrement the nesting level
|
SUBS r12,r12,#1 ; decrement the nesting level
|
||||||
STR r12,[r0,#QK_INT_NEST] ; store the value in QK_attr_.intNest
|
STRB r12,[r0,#QK_INT_NEST] ; store the value in QK_attr_.intNest
|
||||||
BNE QK_irq_exit ; branch if interrupt nesting not zero
|
BNE QK_irq_exit ; branch if interrupt nesting not zero
|
||||||
|
|
||||||
LDR r12,=QK_sched_
|
LDR r12,=QK_sched_
|
||||||
|
Loading…
x
Reference in New Issue
Block a user