1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
包括IoLo.gt;库导致模拟器挂起。在当前的PC 0x9d0206ec上没有找到while循环中的断点,并且停止执行导致没有源代码行。设备:PIC32MX795F512L(未连接)MPLAB X v4.10,编译器XC32/++ v1.44MPLAB模拟器。被注释或删除,程序运行正常,并到达while循环中的断点。这种行为的原因是什么?提前感谢!
|
|
相关推荐
6个回答
|
|
Memen,我不太熟悉使用XC32作为C++编译器。我不知道如何用代码创建和构建一个项目。(目前,我正在挣扎如何声明一个显然必要的堆。)您能打包项目并发布它以便我们自己检查这个问题吗?顺便说一下,IoSt流中的静态对象很可能在启动时被执行。模拟器无法通过在包含IoSoW时添加的新代码。
|
|
|
|
用于项目的堆大小为200字节。在Project Properties>>Categories:XC32-ld>>Options类别:.>>Heap大小为200。我不知道如何将整个项目上传到这篇文章,但是没有更多的内容。只是Me.cpp中的上述代码和一个文件,其中包含一个自动生成的“{ TraceMaq-COMFIG”列表)。
|
|
|
|
如果你最终要使用IoSt流,你可能会想要一个更大的堆。
|
|
|
|
博斯克的想法是正确的。在堆大小为200的情况下,我看到了不良行为。当我把堆增加到2000时,一切又开始运转了。通过查看跟踪记录,我发现在最终退出之前,进程连续调用malloc()花费了相当多的时间。我怀疑堆是不够大的启动代码通过它的初始化。和博斯克…现在开始拨打KBAL 2还为时过早吗?格林先生:
|
|
|
|
啊哈,把堆增加到2000,确实修好了!非常感谢。如果我正确地理解它,堆就是使用运算符new(或C中的内存分配函数)创建的变量存在的地方,因此很难确定所需的堆大小,对吧?在运行代码时,是否有一种方法来检查模拟器中堆的使用情况?
|
|
|
|
模拟器中没有明确的内容。最终堆由编译器生成的代码来处理。模拟器不知道编译器在做什么,或者即使它正在执行堆。不同的编译器会有不同的行为。但是,XC32文档中可能有一些描述堆如何工作以及如何检查其状态的内容。或者,也许在XC32论坛上有人可以提供一些建议?
|
|
|
|
只有小组成员才能发言,加入小组>>
5237 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3201 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
772浏览 1评论
662浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
590浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
672浏览 0评论
572浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 11:54 , Processed in 1.201318 second(s), Total 86, Slave 70 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号