在启动文件中
Stack_Size EQU 0x00000c00
堆设置如下
Heap_Size EQU 0x00000400
在ucos的main文件中,设置任务栈如下
#define LED1_STK_SIZE 1024*4;
OS_STK LED1_TASK_STK[LED1_STK_SIZE];
另外我把可malloc可分配的堆大小设置成60k的内部ram
#define MEM1_MAX_SIZE 60*1024
任务栈已经超过了系统启动文件中设置的栈大小,但是编译和运行都没问题
不太明白啊,有谁好心能帮忙解释一下吗,谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
所以,你malloc定义80K,还剩下48K可以作为他用。完全够你这个堆栈大小啊。
---------------------------------
感谢你的回复,我用的是407,所以内部ram大一些
---------------------------------
1、额额额额,407的啊,就说嘛,以后最好把你的平台写出来,要不然别人不好回答啊。
2、这两个是不同的空间,启动文件中的栈空间和堆空间、任务堆栈(也就是全局数组),我们的malloc中的内存池,这些的地位是一样的,都是编译器从MCU的RAM中分配的。
---------------------------------
非常感谢
下次一定注意把问题背景说明白了
一周热门 更多>