单片机的异常处理
大家好,我是陈老师,本篇文章给大家介绍单片机在运行过程重的异常处理。在ARM处理器中,假如一个程序产生了错误并且被处理器检测到,这是就会产生错误异常。
错误是怎么发生的呢?
许多可能的理由都会引起错误发生,假如对于存储器有关错误,总线系统的异常响应能够有以下理由:
访问的地址非法;
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像白色字体加我也能领取哦,记得口令陈老师///
由于传输的类型非法,总线的从设备不承受此次传输(从设备决定)
由于传输未使能或初始化,总线的从设备没法进行此次传输(例如,假如外设的时钟被关闭,那么访问这个外设时,微控制器就可能会产生错误响应)。
当确定了硬件错误异常的直接理由以后,我们可能还得花费一些时长来确定问题的根源。例如,总线错误能够由很多种情况引发,例如错误的指针操作、栈空间损坏、内存溢出、非法存储器映射以及其他理由。
分析错误
依据错误类型的不同,通常能够直接确定引起硬件错误异常的指令的位置。要达到这个目标,就须要知道进入硬件错误异常时的寄存器的内容,以及异常处理前压入栈中的寄存器的内容。这些值中包括了程序返回地址,通过它也能知道引起错误的指令地址。
假如运用了调试器,那么可在工程中创建硬件错误异常处理,并且在其中添加一个用以暂停处理器的断点指令;或者也能够在硬件错误异常处理的初始局部设置一个断点,这样当硬件错误发生时,处理器就会自动暂停。在处理器由于硬件错误暂停后ÿ