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

📄 remap.s

📁 周立功单片机ARM学习板easyARM2104的测试程序等
💻 S
字号:
;******************************************************************************	
; File:REMAP.S
; 功能:REMAP控制操作。
; 说明:在REMAP前观察0x00000000-0x0000003F处的数据,REMAP后再次读出观察。
;      对REMAP的空间0x4000000-0x4000003F进行修改,观察0x00000000-0x0000003F处的数据。
;******************************************************************************	
			INCLUDE		LPC2106.INC			; 引入头文件
		
	
			AREA   		DoRemap,CODE,READONLY
			ENTRY							; 程序入口
		
STARTC 		; 进行系统初始化
			MSR     CPSR_c,#0xD3			; 设置各种模式下的堆栈,
	   		LDR     SP,=0x40003000

    		MSR     CPSR_c,#0xD2
    		LDR     SP,=0x40003100

    		MSR     CPSR_c,#0xD1
    		LDR     SP,=0x40003200

    		MSR     CPSR_c,#0x10
    		LDR		SP,=0x40003300
    	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
			   		

			; REMAP操作
REMAPS		MOV		R0,#0x40000000			; 复制中断向量代码
			LDR		R1,=Vectors
			LDMIA	R1!,{R2-R9}
			STMIA	R0!,{R2-R9}
			LDMIA	R1!,{R2-R9}
			STMIA	R0!,{R2-R9}
			
			LDR		R0,=MEMMAP				; REMAP操作					
			MOV		R1,#0x02
			STR		R1,[R0]
			
			; 修改中断向量
			LDR		R0,=0x40000028			; 修改SWI中断向量,使其指向HALT
			LDR		R1,=HALT				
			STR		R1,[R0]
			
			; 运行SWI中断
			SWI		0x123456
			NOP
			
HALT		NOP			
			B		HALT
			
			
			; 定义中断向量表,用于REMAP		
			AREA    Vect,CODE,READONLY
Vectors
        	LDR     PC, ResetAddr
        	LDR     PC, UndefinedAddr
        	LDR     PC, SWI_Addr
        	LDR     PC, PrefetchAddr
        	LDR     PC, DataAbortAddr
        	NOP
        	LDR     PC, IRQ_Addr
        	LDR     PC, FIQ_Addr

ResetAddr         	DCD     Reset
UndefinedAddr       DCD     Undefined
SWI_Addr            DCD     SoftwareInterrupt
PrefetchAddr        DCD     PrefetchAbort
DataAbortAddr       DCD     DataAbort
Nouse               DCD     0
IRQ_Addr            DCD     IRQ_Handler
FIQ_Addr            DCD     FIQ_Handler



; 中断服务程序
Reset
Undefined
SoftwareInterrupt
PrefetchAbort
DataAbort
IRQ_Handler
FIQ_Handler
			B		.

		
			END

⌨️ 快捷键说明

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