嵌入式学习小组
直播中

张倩

7年用户 224经验值
私信 关注

CUBE FREERTOS 三个和三个任务之上的运行不起来的解决办法?

任意两个都可以的。堆栈我已经改过了。Stack_Size      EQU     0x00001000
Heap_Size       EQU     0x00001500
#define configTOTAL_HEAP_SIZE                    ((size_t)10240)
改的这三个。
  xTaskCreate(sht21Entry,"sht21_Task",512,NULL,3,NULL);//ζè 2aá¿èÎÎñ′′½¨
        xTaskCreate(screenEntry,"screenEntry",512,NULL3,NULL);//ÆáÄ»ÏÔê¾èÎÎñ′′½¨
        xTaskCreate(XDTaskEntry,"xdTask",512,NULL,3,NULL);
//        xTaskCreate(ZMTaskEntry,"zmTask",512,NULL,3,NULL);
//        xTaskCreate(FM_Entry,"FM_Task",512,NULL,3,NULL);
//        xTaskCreate(FD_Entry,"FD_Task",512,NULL,3,NULL);
//        xTaskCreate(gpioTaskEntry,"GPIO_Task",512,NULL,3,NULL);
//        xTaskCreate(CurrentWDEntry,"Current_Task",512,NULL,3,NULL);
只能最大运行两个任务,第三个任务就不行了
用的发烧友的  103ZET6 开发板。。

回帖(3)

周润艺

2020-7-29 10:29:04
看一下你这些配置是否正确!
#define configUSE_PREEMPTION                1
#define configUSE_IDLE_HOOK                        1
#define configUSE_TICK_HOOK                        0
#define configCPU_CLOCK_HZ                        ( ( unsigned long ) 168000000 )       
#define configTICK_RATE_HZ                        ( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES                ( 5 )
#define configMINIMAL_STACK_SIZE        ( ( unsigned short ) 128 )
#define configTOTAL_HEAP_SIZE                ( ( size_t ) ( 17 * 1024 ) )
#define configMAX_TASK_NAME_LEN                ( 16 )
#define configUSE_TRACE_FACILITY        1
#define configUSE_16_BIT_TICKS                0
#define configIDLE_SHOULD_YIELD                1
#define configUSE_MUTEXES           1
举报

任迎新

2020-7-29 10:41:02
友情提示,你分配给FreeRTOS的内存空间是10KB,而每个任务分配的堆栈空间时512*4=2KB,考虑每个任务TCB占据100字节左右,那么3个任务就占据了6KB+的内存了,如果空闲任务像楼上说的那样配置为128内存,那么实际占据的内存就是128*4=512字节了,这些都得综合考虑,建议没用上的功能都裁剪掉,例如configUSE_TRACE_FACILITY、configUSE_IDLE_HOOK等跟踪或钩子功能
举报

杨丽

2020-7-29 10:50:24
学一学了。。。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分