1.鸿蒙轻内核M核的源码故障管家:Fault异常处理
鸿蒙轻内核M核的故障管家:Fault异常处理
摘要:本文简要介绍了Fault异常类型、向量表及其代码,源码以及异常处理的源码C语言程序,随后详细分析了异常处理汇编函数的源码实现代码。
本文内容来源于华为云社区《鸿蒙轻内核M核源码分析系列十八 Fault异常处理》,源码作者:zhushy。源码asp.net 企业网站源码
Fault异常处理模块与OpenHarmony LiteOS-M内核芯片架构紧密相关,源码它能够处理HardFault、源码MemManage、源码BusFault、源码UsageFault等故障异常。源码关于Cortex-M芯片的源码相关知识,不在本文的源码javaspring框架源码解析讨论范围内,读者可参考《Cortex™-M7 Devices Generic User Guide》等官方资料。源码本文所涉及的源码源码以OpenHarmony LiteOS-M内核为例,可在开源站点gitee.com/openharmony/k...获取。
1、Fault Type异常类型
Fault类型表格显示了各种故障及其处理机制、Bit Name标记、h站源码免费Fault status register故障状态寄存器。该表格摘自《Cortex™-M7 Devices Generic User Guide》。
2、Vector table向量表
向量表包含栈指针的复位值和开始地址,也称为异常向量。异常可以看作特殊的j收问道源码中断,本文主要关注NMI、HardFault、Memory management fault、Bus fault、Usage fault、SVCall等异常。广西友乐源码
在中断初始化时,会初始化该异常向量表,代码位于kernel\arch\arm\cortex-m7\gcc\los_interrupt.c。本文主要分析这些汇编函数的代码。
3、HalExcHandleEntry异常处理C程序入口
HalExcHandleEntry异常处理函数是汇编异常函数跳转到C语言程序的入口,定义在文件kernel\arch\arm\cortex-m7\gcc\los_interrupt.c,被kernel\arch\arm\cortex-m7\gcc\los_exc.S文件中的汇编函数调用。函数参数由汇编程序中的R0-R3寄存器传值进来。
4、Los_Exc异常处理汇编函数
上文介绍了Vector table向量表,已经提到了在文件kernel\arch\arm\cortex-m7\gcc\los_exc.S中定义的异常处理函数。当发生Fault故障异常时,会调度执行这些异常处理函数,本文会详细分析函数的源代码来掌握内核如何处理这些发生的异常。
本文介绍了Fault异常类型、向量表及其代码,异常处理C语言程序,异常处理汇编函数实现代码。感谢阅读,如有任何问题、建议,都可以在博客下留言给我,谢谢。