0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深入探讨单片机异常处理

单片机匠人 来源:单片机匠人 作者: 黄忠老师 2021-10-20 10:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

ARM处理器中,如果一个程序产生了错误并且被处理器检测到,这是就会产生错误异常。

错误是怎么发生的呢?

许多可能的原因都会引起错误发生,比如对于存储器相关错误,总线系统的异常响应可以有以下原因:

访问的地址非法;

由于传输的类型非法,总线的从设备不接受此次传输(从设备决定)

由于传输未使能或初始化,总线的从设备无法进行此次传输(例如,如果外设的时钟被关闭,那么访问这个外设时,微控制器就可能会产生错误响应)。

当确定了硬件错误异常的直接原因以后,我们可能还得花费一些时间来确定问题的根源。例如,总线错误可以由很多种情况引发,例如错误的指针操作、栈空间损坏、内存溢出、非法存储器映射以及其他原因。

分析错误

根据错误类型的不同,通常能够直接确定引起硬件错误异常的指令的位置。要实现这个目的,就需要知道进入硬件错误异常时的寄存器的内容,以及异常处理前压入栈中的寄存器的内容。这些值中包含了程序返回地址,通过它也能知道引起错误的指令地址。

如果使用了调试器,那么可在工程中创建硬件错误异常处理,并且在其中添加一个用以暂停处理器的断点指令;或者也可以在硬件错误异常处理的开始部分设置一个断点,这样当硬件错误发生时,处理器就会自动暂停。在处理器由于硬件错误暂停后,我们就可以尝试着按照下面图的流程对错误进行定位。

为了给分析提供更多的信息,也可以生成程序映像的汇编代码,并且利用在栈帧中找到的PC值确定错误的位置。如果错误的地址为存储器访问指令,就应该检查寄存器的值确定存储器访问的地址是否合法。除了检查地址范围,也应该确认存储器的地址是否正确地对齐。

除了压入栈中的PC值(返回地址),栈帧中也包含了其他有助于调试的寄存器值。例如,压入栈的IPSR能够反映处理器是否在进行异常处理,EPSR则代表了处理器状态(EPSR的T位为0,则表示错误由意外切换至ARM状态引起)。

栈中的LR也可能会提供一些信息,例如发生错误的函数的返回地址,错误是否发生在异常处理中,以及EXC_RETURN的值是否被异常破坏等。

另外,当前的寄存器值也可以提供有助于定位错误原因的各种信息,除了当前栈指针的值,当前的链接寄存器的值也可能有帮助。如果LR中为非法的EXC_RETURN的值,这就意味着它在前面异常处理中被错误地修改了。

CONTROL寄存器也可以提供帮助。在没有OS的简单应用程序中,进程栈指针(PSP)不会被用到,并且CONTROL寄存器会一直保持为0。如果CONTROL寄存器被设置为0x2(PSP用于线程状态),这就意味着LR在之前的异常处理中被错误地修改了,或者栈内容被破坏导致了EXC_RETURN的值错误。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5620

    浏览量

    130434
  • 存储器
    +关注

    关注

    39

    文章

    7757

    浏览量

    172210
  • ARM处理器
    +关注

    关注

    6

    文章

    361

    浏览量

    43386

原文标题:单片机的异常处理

