⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beginvector.s

📁 s32410串口demo, 开发工具ads1.2,实现串口通信.
💻 S
字号:
;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;
	
	IMPORT	mmain
	IMPORT  do_undefined_instruction
	IMPORT  do_software_interrupt
	IMPORT  do_prefetch_abort
	IMPORT	do_data_abort
	IMPORT	do_not_used
	IMPORT	do_irq
	IMPORT	do_frq
	
	import	|Image$$ZI$$Limit|
	
	macro
$label  save_reg $label2

$label
	stdmf	sp, {r0-r7}!
	stdmf	sp, {lr,r12}!
	mend


	
	AREA BeginRam, CODE, READONLY
	
	code32
	
	ENTRY

vector

	b  	_reset_addr
	b 	_undefined_instruction
	b 	_software_interrupt
	b 	_prefetch_abort
	b	_data_abort
	b	_not_used
	b	_irq
	b	_fiq


_undefined_instruction	
	bl  do_undefined_instruction

_software_interrupt	
	bl  do_software_interrupt

	
_prefetch_abort	
	bl  do_prefetch_abort

_data_abort	
	bl	do_data_abort		
	
_not_used	
	bl	do_not_used

_irq
	bl	do_irq
		
_fiq		
	bl	do_frq
	
	
_reset_addr
	;;;;;;;;;;;;;;;;;; config the stack in every mode
	bl InitStack

	bl mmain

loop
	b loop


InitStack    
		MRS 	R0, CPSR
        MSR     CPSR_c, #0xd3
        LDR     SP, StackSvc
        MSR     CPSR_c, #0xd2
        LDR     SP, StackIrq
        MSR     CPSR_c, #0xd1
        LDR     SP, StackFiq
        MSR     CPSR_c, #0xd7
        LDR     SP, StackAbt
        MSR     CPSR_c, #0xdb
        LDR     SP, StackUnd
        MSR     CPSR_c, #0xdf
        LDR     SP, StackUsr	
		MSR     CPSR_c, R0
        MOV 	PC,LR

USR_STACK_LEGTH     EQU         64
SVC_STACK_LEGTH     EQU         64
FIQ_STACK_LEGTH     EQU         64
IRQ_STACK_LEGTH     EQU         64
ABT_STACK_LEGTH     EQU         16
UND_STACK_LEGTH     EQU         16
        
StackUsr           DCD     UsrStackSpace + (USR_STACK_LEGTH - 1) * 4
StackSvc           DCD     SvcStackSpace + (SVC_STACK_LEGTH - 1)* 4
StackIrq           DCD     IrqStackSpace + (IRQ_STACK_LEGTH - 1)* 4
StackFiq           DCD     FiqStackSpace + (FIQ_STACK_LEGTH - 1)* 4
StackAbt           DCD     AbtStackSpace + (ABT_STACK_LEGTH - 1)* 4
StackUnd           DCD     UndtStackSpace + (UND_STACK_LEGTH - 1)* 4
    
    
    AREA    MyStacks, DATA, NOINIT, ALIGN=4
UsrStackSpace      SPACE   USR_STACK_LEGTH * 4  ;用户(系统)模式堆栈空间
SvcStackSpace      SPACE   SVC_STACK_LEGTH * 4  ;管理模式堆栈空间
IrqStackSpace      SPACE   IRQ_STACK_LEGTH * 4  ;中断模式堆栈空间
FiqStackSpace      SPACE   FIQ_STACK_LEGTH * 4  ;快速中断模式堆栈空间
AbtStackSpace      SPACE   ABT_STACK_LEGTH * 4  ;中止义模式堆栈空间
UndtStackSpace     SPACE   UND_STACK_LEGTH * 4  ;未定义模式堆栈

	
	END
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -