您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]数组定义位置导致程序出错的疑问
本帖共有537个阅读者
发表帖子 发表投票 回复主题
[求助]数组定义位置导致程序出错的疑问
blackfin(论坛游民)
blackfin
头衔:社区公民
帮派:无帮无派
帖数:114
金钱:1105
积分:153
注册时间:2011/6/10
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]数组定义位置导致程序出错的疑问
我用的是BF531+VDSP5.0+Updata10
第一种情况:
G_PAR是一个结构体,大小差不多1KB。

void function(void)
{
    G_PAR  tmp_para[10];  //接近10KBytes
                
   //对tmp_para的处理程序
   //这样定义,程序跑飞出错。
}

第二种情况:

G_PAR  tmp_para[10];
void function(void)
{
   //将tmp_para定义为全局            
   //对tmp_para的处理程序
   //这样定义,程序运行正常。
}

第三种情况:
怀疑数据太大,出错将其分配到外部SDRAM空间。但运行还是出错。

void function(void)
{
   section("sdram0") G_PAR  tmp_para[10];            
   //对tmp_para的处理程序
   //这样定义,程序跑飞出错。
}

请问这是为什么呢?由于tmp_para是临时量,只在function函数里使用。我想把它定义在函数内,不想定义在函数外成为全局量。请问要怎么处理呢?谢谢!


「该帖子被 blackfin 在 2013-07-16 10:00:53 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2013/7/16 9:58:41
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你看看是不是你的代码量太大了,导致L1将要溢出。如果L1不够了,会产生一些莫名现象。
你可以把你的一些函数定义到SDRAM中,看看。多放一些数据到SDRAM

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/7/16 19:34:19
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159345 Call, 1 Queries, Processed in 0.015625 second(s),