完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
你好!我在MPLAB X v3.20中发现了一个非常奇怪的行为,是的,不幸的是,在v3.25中也发现了。使用MPLAB X v3.10和早期版本,程序工作得很好。我开始使用v3.20,并且我总是遇到_StackError陷阱。也有3.25个。如果程序在井手调试模式下运行,这个问题就会出现。如果我烧了这个程序,它运行没有IDE,它运行正常。在调试模式与V3.20和V3.25我得到堆栈错误非常早。这是肯定的,没有真正的堆栈过载!如果我使用单个步骤,堆栈指针暂时远离SPLIM值。然后我执行一个简单的指令(没有函数调用,没有上下文保存),w15从0x7F1C跳到0x8006,然后结束……如果我减少堆,问题稍后就会出现。根本不工作。(在V3.10中)它只显示实际函数,没有更多。刷新不起作用。一些技术细节:uC dsPIC33EP512GP506编译器/链接器:XC16 v1.25.:NO(级别0)代码模型:LargeHeap:256字节到160字节程序内存:59%的数据内存使用:58%Gyuri
|
|
相关推荐
11个回答
|
|
|
你好,安纳波利斯!当然,我附上截图。是的,我使用三个MPLAX版本的XC16 V1.25。(3.10、3.20、3.25)硬件,我的程序、调试器、编译器/链接器都是一样的。只有MPLAB X版本在变化。我调用StackError()陷阱开始处的GetErrLoc()函数来捕获指令地址,这导致了陷阱。乍一看,捕获的地址(0x016F6)不属于我的代码,它必须是微软代码。它是在一些“溢出”标签之后。我不熟悉。
|
|
|
|
|
|
谢谢屏幕截图。希望它能得到更多的回复。我将联系XC16专家以获得关于库和缺省陷阱的建议。关于导致执行差异的IDE版本的一个猜测可能是配置位。当然有,但是必须问,你有在代码中定义的所有配置位吗?
|
|
|
|
|
|
由于编译器在3.10和3.20中是相同的,我猜想问题在于调试器破坏了W15,或者它自己破坏了W15(即调试器中的bug),或者因为您正在侵入用于调试的内存区域。
|
|
|
|
|
|
我不得不想一想这怎么可能。)你能检查3.10个和3.20个Mag文件,看看编译器/链接器选项是否相同?我想也许3.20的人正在以不同的方式建造这个项目。(即使编译器是相同的。)
|
|
|
|
|
|
一个简单的检查方法是比较不同的IDE下产生的十六进制文件。
|
|
|
|
|
|
嗨,GeorgePauley和诺斯盖伊!我总是使用MPLAB X 3.10和3.20和3.25的同一个项目。现在我只比较了3.10和3.25。(3.20几天就过时了。)是的,George,makefile是不同的,尽管在Ptoject/Properties窗口中所有的XC17设置严格相同。谢谢你的主意,NorthGuy!我必须纠正我自己:3.10和3.25十六进制文件有很大不同。之前我没有比较它们,因为我的经验是,如果我用3.20和3.25烧掉代码,它工作得很好。现在我不得不说,不是。这些都是错误的,只有堆栈错误稍后出现在调试模式中。(我的程序中的菜单更深)我很匆忙,没有做足够深的测试。我不是GURU的MaGube文件。远不是…我附上了“3.10”和“3.25”的“DIST”和“NBPITY”目录。也许,你可以找到问题的根源。由于500 kb/file和五文件上传限制,我必须重新排列这些目录,但是文件名是清楚的。
3.10debug.zip(409.85KB)-下载1次3.10..zip(409.62KB)-下载1次3.25debug.zip(408.10KB)-下载3次3.25..zip(408.04KB)-下载1次 |
|
|
|
|
|
Gyuri(在3.20或3.25中)尝试设置这个选项Project Properties->XC16(全局选项)->;“使用遗留libc”然后重新构建。为了保持简单,XC16选项的默认状态在版本1.25中更改,MPLAB X版本3.20知道这个更改并正确地处理它。
|
|
|
|
|
|
你好,乔治!谢谢你的小费!我已经试过了,你提出了什么。乍一看,这似乎是有帮助的。编译/链接的十六进制文件几乎是一样的。到目前为止,在MPLLABX3.25中,错误仍然存在,现在程序运行正常。老实说,今天进行深入和正确的测试对我来说太晚了。周末,我将进行一个覆盖所有功能的测试,并发送一个报告。(我已经跳过了MPLAB X v3,15)我想下载v3.15,看看有没有提到这个变化,但是只有3.05版本可以下载,在MPLLABXIDE档案部分。不算数,继续吧!-古里
|
|
|
|
|
|
你好,GeorgePauley!我已经用建议的设置深入测试了我的程序。(Project Properties->XC16(Global Options)->;“使用遗留库”)它工作得很好,我还没有发现问题。但是,如果我说的好,那么编译器将处理一些早期的库和/或方法。呃将不使用了。如果是的话,开发商在不久的将来会纠正这个问题吗?它会在Read Mexx16.HTML文件中被标记吗?问题的识别号有多少?如果是,那是什么?
|
|
|
|
|
|
Kyuri,编译器和MPLAB X是独立的程序,它们彼此独立地升级和释放。您所遇到的情况是,MPLAB X和编译器彼此不同步,因此无法100%清晰地进行通信。我确信这将被下一版本的MPLAB X修正。
|
|
|
|
|
|
好的,谢谢你!
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1123浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:12 , Processed in 0.897828 second(s), Total 95, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
899