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

📄 boot.asm

📁 以TI 公司的OMAP5910为例
💻 ASM
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;            Copyright (C) 2004, Eyoka @ Microunit
;                           All Rights Reserved
;________________________________________________________________________
;
; FILENAME:    boot.asm
; PROJECT:     High-Resolution Video System On OMAP
; MODULE:      MPU Framework
; DESCRIPTION: Initialize system stack pointers at bootup.
; TARGET CPU:  ARM-925T of OMAP5910
; VERSION:     0.1
;________________________________________________________________________
;
; REVISE HISTORY
; DATE         VERSION AUTHOR  DESCRIPTION
; 2004-11-03   0.1     Eyoka   Created.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	.global		_c_int00
	.global		__reset
	.global		__svc_stack
	.global		__und_stack
	.global		__abt_stack
	.global		__irq_stack
	.global		__fiq_stack

_SVC_STACK_SIZE		.set	0x200
_UND_STACK_SIZE		.set	0x200
_ABT_STACK_SIZE		.set	0x200
_IRQ_STACK_SIZE		.set	0x800
_FIQ_STACK_SIZE		.set	0x200

__svc_stack	.usect	".svc_stack", _SVC_STACK_SIZE, 4
__und_stack	.usect	".und_stack", _UND_STACK_SIZE, 4
__abt_stack	.usect	".abt_stack", _ABT_STACK_SIZE, 4
__irq_stack	.usect	".irq_stack", _IRQ_STACK_SIZE, 4
__fiq_stack	.usect	".fiq_stack", _FIQ_STACK_SIZE, 4

	.sect ".text"

_svc_stack	.word	__svc_stack
_und_stack	.word	__und_stack
_abt_stack	.word	__abt_stack
_irq_stack	.word	__irq_stack
_fiq_stack	.word	__fiq_stack

_svc_size	.word	_SVC_STACK_SIZE
_und_size	.word	_UND_STACK_SIZE
_abt_size	.word	_ABT_STACK_SIZE
_irq_size	.word	_IRQ_STACK_SIZE
_fiq_size	.word	_FIQ_STACK_SIZE


			;***********************************************
__reset		;* Reset Status: ARM is in Supervisor mode
			;* 	IRQ & FIQ is masked(disabled) in CPSR
			;***********************************************

			;***********************************************
			;* Set Supervisor Mode Stack Pointer(R13_SVC)
			;***********************************************
			LDR     SP, _svc_stack
			LDR     R0, _svc_size
			ADD		SP, SP, R0

			;***********************************************
			;* Switch Mode to Undefined: 11011
			;***********************************************
			MRS		R0, CPSR
			BIC		R0, R0, #0x1F
			ORR		R0, R0, #0x1B
			MSR		CPSR, R0

			;***********************************************
			;* Set Undefined Mode Stack Pointer(R13_UND)
			;***********************************************
			LDR     SP, _und_stack
			LDR     R0, _und_size
			ADD		SP, SP, R0

			;***********************************************
			;* Switch Mode to Abort: 10111
			;***********************************************
			MRS		R0, CPSR
			BIC		R0, R0, #0x1F
			ORR		R0, R0, #0x17
			MSR		CPSR, R0

			;***********************************************
			;* Set Abort Mode Stack Pointer(R13_Abort)
			;***********************************************
			LDR     SP, _abt_stack
			LDR     R0, _abt_size
			ADD		SP, SP, R0

			;***********************************************
			;* Switch Mode to IRQ: 10010
			;***********************************************
			MRS		R0, CPSR
			BIC		R0, R0, #0x1F
			ORR		R0, R0, #0x12
			MSR		CPSR, R0

			;***********************************************
			;* Set IRQ Mode Stack Pointer(R13_IRQ)
			;***********************************************
			LDR     SP, _irq_stack
			LDR     R0, _irq_size
			ADD		SP, SP, R0

			;***********************************************
			;* Switch Mode to FIQ: 10001
			;***********************************************
			MRS		R0, CPSR
			BIC		R0, R0, #0x1F
			ORR		R0, R0, #0x11
			MSR		CPSR, R0

			;***********************************************
			;* Set FIQ Mode Stack Pointer(R13_FIQ)
			;***********************************************
			LDR     SP, _fiq_stack
			LDR     R0, _fiq_size
			ADD		SP, SP, R0

			;***********************************************
			;* Go to Complier's C Entry.
			;***********************************************
			B		_c_int00



; the end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

⌨️ 快捷键说明

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