嵌入式开发者社区

标题: 请教 局部字符串变量堆栈溢出问题 [打印本页]

作者: gongxd    时间: 2015-10-26 14:08
标题: 请教 局部字符串变量堆栈溢出问题
A:
static        char msg[]="System started!\r\n";
//发送启动测试信息
void MSg_sendStartMsg()
{
        ComSndBytes_CSL_COM1(msg,sizeof(msg)-1);
}

B:
//发送启动测试信息
void MSg_sendStartMsg()
{     
      char msg[]="System started!\r\n";
        ComSndBytes_CSL_COM1(msg,sizeof(msg)-1);
}

上面A B两种写法,  ComSndBytes_CSL_COM1只是发送数组

A种写法运行不报错,B种写法bios一运行就提示
ti.sysbios.knl.Task: line 368: E_stackOverflow: Task 0xc2334750 stack overflow.
xdc.runtime.Error.raise: terminating execution

B种写法 栈已经改的很大了

作者: gongxd    时间: 2015-10-26 14:09
而且 Task 0xc2334750 也是不对的 ,没有这个task地址
作者: 希望缄默    时间: 2015-10-26 19:30
gongxd 发表于 2015-10-26 14:09
而且 Task 0xc2334750 也是不对的 ,没有这个task地址

堆也改大一下
作者: gongxd    时间: 2015-10-26 20:45
本帖最后由 gongxd 于 2015-10-26 20:48 编辑
希望缄默 发表于 2015-10-26 19:30
堆也改大一下

堆已经改为32M了,堆使用正常
但是错误还是有
应该不是大小的问题

作者: 希望缄默    时间: 2015-10-27 09:11
gongxd 发表于 2015-10-26 20:45
堆已经改为32M了,堆使用正常
但是错误还是有
应该不是大小的问题

每个任务堆栈是独立的
作者: gongxd    时间: 2015-10-28 10:25
希望缄默 发表于 2015-10-27 09:11
每个任务堆栈是独立的

局部变量是栈里面申请的,应该也没有问题啊
已经把栈加大了




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4