硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2774|回复: 12
收起左侧

[FreeRTOS] 关于任务调度

[复制链接]

1

主题

13

回帖

16

积分

新手上路

积分
16
发表于 2019-3-13 21:01:46 | 显示全部楼层 |阅读模式
汉哥,最近整FreeRTOS碰到个问题,百撕不得其姐,描述如下:有两个任务A,B,它们有不同的优先级,但运行时OS只调度优先级高的来运行,低优先级的任务始终不得运行,不知咋整,热血求教。。
回复

使用道具 举报

36

主题

1445

回帖

1553

积分

至尊会员

积分
1553
发表于 2019-3-13 22:27:27 | 显示全部楼层
高优先级的任务里面有让出CPU使用权的操作吗?比如延时函数。
回复

使用道具 举报

1

主题

13

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-3-15 09:30:00 | 显示全部楼层
sanit 发表于 2019-3-13 22:27
高优先级的任务里面有让出CPU使用权的操作吗?比如延时函数。

多谢回复。。。。。。
回复

使用道具 举报

1

主题

13

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-3-15 17:18:27 | 显示全部楼层
现在情况是这样滴,我再描述详细点。。
1. A,B任务是否创建成功(已创建成功);
2. A任务是否成功阻塞,调试发现能进入vTaskDelay(5 * portTICK_RATE_MS);这个函数并且判断是否溢出或者未溢出,说明可以进入阻塞状态;
3. A任务是否调用任务切换,taskYIELD()也调用了;
4. A任务堆栈空间加大也不行,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2019-3-15 17:58:19 | 显示全部楼层
IOTMCU 发表于 2019-3-15 17:18
现在情况是这样滴,我再描述详细点。。
1. A,B任务是否创建成功(已创建成功);
2. A任务是否成功阻塞, ...

注意FreeRTOSConfig.h文件中支持的最大任务优先级设置参数,你任务的设置是否满足此要求
QQ截图20190315175643.jpg
回复

使用道具 举报

1

主题

13

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-3-15 23:04:23 | 显示全部楼层
汉哥,这是我的配置文件,按说没错。
  1. #ifndef FREERTOS_CONFIG_H
  2. #define FREERTOS_CONFIG_H

  3. #define configUSE_PREEMPTION                        1
  4. #define configUSE_IDLE_HOOK                        1
  5. #define configUSE_TICK_HOOK                        1
  6. #define configCPU_CLOCK_HZ                        ( ( unsigned long ) 120000000 )
  7. #define configTICK_RATE_HZ                        ( ( portTickType ) 1000 )
  8. #define configMINIMAL_STACK_SIZE                ( ( unsigned short ) 190 )
  9. #define configTOTAL_HEAP_SIZE                        ( ( size_t ) ( 19 * 1024 ) )
  10. #define configMAX_TASK_NAME_LEN                ( 12 )
  11. #define configUSE_TRACE_FACILITY                0
  12. #define configUSE_16_BIT_TICKS                0
  13. #define configIDLE_SHOULD_YIELD                0
  14. #define configUSE_CO_ROUTINES                 0
  15. #define configUSE_MUTEXES                                0
  16. #define configUSE_RECURSIVE_MUTEXES        0
  17. #define        configUSE_COUNTING_SEMAPHORES 0
  18. #define        configUSE_ALTERNATIVE_API                0
  19. #define configCHECK_FOR_STACK_OVERFLOW        1
  20. #define configQUEUE_REGISTRY_SIZE                0

  21. #define configMAX_PRIORITIES                                        ( ( unsigned portBASE_TYPE ) 10 )
  22. #define configMAX_CO_ROUTINE_PRIORITIES                 ( 2 )

  23. #define INCLUDE_vTaskPrioritySet                                1
  24. #define INCLUDE_uxTaskPriorityGet                                1
  25. #define INCLUDE_vTaskDelete                                        1
  26. #define INCLUDE_vTaskCleanUpResources                        0
  27. #define INCLUDE_vTaskSuspend                                        1
  28. #define INCLUDE_xTaskResumeFromISR                        1
  29. #define INCLUDE_vTaskDelayUntil                                1
  30. #define INCLUDE_vTaskDelay                                        1
  31. #define INCLUDE_uxTaskGetStackHighWaterMark        1

  32. #define configYIELD_INTERRUPT_VECTOR                        16UL
  33. #define configKERNEL_INTERRUPT_PRIORITY                 255
  34. #define configMAX_SYSCALL_INTERRUPT_PRIORITY         191

  35. void vApplicationSetupInterrupts( void );

  36. #endif /* FREERTOS_CONFIG_H */
复制代码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2019-3-16 19:31:13 | 显示全部楼层
IOTMCU 发表于 2019-3-15 23:04
汉哥,这是我的配置文件,按说没错。

那只能怀疑你的工程模板设计有问题了。
回复

使用道具 举报

1

主题

13

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-3-17 12:17:36 | 显示全部楼层
情况是这样滴(之前描述有点仓促):正常情况下2个任务都可以正常运行,然后运行一段时间(约一星期)后,某些设备会自动复位(某些又没有问题),然后就卡在任务高的优先级一直处在运行状态,低优先级的任务根本不执行,我们开始怀疑是硬件问题,但周立功硬说是软件问题,现在成了悬案。。。。。。
回复

使用道具 举报

1

主题

13

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-3-17 12:22:04 | 显示全部楼层
我把包发过来,望汉哥在百忙之中抽空一看,不胜感激。。

Project.zip

4.22 MB, 下载次数: 10

回复

使用道具 举报

1

主题

13

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-3-17 12:24:23 | 显示全部楼层
系统运行图。
微信图片_20190317122130.jpg
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2019-3-17 18:25:52 | 显示全部楼层
IOTMCU 发表于 2019-3-17 12:22
我把包发过来,望汉哥在百忙之中抽空一看,不胜感激。。

你发的是空文件?
QQ截图20190317182314.jpg
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

5

主题

10

回帖

25

积分

新手上路

积分
25
发表于 2019-3-19 23:08:08 | 显示全部楼层
IOTMCU 发表于 2019-3-17 12:17
情况是这样滴(之前描述有点仓促):正常情况下2个任务都可以正常运行,然后运行一段时间(约一星期)后, ...

你在高优先级的任务里面 加了taskdelay 没有?
回复

使用道具 举报

1

主题

13

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-3-21 12:31:57 | 显示全部楼层
这端时间忙坏了搞啥都是火急火燎的,我这就把包再重新传一下(通过编译),望各位大大帮忙分析,巨谢(问题还是之前的那个问题)。。

LPCLP.zip

24.29 MB, 下载次数: 17

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-1 20:45 , Processed in 0.231013 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表