- 异常向量表需要背下来
- @ == 汇编的注释符号
第一节 异常是什么
异常有哪些 | 中断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
效果如下