资源描述:
《iar msp430设置合理堆栈大小》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、本文给出IAR设置堆栈合理大小的详细方法,并分享一些好博文(icf及map讲解)。 最近在MSP430-169LCD(MSP430F169,RAM为2KB)调试一些ucos演示例子,IARforMSP430默认的堆栈大小是80字节,编译可以通过,运行结果不确定性,调试过程会提示"thestackpointerforstackisoutsidethestackrange",堆栈溢出。那么,到底设置多大的堆栈够用且不浪费呢。一、合理设置堆栈大小首先,查看程序共需要多大的堆栈,生成map文件,方法如下:图1生成map文件 生成的map文件在项目目录下的/D
2、ebug/List,打开map文件在CALLGRAPH找到找到栈的最大使用量(我的理解是main主函数,用栈最多,所以直接拉到文件末尾,靠近SEGMENTSINADDRESSORDER的地方),如下图所示:otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,andDirectorofthenewOfficeinJingdezhen,JiangxiCommitteeSecretary.Startingin1939servedasrecorderoftheWestNorthOrgan
3、ization,SecretaryoftheSpecialCommitteeAfterthevictoryofthelongMarch,hehasbeentheNorthwestOfficeoftheFederationofStateenterprisesMinister,ShenmufuguSARmissions,DirectorofNingxiaCountypartyCommitteeSecretaryandrecorderoftheCountypartyCommitteeSecretary,Ministersand图2最大栈使用 由上图可知,最大栈
4、使用量是00000076(注意这里是16进制),即118字节。接着,设置堆栈大小,方法如下,可以设置比最大栈稍微大一些:-)otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,andDirectorofthenewOfficeinJingdezhen,JiangxiCommitteeSecretary.Startingin1939servedasrecorderoftheWestNorthOrganization,SecretaryoftheSpecialCommitteeAft
5、erthevictoryofthelongMarch,hehasbeentheNorthwestOfficeoftheFederationofStateenterprisesMinister,ShenmufuguSARmissions,DirectorofNingxiaCountypartyCommitteeSecretaryandrecorderoftheCountypartyCommitteeSecretary,Ministersand图3设置栈大小二、一点小心得通过上述方法,设置堆栈后,再编译有可能会报如下连接错误(受限的内存远不够使用):图4内存不够
6、用链接错误此时,唯一的办法就是重新设计程序了。在单片机上跑uC/OS,可以通过以下方法来减少内存使用: (1)如果是跑uC/OS,可以在os_cfg.h文件配置系统,如将最大任务数(OS_MAX_TASKS)设小一些,关掉一些扩展功能(以EN结尾的变量) (2)将一些局部变量数组设成全局变量(我就遇到这个问题,我想在MSP430-169LCD完成类似printf功能,难免需要一些字符数组)三、我的疑问 在实际调试过程中,尽管我把堆栈设得比查看map文件堆栈要大得多(map文件是0x76,即118,我设成250),调试的时候,依然有这个问题,如下:
7、1.SatDec22,201222:23:21:Thestackpointerforstack'Stack'(currentlyMemory:0x55A)isoutsidethestackrange(Memory:0x906toMemory:0xA00)otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,andDirectorofthenewOfficeinJingdezhen,JiangxiCommitteeSecretary.Startingin1939servedasrec
8、orderoftheWestNorthOrganiz