你好,互联网上的好人
我在学习FreeRTOS,我希望myTaskA会溢出堆栈,但它不会。怎么会?
FreeRTOSConfig。h
#define configCHECK_FOR_STACK_OVERFLOW 2
static void app_myTaskA( void * pvParameters ) {
uint32_t myHugeArray[APP_DEFAULT_STACK_SIZE+1];
printf("remStack: %d\n", (int)uxTaskGetStackHighWaterMark(NULL));
uint32_t anotherU32 = 0;
printf("remStack: %d\n", (int)uxTaskGetStackHighWaterMark(NULL));
for(size_t i = 0; i < sizeof(myHugeArray); ++i) {
myHugeArray[i] = i;
myHugeArray[i]++;
myHugeArray[i]--;
anotherU32++;
}
while(1) {
int remStack = (int)uxTaskGetStackHighWaterMark(NULL);
if (remStack) {
printf("remStack: %d\n", remStack);
} else {
printf("no remStack\n");
}
}
}
终端输出
QEMU_started
remStack: 1014
remStack: 1014
no remStack
no remStack
no remStack