二十四.SVC模式设置

1.uboot和内核都是工作在SVC模式

2.SVC模式能执行更多命令和访问更多寄存器

3.清除指令:bic

置位指令:orr

4.状态字寄存器访问指令:mrs,msr

@上电复位以后就执行这里
reset:
	bl	set_svc
	
set_svc:
	
	mrs	r0,	cpsr
	bic	r0,r0,#0x1F
	orr	r0,r0,#0xD3
	msr	cpsr,	r0
	mov	pc,	lr

完整start.s代码

@****************************
@File:start.S
@
@Tiny6410裸机上学期代码
@****************************

.text
.global _start


@异常向量表
_start:
	b	reset
	ldr 	pc,	_Undefined_instruction
	ldr 	pc,	_Software_interrupt
	ldr	pc,	_Command_abort
	ldr	pc,	_Data_abort
	ldr	pc,	_Nothing_used
	ldr	pc,	_IRQ
	ldr	pc,	_FIQ
	
	
	
	
@存放实际异常入口地址开辟的存储单元	
_Undefined_instruction:
	.word Undefined_instruction
	
_Software_interrupt:
	.word Software_interrupt
	
_Command_abort:
	.word Command_abort
	
_Data_abort:
	.word Data_abort
	
_Nothing_used:
	.word Nothing_used
	
_IRQ:
	.word IRQ
	
_FIQ:
	.word FIQ


@各种实际的异常处理函数
Undefined_instruction:
	nop

Software_interrupt:
	nop

Command_abort:
	nop
	
Data_abort:
	nop
	
Nothing_used:
	nop
	
IRQ:
	nop
	
FIQ:
	nop
	
	
	
@上电复位以后就执行这里
reset:
	bl	set_svc
	
set_svc:
	
	mrs	r0,	cpsr
	bic	r0,r0,#0x1F
	orr	r0,r0,#0xD3
	msr	cpsr,	r0
	mov	pc,	lr

	
	
	


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值