| 
在线时间21 小时
UID2003041
注册时间2013-4-19
NXP金币0 
 该用户从未签到 注册会员 
 
 
	积分138 
最后登录1970-1-1 | 
 
| void Task2_task(uint32_t task_init_data) {
 int counter1 = 0,counter2 = 0;
 
 while(1) {
 counter1++;
 
 if (_mutex_lock(&print_mutex) != MQX_OK) {
 printf("Mutex lock failed.\n");
 _task_block();
 }
 
 counter2++;
 printf("I'm in Task2!%d\n",counter1);
 _time_delay_ticks(10);
 _mutex_unlock(&print_mutex);
 }
 }
 这个任务会导致堆栈溢出,并且使得另一个使用互斥print_mutex的任务溢出。
 但如果红色那句改为    printf("I'm in Task2!\n",);    即不打印数值,两个任务堆栈则剩余很多,都不溢出
 这是为什么,打印个数值会消耗很多堆栈吗?
 
 
 | 
 |