本帖最后由 清/ts囸図 于 2018-3-11 15:14 编辑 有7个任务 任务1栈大小:configMINIMAL_STACK_SIZE*4 (configMINIMAL_STACK_SIZE的宏定义是(unsigned short)128) 任务2栈大小:configMINIMAL_STACK_SIZE*4 任务3栈大小:configMINIMAL_STACK_SIZE*2 任务4栈大小:configMINIMAL_STACK_SIZE*3 任务5栈大小:configMINIMAL_STACK_SIZE*5 任务6栈大小:configMINIMAL_STACK_SIZE*5 任务7栈大小:configMINIMAL_STACK_SIZE*5 其中任务1和任务2是二选一的,由配置参数决定创建哪个任务,当前是创建任务1,并未创建任务2。 任务1是RS485通讯,Modbus协议,接收到上位机命令后,调用栈剩余检测uxTaskGetStackHighWaterMark(),将任务1,3~7的栈剩余检测结果回复给上位机。 问题来了,上位机收到的栈检测结果中,任务3的栈剩余448,怎么会这样呢? 有没有可能是因为没有创建任务2,os把任务2的栈也分配给了任务3? |