- 博客(2)
- 收藏
- 关注
原创 Linux kernel ARM64异常(Exception)处理流程
背景:异常(Exception)发生是针对CPU的,本来CPU就在不同异常等级(exception level)运行。ARM64中有4个异常等级,分别是EL0, EL1, EL2, EL3注意区分:异常发生的等级,以及跃迁到的目标异常等级,目标异常等级大于等于异常发生的等级,EL0不会是目标异常等级异常类型分为同步异常和异步异常, 同步异常只有Synchronous,其它3个类型都是异步异常。异常发生时,硬件做的事情:(1)CPU core感知到异常发生,生成一个目标异常等级(2)把PSTAT
2021-08-28 13:47:21
1126
原创 Linux kernel ARM64 寄存器tpidr_el1 的用处
存放当前cpu的per_cpu的offset值,来自__per_cpu_offset[x]在计算per_cpu变量对应当前cpu的实际虚拟地址时会用到。案例(对per_cpu变量overflow_stack的获取):arch/arm64/kernel/entry.S/* Switch to the overflow stack */adr_this_cpu sp, overflow_stack + OVERFLOW_STACK_SIZE, x0...
2021-08-20 22:30:49
2390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人