arch/arm/kernel/entry-armv.S
1183 .L__vectors_start:
...
1185 W(b) vector_und
1120 /*
1121 * Undef instr entry dispatcher
1122 * Enter in UND mode, spsr = SVC/USR CPSR, lr = SVC/USR PC
1123 */
1124 vector_stub und, UND_MODE
1125
1126 .long __und_usr @ 0 (USR_26 / USR_32)
1127 .long __und_invalid @ 1 (FIQ_26 / FIQ_32)
1128 .long __und_invalid @ 2 (IRQ_26 / IRQ_32)
1129 .long __und_svc @ 3 (SVC_26 / SVC_32)
1130 .long __und_invalid @ 4
1131 .long __und_invalid @ 5
1132 .long __und_invalid @ 6
1133 .long __und_invalid @ 7
1134 .long __und_invalid @ 8
1135 .long __und_invalid @ 9
1136 .long __und_invalid @ a
1137 .long __und_invalid @ b
1138 .long __und_invalid @ c
1139 .long __und_invalid @ d
1140 .long __und_invalid @ e
1141 .long __und_invalid @ f
1142
246 __und_svc:
...
260 bl __und_fault
232 __und_fault:
...
242 b do_undefinstr
arch/arm/kernel/traps.c
do_undefinstr
instr = __mem_to_opcode_arm(*(u32 *) pc);
call_undef_hook(regs, instr)
list_for_each_entry(hook, &undef_hook, node) fn = hook->fn;
fn(regs, instr)
arm_mrc_hook_init
register_undef_hook(&arm_mrc_hook);
ptrace_break_init
register_undef_hook(&arm_break_hook);
register_undef_hook(&thumb_break_hook);
register_undef_hook(&thumb2_break_hook);
tcm_init
register_undef_hook(&tcm_hook);
440 __und_usr:
...
474 b call_fpe
...
528 ENDPROC(__und_usr)
579 call_fpe:
...
618 W(b) do_fpe @ CP#1 (FPE)
675 do_fpe:
...
678 ldr pc, [r4] @ Call FP module USR entry point
上一篇:OK6410A 开发板 (八) 60 linux-5.11 OK6410A 异常相关初始化
下一篇:OK6410A 开发板 (八) 58 linux-5.11 OK6410A fiq 异常
推荐阅读最新更新时间:2024-11-01 18:32
设计资源 培训 开发板 精华推荐
- 使用 RP40-11012SFR DC/DC 转换器并根据 EN55022 B 类(110Vin 双输出)进行 EMC 滤波的典型应用
- 应用提示 7 使用 3V 低电流 LDO 稳压器
- #第七届立创电赛#小电流表
- 使用 Analog Devices 的 LTC3621IDCB-3.3 的参考设计
- LTC1863LCGN 微功率、3V、12 位、8 通道、175ksps ADC 的典型应用电路
- L7808C 可调输出稳压器的典型应用(7 至 30 V)
- 基于 ADA4897-2 的磁阻 (MR) 转速传感器
- EVAL-ADuC824QSZ,用于 ADuC824 微转换器 MCU 的 ADuC8xx 评估套件
- OP284FSZ-REEL 3V 单电源、50Hz 至 60Hz 有源陷波滤波器和假接地的典型应用
- L7809C负输出电压电路的典型应用