This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
我有一个程序、其中包含5个整数数组、每个数组的长度为64。 这运行正常。 如果我将这些代码的大小增加到128或256、当我运行调试时、代码会在 dabort.asm 中挂起-我认为这是某种堆栈溢出例程。 建议我进入"properties"->"ARM linker"->"basic options"并增加堆栈的大小、但这不会产生任何影响。 相同的代码在另一个 ARMCortex 处理器(Actel)上运行、因此我猜我需要在 CCS 编译器中执行一些操作来启用更多的存储器、或者将数组映射到 RAM 而不是本地寄存器? 是否需要启用 RAM 的头文件?
我将使用最新的 CCS 和 HalCoGen。
一点帮助?
感谢你能抽出时间。
您好 Bailey、
最可能发生的情况是、您正在过度运行堆栈区域、因为这些数组被定义为静态或全局数组、因此它们放置在堆栈上。 若要解决此问题、可以在链接器命令文件(sys_lnk.cmd)中增大栈大小。 您需要调整文件顶部的.stack 段的大小。 请确保相应地减小 RAM 大小。 下面是您要更改的链接器命令文件中的行。
您还需要更新 sys_core.asm 以更新用户堆栈指针(userSP)的初始化指针。 摘录如下:
然后、应该有足够的空间让您的数组被压入堆栈、而不会使其溢出。
很抱歉、但我对这一点理解有点困难。 我获得的部分内容是更改 RAM 和堆栈空间的相对大小、但不是指针。 userSp 是否指向用户堆栈的顶部? 我是否还需要将指针提升到其他5个堆栈?
谢谢