硬汉嵌入式论坛

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

[RL-RTX] RTX运行时有一个任务无法运行到的问题

[复制链接]

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
发表于 2021-3-15 13:57:57 | 显示全部楼层 |阅读模式
在keil4中运行RTX4。配置了2个task,一个主任务(TaskStart),一个空闲延时任务(TaskIdle)。但是实际运行时,只能运行到 TaskStart以及RTX_config.c文件中的 os_idle_demon 这个任务。
而自己创建的 TaskIdle 一直无法被运行到。
这会是什么原因造成的呢?
如果在RTX的配置向导文件中,将任务数配置成3个,那就能运行到 TaskIdle 了。
然道是原因配置的任务个数原因?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-3-15 14:47:47 | 显示全部楼层
注意这两个参数
1.png
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2021-3-15 16:01:24 | 显示全部楼层

我就是这样配置的。这里配置成2,然后在代码中创建了2个任务os_sys_init(TaskStart);       
然后在 TaskStart()中
TaskStart()
{
os_tsk_create(Task_wait_20ms, 2);
os_tsk_prio_self(3);

}
可 Task_wait_20ms 这个任务就是运行不到




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-3-15 16:16:09 | 显示全部楼层
jplzl10000 发表于 2021-3-15 16:01
我就是这样配置的。这里配置成2,然后在代码中创建了2个任务os_sys_init(TaskStart);       
然后在 TaskStart ...

发截图,你的这个配置。
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2021-3-16 08:24:10 | 显示全部楼层
eric2013 发表于 2021-3-15 16:16
发截图,你的这个配置。

好奇怪,我明明是截了图回复的。。。就的就是下面这个配置



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-3-16 08:35:22 | 显示全部楼层
jplzl10000 发表于 2021-3-16 08:24
好奇怪,我明明是截了图回复的。。。就的就是下面这个配置

重新发下。
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2021-3-16 10:42:06 | 显示全部楼层
下载.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-3-17 08:33:37 | 显示全部楼层

帮你测试了,正常,不过我用的是
os_sys_init_user
1.png

代码:

  1. #include "includes.h"                        /* 底层硬件驱动 */

  2. /*
  3. **********************************************************************************************************
  4.                                                                                         函数声明
  5. **********************************************************************************************************
  6. */
  7. static void AppTaskCreate (void);
  8. __task void AppTaskLED(void);
  9. __task void AppTaskStart(void);

  10. /*
  11. **********************************************************************************************************
  12.                                                                                          变量
  13. **********************************************************************************************************
  14. */
  15. static uint64_t AppTaskLEDStk[256/8];     /* 任务栈 */
  16. static uint64_t AppTaskStartStk[512/8];   /* 任务栈 */

  17. /* 任务句柄 */
  18. OS_TID HandleTaskLED = NULL;

  19. /*
  20. *********************************************************************************************************
  21. *        函 数 名: main
  22. *        功能说明: 标准c程序入口。
  23. *        形    参: 无
  24. *        返 回 值: 无
  25. *********************************************************************************************************
  26. */
  27. int main (void)
  28. {       
  29.         /* 初始化外设 */
  30.         bsp_Init();
  31.        
  32.         /* 创建启动任务 */
  33.         os_sys_init_user (AppTaskStart,             /* 任务函数 */
  34.                           2,                        /* 任务优先级 */
  35.                           &AppTaskStartStk,         /* 任务栈 */
  36.                           sizeof(AppTaskStartStk)); /* 任务栈大小,单位字节数 */
  37.         while(1);
  38. }

  39. /*
  40. *********************************************************************************************************
  41. *        函 数 名: AppTaskLED
  42. *        功能说明: LED闪烁       
  43. *        形    参: 无
  44. *        返 回 值: 无
  45. *   优 先 级: 1  (数值越小优先级越低,这个跟uCOS相反)
  46. *********************************************************************************************************
  47. */
  48. __task void AppTaskLED(void)
  49. {
  50.     while(1)
  51.     {
  52.                bsp_LedToggle(2);
  53.                 bsp_LedToggle(3);
  54.         os_dly_wait(200);
  55.     }
  56. }

  57. /*
  58. *********************************************************************************************************
  59. *        函 数 名: AppTaskStart
  60. *        功能说明: 启动任务,也就是最高优先级任务。
  61. *        形    参: 无
  62. *        返 回 值: 无
  63. *   优 先 级: 2  
  64. *********************************************************************************************************
  65. */
  66. __task void AppTaskStart(void)
  67. {
  68.         AppTaskCreate();
  69.        
  70.     while(1)
  71.     {
  72.                bsp_LedToggle(1);
  73.                 bsp_LedToggle(4);
  74.         os_dly_wait(500);
  75.     }
  76. }

  77. /*
  78. *********************************************************************************************************
  79. *        函 数 名: AppTaskCreate
  80. *        功能说明: 创建应用任务
  81. *        形    参: 无
  82. *        返 回 值: 无
  83. *********************************************************************************************************
  84. */
  85. static void AppTaskCreate (void)
  86. {
  87.         HandleTaskLED = os_tsk_create_user(AppTaskLED,              /* 任务函数 */
  88.                                            1,                       /* 任务优先级 */
  89.                                            &AppTaskLEDStk,          /* 任务栈 */
  90.                                            sizeof(AppTaskLEDStk));  /* 任务栈大小,单位字节数 */
  91. }

  92. /***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/
复制代码


回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2021-3-20 13:59:20 | 显示全部楼层
eric2013 发表于 2021-3-17 08:33
帮你测试了,正常,不过我用的是
os_sys_init_user

能上传个工程么,然后,又是整个工程有问题?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-3-20 16:00:00 | 显示全部楼层
jplzl10000 发表于 2021-3-20 13:59
能上传个工程么,然后,又是整个工程有问题?

下载我这个里面401的例子,然后按照我在8楼的配置方式设置即可。

http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2021-4-6 13:29:53 | 显示全部楼层
eric2013 发表于 2021-3-17 08:33
帮你测试了,正常,不过我用的是
os_sys_init_user

为什么我的是可用3个任务呀
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2021-4-6 13:31:43 | 显示全部楼层
eric2013 发表于 2021-3-17 08:33
帮你测试了,正常,不过我用的是
os_sys_init_user

搞错了,是2个可得,但任务描述中少了一个延时的任务

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 07:17 , Processed in 0.433331 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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