完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,我有一个关于XC8编译器如何为C堆栈分配PSECT的问题。随着项目规模的扩大,我开始从psect内存错误中获得非描述性的错误。详细信息。PIC18LF46K40XC8 1.41具体错误是:CRC.c:51:error:(1358)没有空间_u md2_transform temps(3)(不知道为什么在CRC.c中标记,_md2_transform在MD2.c)错误描述从XC8用户指南:(1358)没有用于*temps(*)(代码生成器)的空间。代码生成器无法找到足够大的空间来容纳这个程序的临时变量(抓取变量)。看起来编译器试图在一个cstackpsect上为3个temps(自动)腾出空间。回顾一下列表文件,我看到编译器已经做了以下内存psect(有7个cstackpsect)从映射文件中可以清楚地看到仍然有很多可用的RAM。规格记忆?或者这个错误是其他东西的征兆,如果是这样的话,有任何帮助来追踪它将会被理解。
|
|
相关推荐
3个回答
|
|
|
嗨,小心点。映射文件是由链接器生成的,但是如果代码生成器出错,那么链接器就不会运行,您会看到一个旧的映射文件。尝试使用--maxipic选项(参见关于此选项的注释的用户指南)查看编译器是否将构建完成,然后您可以检查映射文件并估计实际设备中如何使用内存。如果对于您的设备确实有大量的空闲数据存储器,并且该数据存储器以大量可用块存在,那么可以说,编译器可能已经为这个部分确定了特定的存储库,并且该存储库已经在编译器的背后被填充。在这种情况下,您是否用手写汇编代码分配数据存储器?如果你继续有问题,就发送一个项目来支持你的细节,他们可以更仔细地看。
|
|
|
|
|
|
你好,杰夫,注意到列表和地图文件不是来自编译断点上的同一个版本。我发布的列表和地图文件是在我添加“打破骆驼背的最后一根稻草”之前提供的,在这个例子中,一个新的for循环和一个新的uint16循环计数器。我尝试了--MAXIPIC选项,仍然得到相同的错误。我确实有很多手写的程序集,但是只在程序集中使用用c代码声明并通过程序集全局语句访问的内存,所有这些都是用近限定符声明的。其他真正的原因。我不知道下一步该怎么办。我可以避开局部VAR并声明全局静力学,从而使用数据和BSS PSECTS来解决这个问题。但是,这当然会导致低质量的代码。有没有其他的源或策略可以理解编译器如何试图通过函数、c模块等来填充每个cstack psect库?如果这是一个cstack问题,并且由于似乎有很多空闲RAM,我不明白为什么编译器没有声明另一个cstack psect。
|
|
|
|
|
|
--MAXIPIC不应该让构建“超出空间”错误而失败,除非代码确实是巨大的——它告诉代码生成器假装RAM和Flash库的绝对最大数量可用于所选择的特定指令体系结构,并且我确信没有ph值。具有接近这些限制的资源的物理部分已经完成。此时,您可能应该按照Jeff的建议进行操作,并打开一个支持案例,附上一个完整项目的.ZIP文件,该文件演示了问题。参考这个论坛线程,很可能是Jeff查看您的代码以找到答案(因为第一级支持人员在这里几乎肯定不会有用)。删除代码块,直到问题消失,然后添加你删除的最后一个比特,问题就回来了。然后从另一边开始切片。一旦您不能再从源代码中删除任何单个字符而不出现问题消失,就可以发送了。还要注意,如果您的代码包括手册中明确警告的任何内容,或任何未定义的行为,您很可能会被嘲笑并被告知离开。远离和RTFM。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475 浏览 0 评论
5794 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1098浏览 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 12:01 , Processed in 0.729898 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1494