MPC5748G程序跑飞uSDHCDriverIRQHandler

文章目录

  • MPC5748G程序跑飞uSDHCDriverIRQHandler
  • 前言
  • 一、跑飞时的状态
  • 二、利用异常中断获取位置
    • 1.MPC5748G中断分析
    • 2.增加异常中断软件断点
  • 总结

前言

最近调试MPC5748G的时候程序总是跑飞,为了快速定位跑飞的地方,需要增加软件断点,提高调试效率。

一、跑飞时的状态

二、利用异常中断获取位置

1.MPC5748G中断分析

MPC574xG的中断向量寄存器(IVPR)提供了下面12个个中断类型

IVOR0: Critical Input Interrupt (offset 0x00)
IVOR1: Machine Check Interrupt (offset 0x10)
IVOR2: Data Storage Interrupt (offset 0x20)
IVOR3: Instruction Storage Interrupt (offset 0x30)
IVOR4: External Input Interrupt (offset 0x40)
IVOR5: Alignment Interrupt (offset 0x50)
IVOR6: Program Interrupt (offset 0x60)
IVOR7: Performance Monitor Interrupt (offset 0x70)
IVOR8: System Call Interrupt (offset 0x80)
IVOR9: Debug Interrupt (offset 0x90)
IVOR10: Embedded Floating-point Data Interrupt (offset 0xA0)
IVOR11: Embedded Floating-point Round Interrupt (offset 0xB0)

2.增加异常中断软件断点

代码如下(示例):

void IVOR1_Exception_Handler(void)
{//This is for Debug quickly!//exit_code = 0;BKPT_ASM;
}void IVOR6_Exception_Handler(void)
{//This is for Debug quickly!//exit_code = 0;BKPT_ASM;
}

总结

在main.c中增加上面代码在进行调试时可快速获取到系统异常,利用堆栈信息即可找到跑飞的函数进而定位出问题。

MPC5748G开发笔记-----MPC5748G程序跑飞uSDHCDriverIRQHandler相关推荐

  1. 嵌入式开发——程序跑飞原因总结

    前言 在嵌入式软件开发中,程序跑飞是一个比较棘手的问题.为什么说棘手,那是因为当程序跑飞时,往往没有任何错误信息报出来,Log停止的地方通常也不是出现问题的地方,因此这让我们很难定位问题. 基于以上原 ...

  2. 困扰一周的奇葩bug:重复相似代码多,导致单片机程序跑飞

    今天是个好日子,困扰一周的bug终于解决了,迫不及待将这个奇葩问题分享给各位朋友~ 硬件环境: 国产MCU:华大HC32L130 问题描述: 最近做一款基于Modbus协议的三通道温度采集模块,程序设 ...

  3. 教你如何找到导致程序跑飞的指令

    调试嵌入式程序时,你是否遇到过程序跑飞最终导致硬件异常中断的问题?遇到这种问题是否感觉比较难定位?不知道问题出在哪里,没有办法跟踪?尤其是当别人的程序踩了自己的内存,那就只能哭了:( 今天在论坛上看有 ...

  4. AUTOSAR实战教程 - 软件集成调试_程序跑飞一招解决

    工欲善其事必先利其器. AUTOSAR工程如此庞大的代码量,如果没有一个科学.程式化的方法来调试程序, 那么程序跑飞之后使用三板斧:打断点.看变量.对比正常代码和异常代码的变动,这显然是不能够胜任工作 ...

  5. C语言 跑飞位置,DSP程序跑飞的问题 - C2000™︎ 微控制器论坛 - C2000 微控制器 - E2E™ 设计支持...

    Other Parts Discussed in Thread:MOTORWARE TI的各位专家大家好: 第一次发帖,请多多包涵.本人使用的是F28027 C2000 Piccolo LaunchP ...

  6. 单片机长时间程序跑飞_单片机程序跑飞的三种现象、原因及解决方法

    今天在编写单片机程序的时候,由于中断服务程序写的不好,导致单片机程序总是跑飞,最后费了好长时间,花了很大功夫才找到问题原因,由此总结了单片机程序跑飞的三种现象.原因及解决方法. 一.数组越界(数组溢出 ...

  7. 【跑飞、死机】单片机 msp430程序跑飞原因和解决方式积累

    目录 单片机 msp430程序跑飞原因和解决方式积累 MSP430 数组填充越界引起的栈溢出 导致程序跑飞 [单片机重启]MSP430重启/频繁重启/跑飞 原因分析 单片机 msp430程序跑飞原因和 ...

  8. MPC5748G开发笔记-----S32DS提示The target may have entered reset escalation

    S32DS芯片锁死,提示The target may have entered reset escalation 文章目录 S32DS芯片锁死,提示The target may have entere ...

  9. MPC5748G开发笔记-----CAN通信

    CAN通信 文章目录 CAN通信 前言 一.CAN_PAL配置 二.编写代码 1.采用轮询方式 2.采用中断形式 3.CANoe测试 总结 前言 基于MPC5748G开发板的CAN通信 一.CAN_P ...

最新文章

  1. 执行spring boot应用三种方式
  2. Vue添加新的响应式属性
  3. QEMU,一个快速的和便捷的动态翻译器(论文译文)
  4. Python零碎知识(8):模块的学习|资源利用
  5. echarts柱状图 与轴不重叠_用Echarts做堆积的柱状图,当横轴为“time”类型时,都是从0开始显示,而不是叠加,为什么会这样?...
  6. Java和ABAP中的几种引用类型的分析和比较
  7. mysql+phpmyadmin配置流程
  8. python twisted教程 三–开始twisted
  9. STM32F103_EXTI外部中断
  10. 电位器替换遥控器做远程遥控方案,远程控制云台方案
  11. Android文件的保存(本地和SD卡)与读取
  12. 鸿蒙超级终端使用教程,超级终端怎么用(超级终端使用配置教程)
  13. 2015校招某度WEB前端笔试题
  14. wso2 esb 配置mysql_WSO2企业服务总线(WSO2 ESB)介绍
  15. 关于NPOI在word表格中插入行的问题
  16. Android Gradle Build Error:Some file crunching failed, see logs for details解决办法
  17. 后端工程师需要学习的前端知识——JS(一)
  18. ZDM2004工具式绘图软件v1.7 for AutoCAD2004 1CD(水电版)
  19. 2017.7.27 计算机编程培训第二天
  20. 什么是语义化标签,常见的语义化标签介绍

热门文章

  1. SAX错误–序言中不允许包含内容
  2. macbook视频格式转换_mac视频格式转换怎么操作?如何将视频转换成mac能播放的格式?...
  3. 对tcp三次握手的详解之 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
  4. this is related to npm not being able to find a file
  5. STM32使用虚拟示波器
  6. orcad的噪声分析
  7. 甘特图——项目计划与实际进度比较与调整
  8. 磁盘被写保护怎么办?5个方案解除它
  9. 编写计算机程序的几个步骤,第1讲程序设计的一般步骤ok.doc
  10. 蓝桥杯之二阶魔方旋转