完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题描述:采用ADUCM361内置看门狗进入中断服务函数后就MCU就死了。采用内置看门狗产生中断复位CPU是正常的!
下面为中断服务函数: void WDog_Tmr_Int_Handler(void) { WdtClrInt(); // clear watchdog timer interrupt __DSB(); printf("WDog-------------------------------INT!rn"); [size=13.3333px]delay(500000); //__DSB(); } void Sys_Init(void) { NVIC_EnableIRQ(WDT_IRQn); WdtCfg(T3CON_PRE_DIV16,T3CON_IRQ_EN,T3CON_PD_DIS); WdtLd(0x1000); WdtGo(T3CON_ENABLE_DIS); ClkDis(CLKDIS_DISSPI0CLK|CLKDIS_DISSPI1CLK|CLKDIS_DISI2CCLK|CLKDIS_DISPWMCLK|CLKDIS_DIST0CLK|CLKDIS_DIST1CLK|CLKDIS_DISDMACLK); // Only enable clock to used blocks ClkCfg(CLK_CD0,CLK_HF,CLKSYSDIV_DIV2EN_DIS,CLK_UCLKCG); //ClkCfg(CLK_CD0,CLK_HF,CLKSYSDIV_DIV2EN,CLK_UCLKCG); ClkSel(CLK_CD7,CLK_CD7,CLK_CD0,CLK_CD7); } 下面为主函数: int main (void) { int i=1; Sys_Init(); uart_init(9600); NVIC_EnableIRQ(UART_IRQn); printf("Star-------------------------!rn"); delay(500000); while(1){ //WdtClrInt(); printf("/*ADUCM360*/----%drn",i); delay(500000); printf("CPUID=%xrn",SCB->CPUID); delay(500000); printf("T3VAL=%xrn",pADI_WDT->T3VAL); printf("T3STA=%xrn",pADI_WDT->T3STA); delay(500000); i++; } } 下面为延时函数: void delay (long int length) { while (length >0) length--; } 下图为调试信息:打印了W说明已经进入了中断服务函数,后面的调试信息没打印,且MCU已死,不知是否有人碰到此问题? |
|
相关推荐
2个回答
|
|
中断嵌套了
|
|
|
|
在使用ADUCM361内置看门狗的中断服务函数时,MCU死机的原因可能是由于中断服务函数中的某些操作导致了问题。下面是一些可能的原因和解决方法:
1. 硬件相关错误:检查看门狗的配置是否正确,确保看门狗在中断服务函数之前已正确配置。还应确保中断向量表中的中断服务函数地址正确。 2. 堆栈问题:中断服务函数可能导致堆栈溢出或堆栈损坏。在中断服务函数中避免使用过多的局部变量和递归函数调用,以减少堆栈使用量。 3. 中断优先级问题:确保看门狗中断的优先级高于其他中断,以确保中断服务函数可以正常执行。可以使用NVIC_SetPriority函数来设置中断优先级。 4. 芯片特定问题:可能存在某些特殊情况下芯片的硬件限制或错误。在这种情况下,建议参考芯片的数据手册或联系芯片厂商获取支持。 要解决这个问题,可以尝试以下几个步骤: 1. 确定问题所在:通过检查中断服务函数的代码和硬件配置,确定问题出在哪里。 2. 调试:使用调试工具(如JTAG)对MCU进行调试,查看程序的执行状态和堆栈。 3. 确定问题代码:通过在中断服务函数中插入调试语句或使用断点,确定哪些代码导致了MCU死机。 4. 修复问题:根据问题的具体原因,针对性地修改中断服务函数的代码或硬件配置,以解决MCU死机问题。 5. 测试和验证:在修改后的代码上进行测试,并确保MCU在进入看门狗中断服务函数时不会死机。 请注意,在进行任何修改之前,请确保已经备份了原始代码和配置,并在进行修改时小心操作,防止引入其他问题。 此外,一些特定的芯片配置可能需要特殊的工作流程,请查阅相关文档并按照指导操作。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11770 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 12:42 , Processed in 1.108615 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号