码迷,mamicode.com
首页 > 其他好文 > 详细

核心初始化

时间:2018-03-17 15:27:26      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:ref   loader   span   ssi   中断   一个   异常处理   增加   roman   

异常处理

 

总共有七中的异常情况:

1reset

2undefined instruct(不支持命令异常)

3:软件中断

4:指令预取失败异常

5:数据读取失败异常

6:中断

7:快速中断(比一般的中断处理速度快一些)

 

中断向量:

当中断发生时,处理器就会跳转到一个固定的地址去处理指令

 .globl _start 

_start: b reset 

ldr pc, _undefined_instruction 

ldr pc, _software_interrupt 

ldr pc, _prefetch_abort 

ldr pc, _data_abort 

ldr pc, _not_used 

ldr pc, _irq 

ldr pc, _fiq 

 

_undefined_instruction: .word undefined_instruction 

_software_interrupt: .word software_interrupt 

_prefetch_abort: .word prefetch_abort 

_data_abort: .word data_abort 

_not_used: .word not_used 

_irq: .word irq 

_fiq: .word fiq

 

undefined_instruction:

            nop

software_interrupt:

            nop

prefetch_abort:

            nop

data_abort:

    nop

not_used:

            nop

irq:

    nop

fip:

   nop

注:

.word expression就是在当前位置放一个word型的值,这个值就是expression.这里为什么不用指令(ldr pc,=inddefined_instruction ),是因为使用这条指令会增加指令执行周期,从而比较耗时,但是对于bootloader 来时说时间是很重要的资源

 

核心初始化

标签:ref   loader   span   ssi   中断   一个   异常处理   增加   roman   

原文地址:https://www.cnblogs.com/big-devil/p/8589439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!