新手上路
- 积分
- 20
- 金钱
- 20
- 注册时间
- 2020-12-2
- 在线时间
- 5 小时
|
10金钱
异常现象:main函数创建两个任务,启动任务调度。在用户任务死循环中打断点,前两次全速运行可进入for循环,第三次全速运行后程序卡死在portTASK_FUNCTION函数中。
FreeRTOS配置:
(1)时间片10ms,通用定时器,在port.c prvSetupTimerInterrupt函数开启定时;
(2)FreeRTOSConfig.h配置:抢占式调度器,10ms时间片
- #define configUSE_PREEMPTION 1
- #define configUSE_TIME_SLICING 1
- #define configUSE_IDLE_HOOK 1
- #define configUSE_TICK_HOOK 0
- #define configTICK_RATE_HZ ( ( TickType_t ) 10000 )
复制代码 (3)FreeRTOSConfig.h任务配置
- #define configMAX_PRIORITIES ( 4 )
- #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )
- #define TASK_ONE_STACK_SIZE ( ( unsigned short ) 500 )
- #define TASK_TWO_STACK_SIZE ( ( unsigned short ) 500 )
- #define TASK_THREE_STACK_SIZE ( ( unsigned short ) 150 )
- #define TASK_FOUR_STACK_SIZE ( ( unsigned short ) 100 )
- #define configMAX_TASK_NAME_LEN ( 10 )
- #define configUSE_TRACE_FACILITY 1
复制代码
main函数、task代码如下:
- void main(void)
- {
- R_MAIN_UserInit();
-
- xTaskCreate( vUART_Send1_Task, NULL, TASK_ONE_STACK_SIZE, NULL, tskIDLE_PRIORITY+2, NULL );
- xTaskCreate( vUART_Send2_Task, NULL, TASK_TWO_STACK_SIZE, NULL, tskIDLE_PRIORITY+2, NULL );
- vTaskStartScheduler();
- while (1U)
- {
- ;
复制代码
非arm平台,求助大佬们,有没有什么调试/配置思路?
|
|