文章出处:【微信号:gh_e7f294a514ca,微信公众号:单片机匠人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入理解单片机的位数对性能的影响

    单片机的位数是指其处理器核心的位宽,通常以比特(bit)为单位。常见的位数有8位、16位、32位和64位等。位数越高,处理器能够处理的数据量越大,性能也相应提高。以下是对
    发表于 04-27 15:05

    瑞萨8位单片机740族:指令与应用全解析

    ,受到了众多电子工程师的青睐。本文将深入探讨瑞萨8位单片机740族的特点、中央处理器、指令系统以及使用注意事项,希望能为电子工程师们在设计和开发过程中提供有价值的参考。 文件下载: R5F211A1DSP#U0.pdf 一、公司
    的头像 发表于 04-13 15:05 137次阅读

    Renesas 7544 系列单片机:技术剖析与设计要点

    Renesas 7544 系列单片机:技术剖析与设计要点 在电子设计领域,单片机作为核心控制元件,其性能和特性对整个系统的稳定性和功能实现起着关键作用。今天,我们就来深入探讨一下 Renesas
    的头像 发表于 04-13 14:20 116次阅读

    深入解析 SANYO LC87F57C8A 8 位单片机:特性、参数与应用考量

    深入解析 SANYO LC87F57C8A 8 位单片机:特性、参数与应用考量 在电子设计领域,单片机作为核心控制元件,其性能和特性对整个系统的设计和运行起着关键作用。今天,我们将深入探讨
    的头像 发表于 04-11 10:05 388次阅读

    Infineon XC87xCLM 8位单片机:功能特性与设计要点解析

    Infineon XC87xCLM 8位单片机:功能特性与设计要点解析 在电子设计领域,单片机作为核心部件,其性能和特性对整个系统的稳定性和功能实现起着关键作用。今天,我们就来深入探讨英飞凌
    的头像 发表于 03-30 14:40 260次阅读

    深入解析Infineon C165 16位单片机:特性、参数与应用指南

    深入解析Infineon C165 16位单片机:特性、参数与应用指南 在当今的电子设计领域,单片机作为核心控制元件,广泛应用于各种智能设备和工业控制系统中。Infineon
    的头像 发表于 03-30 14:20 230次阅读

    Infineon TC1197 32 位单片机:功能、特性与应用解析

    的 TC1197 32 位单片机就是其中一款性能卓越的产品,它基于 TriCore 架构,融合了 RISC 处理器架构、数字信号处理能力以及丰富的片上存储器和外设,为嵌入式应用带来了新的活力。本文将
    的头像 发表于 03-29 10:35 259次阅读

    Infineon C161PI 16位单片机:设计与应用的深度剖析

    单片机凭借其卓越的性能和丰富的外设功能,成为了众多工程师的首选。今天,我们就来深入探讨一下这款单片机的特点、应用以及设计要点。 文件下载: C161PIL25FCABXUMA1.pdf 一、C161PI
    的头像 发表于 03-28 14:30 739次阅读

    深入解析RL78/G1G单片机:特性、规格与应用考量

    深入解析RL78/G1G单片机:特性、规格与应用考量 在电子设备不断发展的今天,单片机作为核心控制元件,其性能和特性对于产品的成功至关重要。Renesas的RL78/G1G单片机以其独
    的头像 发表于 02-26 17:20 859次阅读

    深入解析英飞凌XC835/836 8位单片机:特性、参数与应用考量

    富的特性,在众多单片机产品中脱颖而出。今天,我们就来详细解析一下这款单片机探讨它的特点、参数以及在实际设计中的应用考量。 文件下载: XC836T2FRIABFXUMA1.pdf 一、特性概览 高性能核心 XC835/836采
    的头像 发表于 02-10 11:05 689次阅读

    深入探讨PCB布局布线的专业设计要点与常见挑战

    本文深入探讨PCB布局布线的专业设计要点与常见挑战,并介绍上海创馨科技如何凭借资深团队与丰富经验,为客户提供从精密布局、优化布线到生产制造的一站式高可靠性PCB解决方案。
    的头像 发表于 01-04 15:29 413次阅读

    嵌入式与单片机定义及区别

    ,我们将深入探讨这些不同类型的嵌入式处理器的定义、特性及其在各种应用领域中的作用。 我们的单片机,即嵌入式微控制器MCU,是一种高度集成的电子器件。它内部融合了ROM/RAM、总线逻辑、定时/计数器
    发表于 11-17 08:11

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要
    的头像 发表于 07-25 11:39 1081次阅读

    单片机定制开发的设计思路

    单片机定制开发是根据特定场景和功能需求,量身打造符合要求的单片机应用方案,其设计过程需要兼顾技术可行性与实际应用价值,涉及多个关键环节。 一、需求分析阶段 单片机定制开发的第一步是深入
    的头像 发表于 07-17 11:14 926次阅读
    <b class='flag-5'>单片机</b>定制开发的设计思路

    给予单片机的温度控制系统设计

    在工业生产、智能家居等领域,温度的稳定控制至关重要,基于单片机的温度控制系统凭借灵活、高效的特点被广泛应用,其设计原理与实现方式值得深入探讨。 基于单片机的温度控制系统主要由单片机、温
    的头像 发表于 07-16 10:57 821次阅读