TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 堆栈问题

            我利用6678在调试程序时,用EDMA进行LINK传输,结果是程序卡在了判断IPR位,看结果发现EDMA传输失败,然后单步调试,看到我的EDMA函数的参数传输是错误的,看了下SP指针,发现已经超出了我的.stack的范围,然后我增加了.stack的范围,发现SP指针还是超出stack范围。

             

             看了我的程序,主要是在前面部分使用了循环很多的FFT,还有我的子程序的入口比较多,有的甚至有十几个。

    

             程序中使用的是-O3的优化,我想问的是:

              1、前一个模块及其子程序入口参数的多少会不会影响到当前处理模块?

              2、我的堆栈已经设置很大了,为什么SP指针还会跑飞?而且继续增大stack,SP指针还是会超出范围。(我的stack放在L2中,代码放在MSMC中,数据处理都是L2中)

              3、我看有在设置中有hook好像可以改善,不知道如何使用?

              4、我在抛费的这个子程序后面还有几个子程序,请问有没有办法解决这一类SP指针溢出stack的方法?

Andy Yin1:

你的stack是多大,SP记录的是栈顶地址,确认你看到的SP确实已经超出stack范围,另外有没有可能是栈发生了改写导致参数传递错误呢,如果把传递的参数改成全局变量有没有问题呢,不加优化是什么现象?

 

赞(0)
未经允许不得转载:TI中文支持网 » C6678 堆栈问题
分享到: 更多 (0)