ucosii 的任务中,最大可以建多大的二维数组?
本人今天调了一天的程序。发现这样一个怪的问题。
unsigned charInitialArry;/////////////如果把这里改成InitialArry的话,好像程序就没问题。如果是16,16的话。程就有问题。
// unsigned char NextArry;
// unsigned char OKConvert,temp;
// static unsigned char RowCounter;
unsigned char j,k;
void TaskDisp(void*pdata)
{
pdata=pdata;
//` RowCounter =0;
//PINSEL0 = PINSEL0 & (~0xfffe0);
//IO0DIR|= IO0DIR | 0xfffe0;
//IO0SET = LED1;
for(j=0;j<12;j++)
{
for(k=0;k<12;k++)
{
InitialArry = 0xaa;
}
}
for(;;)
{
} } 如果把这里改成InitialArry的话,好像程序就没问题。如果是16,16的话。程就有问题。 为什么呀。
任务里的最大二维数组是多大。 网上等各位大侠的回复。 网上等各位大侠的回复。 你的情况没交待清楚,到底是什么问题,编译器编译出错,还是其它什么错误,要把你的错误表述清楚
你是的什么CPU会不会是CPU的RAM太小了,InitialArry占用64字节内存,InitialArry可要占256个字节的RAM 不是局部变量应该问题不大。 不好意思呀。。问题我没有表述清楚。。
是这样的。如果我把数组定义成InitialArry的话,编译是没有问题,只是程序在运行的时候进入死循环。任务与任务之前不会切换。如果是定义成InitialArry的话,编译也是没有问题,程序在调试运行的时候也没有问题。一切正常。。。
我用的arm是LPC2131。我为这个任务分配的堆栈是512 应该是你分配的堆栈太小了吧,在任务切换的时候,没法压进堆栈里面去,那肯定出问题了,也就是在PUSH的时候你分配的内存根本就装不下 19001579 发表于 2010-1-3 22:58
应该是你分配的堆栈太小了吧,在任务切换的时候,没法压进堆栈里面去,那肯定出问题了,也就是在PUSH的时候你分 ...
感觉蛮对的 感觉不对啊 全局变量和静态变量都是保存在全局区的,普通变量保存在栈区,动态分配的内存空间是存在堆区的 ucos里设置的仅仅是stack ,应该是栈区,和全局没有关系。 局部变量任务切换会压进堆栈里面去的,所有那个要开大。不知道我说的对不对。 局部变量需要开大 但是楼主位的是全局...
页:
[1]