Microchip
直播中

陈洁

8年用户 179经验值
私信 关注
[问答]

MPLABX模拟器之间存在哪些周期差?

MplabX模拟器,处理器dsPIC33EP256GP50216位MCU和DSC程序员的参考手册和MplabX模拟器周期之间存在一些差异。说明:sl w1,w1手册:1周期模拟器:2周期指令:mov w1,LATB手册:2周期模拟器:1周期值对的?最好的问候

回帖(9)

李天竹

2019-10-24 09:27:56
这两个周期是1个周期。
举报

周娟

2019-10-24 09:37:54
我们实际上有一个JSUB测试来验证SL是一个周期。我只是重新运行这个测试,SL需要1个指令周期来执行。(实际上我们每晚都运行数千个JUnit测试。)我们必须更详细地检查您如何测量周期。模拟器团队在测量循环时间方面有很多经验,我可以告诉你,它比你想象的要复杂得多。特别是在处理真实硬件时。你必须担心断点滑移、调试器等待时间等问题。
举报

李天竹

2019-10-24 09:51:11
我可以告诉你我是怎么做到的。也许它会使它更容易。我有一个测试程序,它是一个长串的“NoP”,它跨越擦除页面的长度。程序在进入“NOPS”字符串之前设置定时器,并通过“NOPS”字符串读入定时器。它通过UART将读数发送到PC,PC的工作原理是:它通过ICSP连接到PIC,擦除“nops”字符串,然后用我想测量的测试用例重新编程。测试用例是相同的“NOP”字符串,但在开始时插入测试命令(或命令)。一旦测试被编程,PC程序运行PIC,然后读取通过UART发送的数据,然后停止PIC并为下一个测试用例做好准备。使用测试命令的定时器读数与纯“nops”的已知读数(加上由命令替换的“nops”的数目)之间的差别告诉我执行测试命令需要多长时间。这样,我可以在几分钟内测试数千个情况。当然,您需要使用具有良好闪存耐读性的部件。我使用类似的设置来测试在执行不同命令时如何调用中断,只是,除了时间测量之外,我还收集了有关延迟的数据。
举报

李梓

2019-10-24 10:09:12
修正:我使用MPLABX V3.40为Ubuntu Linux。我使用秒表。我一步一步地执行指令,看看循环如何有每个指令。其他说明是正确的。例如,“bset LATB”指令有2个周期,“bra”指令有4个周期等。问题是“sl”和“mov w1,LATB”指令。我的程序是时间关键的,我必须知道有“mov w1,LATB”指令1或2个周期。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分