• 异常向量表需要背下来
  • @ == 汇编的注释符号

第一节 异常是什么

异常有哪些 中断IRQ (硬件触发)

软中断 (系统调用)

复位 (reset)

未定义指令(undefined instruction)

数据异常 (data abort)

第二节 异常之中断异常

ARM中断 FIQ

IRQ
中断控制器 决定响应谁
中断响应大致流程

第三节 软中断汇编程序(重要)

;1进入0x00地址的复位异常作为开始程序 :2编写用户软件中断程序soft_handler ;3进入用户软件中断程序,执行后退出
	area example,code,readonly
	entry

start

	 b reset ;0x00 0号异常reset
	 nop ;0x04 1号异常undefined instruction
	 b soft_hander ;0x08 2号异常software interrupt
	 nop ;0x0c 3号异常prefetch abort
	 nop ;0x10 4号异常data abort
	 nop ;0x14 5号异常reserved
	 nop ;0x18 6号异常irq
	 nop ;0x1c 7号异常fiq
		 
reset ;复位函数
	mov r0,#1 swi 2 ;swi进入2号异常,并保存返回地址
	b reset	

soft_hander ;软件中断处理函数
	mov r0,#0 mov pc,lr ;P14 = LR(保存下一步PC) ;恢复现场第17行代码,执行第18行代码 
end

效果如下

第三节 用户空间 <=切换=> 内核空间