MPC5748G开发笔记-----MPC5748G程序跑飞uSDHCDriverIRQHandler

MPC5748G程序跑飞uSDHCDriverIRQHandler


前言

最近调试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中增加上面代码在进行调试时可快速获取到系统异常,利用堆栈信息即可找到跑飞的函数进而定位出问题。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值