完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
设备:DM320007 starterkitProcessor:PIC32MZ2048EFH144HARMony 1.0.7我的原始程序是一个简单的应用程序,通过RS232端口与PC进行通信,并且工作正常。在我从MHC添加I2C模块后,将其下载到板上,程序停止在目标上。由于没有尝试在代码中打开I2C总线,所以只安装了HythySigFig .h。只是添加了MHC中的模块。我已经多次打开和关闭I2C模块,其行为是重复相同的。似乎没有办法调试它,因为一旦程序被下载到目标,它就停止了。调试控制台输出:**************************************************************************************************************************************************************************************************************检测目标PICE用户程序运行PIC32运行时异常。选择[刷新]以解决源线位置。用户程序停止用户程序停止*****************************************请帮助!谢谢!希瑟
|
|
相关推荐
11个回答
|
|
附加了我的项目文件夹。一个更一般的问题是,如何调试这种类型的异常?谢谢,
|
|
|
|
如果不检查I2C驱动程序,重新生成代码,然后尝试,它是否仍然停止?
|
|
|
|
不,如果我删除I2C驱动程序,它将再次工作正常。我已经多次重新生成了代码,有I2C和无I2C,症状是一样的,即,代码将正常工作直到包括I2C。谢谢。
|
|
|
|
我假设您已经检查了Use Harmony异常。如果不检查。那么在异常处理程序中设置一个断点。它停止了什么,请单击刷新循环。然后单击显示的行号。它会带您到引起异常的行。
|
|
|
|
是的,异常是在MHC中签入的。我已经在下面的处理程序的while循环中放置了一个断点,但是在它显示目标停止之前它从未命中过:((它可能与程序范围有关吗?)目前,它设置为“允许皮卡3选择记忆”。谢谢!
|
|
|
|
根据我所尝试的,似乎包括I2C驱动程序导致了问题。当我在模拟器上运行它时,异常处理程序会捕获断点。excep_code是7,相当于“数据总线错误”。我只在MHC中打开了I2C驱动程序,没有对驱动程序进行任何实际的接口操作。怎么可能是错的?
|
|
|
|
如果您去调用堆栈视图,没有链接到导致它的行吗?可能有无效的指针。或者缓冲区没有正确对齐。您可以进入I2C驱动程序,并寻找它崩溃。您可能希望设置断点以使其休眠。我假设I2C具有任务功能,它可以在那里。您有什么版本的Mplab X。对于正确的调试,它必须是V3.15或以上。
|
|
|
|
如果您在将I2C驱动程序添加到项目中时选择“中断模式”,我想它会按照您希望的方式运行。对于如何调试此类问题的更大问题,我最喜欢的方法是在调试模式下运行程序,直到找到出错的地方。在这种情况下,通过在SysSyInILITY函数中的SypLy.It.c中的不同位置设置断点。基本上遵循执行,看看有多远。在某些时候,您会遇到代码,Orthor配置器添加了导致失败的代码。这次我必须跟着它进入SysStask函数。帮助文件中有几个条目是关于描述函数序列的和谐框架的结构的。从“& gt & gt & gt”开始。在本例中,您可以通过SYS_Initialize函数跟踪执行,但是发现它没有从SYS_Tasks函数中退出。我不确定,但是看起来这个函数期望从中断被调用,只有当I2C外设需要注意时才会发生。所以,当被调查时,它行为不端。我希望这有帮助。
|
|
|
|
感谢NKurzman和GDA的帮助。对不起,我在这个领域是新的,只发现了今天的呼叫栈。我使用IDE V3.30。现在我可以看到异常是在drv_i2c.c中的atline 1740。当它检查状态时,(_DRV_I2C_CLIENT_OBJ(lBufferObj,status),lBufferObj实际上是空的。但是,在代码中没有显式地调用DRVIII2CYTASKSH()函数。它真的很奇怪,它在里面崩溃了。什么可能导致它是空的?我是否配置了I2C错误?我基本上希望它是在主轮询模式。谢谢!!
|
|
|
|
不,我不认为你把它配置错了。LBuffReBug是客户端事务对象。也就是说,当客户端调用Open函数并将事务从队列中拔出时,该对象被初始化。基本上,该行试图在试图查找另一个事务之前查看最后一个事务是否已经完成,而不验证最后一个事务是否存在。在查看代码之后,轮询模式似乎不能很好地工作。当然,对于轮询模式似乎是默认配置选择这一事实,它并不能说得很好。:(
|
|
|
|
谢谢GDA。我尝试了中断模式I2C,异常消失了。所以,问题是轮询模式I2C。我将提交一个支持案例到Microchip。感谢你所有的投入。
|
|
|
|
只有小组成员才能发言,加入小组>>
5341 浏览 9 评论
2084 浏览 8 评论
1988 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3265 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2301 浏览 5 评论
846浏览 1评论
741浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
683浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
739浏览 0评论
630浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-12 09:42 , Processed in 1.246167 second(s), Total 95, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191