mirror of
https://github.com/azure-rtos/threadx
synced 2025-01-16 07:42:57 +08:00
move the swi interrupt to tx_initialize_low_level.S.
This commit is contained in:
parent
7653725ca2
commit
220cb42ad1
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -23,7 +23,12 @@
|
||||
#include "tx_user.h"
|
||||
#endif
|
||||
|
||||
.syntax unified
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb
|
||||
#else
|
||||
.arm
|
||||
#endif
|
||||
|
||||
SVC_MODE = 0xD3 // Disable IRQ/FIQ SVC mode
|
||||
IRQ_MODE = 0xD2 // Disable IRQ/FIQ IRQ mode
|
||||
@ -48,22 +53,6 @@ SYS_STACK_SIZE = 1024 // System stack size
|
||||
.global enableCaches
|
||||
.global init_private_timer
|
||||
.global start_private_timer
|
||||
/* Define the 16-bit Thumb mode veneer for _tx_initialize_low_level for
|
||||
applications calling this function from to 16-bit Thumb mode. */
|
||||
|
||||
.text
|
||||
.align 2
|
||||
.thumb
|
||||
.global $_tx_initialize_low_level
|
||||
.type $_tx_initialize_low_level,function
|
||||
$_tx_initialize_low_level:
|
||||
BX pc // Switch to 32-bit mode
|
||||
NOP //
|
||||
.arm
|
||||
STMFD sp!, {lr} // Save return address
|
||||
BL _tx_initialize_low_level // Call _tx_initialize_low_level function
|
||||
LDMFD sp!, {lr} // Recover saved return address
|
||||
BX lr // Return to 16-bit caller
|
||||
|
||||
.text
|
||||
.align 2
|
||||
@ -113,6 +102,9 @@ $_tx_initialize_low_level:
|
||||
/* resulting in version 6.3.0 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global _tx_initialize_low_level
|
||||
.type _tx_initialize_low_level,function
|
||||
_tx_initialize_low_level:
|
||||
@ -201,34 +193,49 @@ _stack_error_loop:
|
||||
BL start_private_timer
|
||||
|
||||
POP {lr}
|
||||
#ifdef __THUMB_INTERWORK
|
||||
|
||||
BX lr // Return to caller
|
||||
#else
|
||||
MOV pc, lr // Return to caller
|
||||
#endif
|
||||
|
||||
/* Define shells for each of the interrupt vectors. */
|
||||
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_undefined
|
||||
__tx_undefined:
|
||||
B __tx_undefined // Undefined handler
|
||||
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
B __tx_swi_interrupt // Software interrupt handler
|
||||
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_prefetch_handler
|
||||
__tx_prefetch_handler:
|
||||
B __tx_prefetch_handler // Prefetch exception handler
|
||||
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_abort_handler
|
||||
__tx_abort_handler:
|
||||
B __tx_abort_handler // Abort exception handler
|
||||
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_reserved_handler
|
||||
__tx_reserved_handler:
|
||||
B __tx_reserved_handler // Reserved exception handler
|
||||
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_irq_handler
|
||||
.global __tx_irq_processing_return
|
||||
__tx_irq_handler:
|
||||
@ -302,6 +309,9 @@ by_pass_timer_interrupt:
|
||||
|
||||
|
||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_fiq_handler
|
||||
.global __tx_fiq_processing_return
|
||||
__tx_fiq_handler:
|
||||
@ -336,6 +346,9 @@ __tx_fiq_processing_return:
|
||||
|
||||
|
||||
#else
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_fiq_handler
|
||||
__tx_fiq_handler:
|
||||
B __tx_fiq_handler // FIQ interrupt handler
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
@ -40,19 +40,6 @@
|
||||
#define IRQ_MODE 0x12 // IRQ mode
|
||||
#define SVC_MODE 0x13 // SVC mode
|
||||
|
||||
/**************************************************************************/
|
||||
/* SVC exception */
|
||||
/**************************************************************************/
|
||||
/* SVC is only used by the ModuleManager but the symbol is needed even if it is not used. */
|
||||
#if defined(THUMB_MODE)
|
||||
.thumb_func
|
||||
#endif
|
||||
.global __tx_swi_interrupt
|
||||
__tx_swi_interrupt:
|
||||
BKPT 0x0000
|
||||
__tx_swi_interrupt_loop:
|
||||
B __tx_swi_interrupt_loop
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
|
Loading…
x
Reference in New Issue
Block a user