完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我已经研究了有关异常的论坛线程,但是似乎没有什么帮助。我有一个大型程序在PIC32MX795F512上运行。我的问题的基础是:我有一个外部信号,产生一个外部中断。这个中断加载一个定时器,在它完成时会产生一个中断。那个计时器中断引起异常。我已经删除了计时器ISR BaReSo,它所做的只是清除中断和禁用计时器,并且异常仍然发生(虽然如果我在ISR内部设置断点,异常将不会发生)。异常处理程序标识异常作为内存问题。使用异常代码中显示的地址,我查看了映射文件,并将其放置在我认为异常发生的位置。如果我正确地解释了地址,微控制器正在识别一个简单的函数,它从我所说的“数据存储”中获取一个值。传递给该函数的参数在该函数内得到验证,从而不会导致错误。我看不出这个函数会造成什么异常。因为它是一个公共函数,所以它被称为几百次。我已经尝试了多种方法来尝试改变问题,和/或移动问题以更好地处理它……都无济于事。我现在还不知道我还能找出什么别的问题。如果我试图从异常处理程序返回,它就返回到异常处理程序。有没有办法让MPLABX显示我的代码的程序集地址,这样我就可以尝试和验证异常处理程序中提供的地址?有什么方法可以退出处理程序并返回异常发生的地方吗?欢迎任何想法或想法。谢谢,乔。
|
|
相关推荐
4个回答
|
|
我用这个
|
|
|
|
勘误表43?
|
|
|
|
请告诉我们,“异常处理程序标识异常和内存问题”是什么意思。从原因寄存器中得到哪一个异常?你可以改进你的异常处理程序并读出:甚至更多。如果您还没有完成提取原因:请参阅PIC32家庭手册的CPU部分。有关内存问题,请查看badvaddr。这通常给你一个明确的提示,这个地址不能是一个有效的地址,有时你甚至可能知道这个值是从哪里来的。并检查其他似是而非的值。
|
|
|
|
确保您像在中断处理程序宏(IPL…)中那样将中断优先级设置为sam级别。确保您只调用ISR中的可重入函数。确保您使用SET、CLR和INV寄存器偏移设置/清除SFR中的位(IFS0CLR=_IFS0_T1IF_)而不是使用非重入函数原子方法(IFS0BIT.T1IF=0)/ Ruben
|
|
|
|
只有小组成员才能发言,加入小组>>
5248 浏览 9 评论
2036 浏览 8 评论
1956 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3218 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2264 浏览 5 评论
787浏览 1评论
678浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
604浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
685浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 18:21 , Processed in 1.274668 second(s), Total 52, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号