Microchip
登录
直播中
h1654155275.5795
8年用户
213经验值
私信
关注
[问答]
PIC32MZ在中断时存储错误的PC怎么解决?
开启该帖子的消息推送
PIC32MZ
嗨,我正在处理一个PIC32 MZ2048 EFH064令人震惊的崩溃。看起来当我收到中断时,错误的返回地址被存储在EPC寄存器中。我在模拟器中捕获了它,所以我有一个跟踪。我在这篇文章的末尾附上相关的片段。正如我所能想象的,这里是发生了什么:在跟踪线- 270,代码地址9D0CA08C,指令ISBNELL V1,0,ADDR。V1是1,所以分支被接受。在第-269行,执行代码地址9D0CA090、ADDU V0、S0、V0(它在BNEL之后的延迟时隙中)。在ADDU之前,V0是0000006E;在ADDU之后,V0被设置为8003AD4E。第-268行,发生中断,我们正在开始中断处理程序。我们读了原因寄存器,BD(Branch Delay)位是零。第-245行,我们瞥见了存储的PC。指令是MFC0 S6、EPC,EPC中的值是9D0CA08C——这是BNEL指令的地址。在-225、SW V0、52(S5),我们瞥见了V0。它的值是0x8003AD4E,所以我们可以确认第-269行的ADDU已经执行。在第-53行,我们执行ERET。在第-52行,我们返回atcode地址9D0CA08C,并重新执行指令BNEL V1、0、addr。在第-51行,我们重新执行eADDUV0、S0、V0。在ADDU之前,V0是800 3AD4E(第一次执行ADDU后给出的值!)在ADUU之后,V0为0075 A2E。在线路48,LB A1,8(V0),V0用作地址,当然它失败。这是我的程序崩溃的地方。问题是当PIC32被中断时,它已经在9D0CA090完成ADDU指令的执行,但是它保存的返回地址是前一条指令。所以,当中断处理程序返回时,它返回到错误的指令。这不仅是模拟器中的问题:我的硬件由于相同的原因在相同的指令上崩溃。我弄明白了吗?PIC32 MZ有bug吗?(!)有解决办法吗?谢谢你,鲍伯
回帖
(14)
李天竹
2020-5-1 07:53:44
我认为模拟器和真实硬件都不太可能有同样的bug,尤其是这样的大小。
我认为模拟器和真实硬件都不太可能有同样的bug,尤其是这样的大小。
举报
唐红菊
2020-5-1 08:07:50
这在MPLAB X模拟器中再现了效果:MUC.C:TestFUNC.S:用XC32 1.40,-O1编译。它看起来非常脆弱,例如,在设置Count/Compare寄存器之前只添加一个“nop”就会使效果消失。
这在MPLAB X模拟器中再现了效果:MUC.C:TestFUNC.S:用XC32 1.40,-O1编译。它看起来非常脆弱,例如,在设置Count/Compare寄存器之前只添加一个“nop”就会使效果消失。
举报
胡芝恒
2020-5-1 08:12:53
如果我看一下ISR的拆卸列表,保存EPC寄存器的内容在代码的顶部,例如,这是我的定时器ISR,Vector表:ISR:我想知道第-268行和-245行之间所有这些指令在做什么……
如果我看一下ISR的拆卸列表,保存EPC寄存器的内容在代码的顶部,例如,这是我的定时器ISR,Vector表:ISR:我想知道第-268行和-245行之间所有这些指令在做什么……
举报
唐红菊
2020-5-1 08:20:51
ISR是完全不相干的。问题是,如果延迟时隙指令已经完成,为什么EPC被设置为分支指令的地址?
ISR是完全不相干的。问题是,如果延迟时隙指令已经完成,为什么EPC被设置为分支指令的地址?
举报
更多回帖
rotate(-90deg);
回复
相关问答
PIC32MZ
PIC32MZ
(EC) Board +
PIC32MZ
2048EFH144出现
错误
2019-05-21
2715
为什么
PIC32MZ
不支持密钥
存储
?
2019-10-28
1060
PIC32MZ
上PMP外部源的最大持续读数?
2019-05-16
1357
PIC32MZ
准备好串联使用了吗?
2019-09-23
1074
PIC32MZ
harmony UART Rx
中断
问题
2019-06-11
1138
PIC32MZ
Bootloader项目
错误
2019-10-14
1279
pic32mz
的stdlib在哪里?
2019-07-16
1695
PIC32MZ
中断
不起作用
2020-03-16
951
找不到
PIC32MZ
启动器工具包的USB传输示例
2019-09-12
1575
可以使用LCC
PIC32MZ
+WVGA图形显示+8位(256色深)的配置吗?
2019-10-17
2025
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分