查看: 1765|回复: 3

[MQX] 关于MQX任务列表相关参数的选择,与注意事项

[复制链接]

该用户从未签到

1

主题

3

帖子

0

新手上路

Rank: 1

积分
21
最后登录
2015-11-9
发表于 2015-9-8 11:29:36 | 显示全部楼层 |阅读模式
本帖最后由 ausable 于 2015-9-8 13:43 编辑

   目前,我采用K64开发板进行项目软件开发;在编写任务列表时,采用如下原则:
    1. 主控任务(项目中,仅有一个“自启动”任务;负责其他任务的启动、停止等管理工作)启动其他任务,栈空间为3~5K。
    2. 对于各子任务,根据""Debug\List"下的map文件参照制定栈空间,一般为3K;

    调试时,出现以下问题:
    1. 工程调试运行时,未进入“主任务”入口,陷入MQX系统启动过程中。主要错误为:
       a. edma.c中“edma_uninstall_isrs”
       b. OUT_OF_MEMORY(当时没记在哪个文件里面)。
     
    针对以上问题,请回复一下关于MQX列表各任务栈空间、优先级等各参数的详细说明及注意事项。以下是我所编写的任务列表,请高手指点一下。

const TASK_TEMPLATE_STRUCT  MQX_template_list[] =
{ //目前,栈空间暂定为3K,以防止任务空间越界;最后进行优化调整。
    /* Task Index,               Function,           Stack,  Priority, Name,     Attributes,          Param, Time Slice */     
   {E_MCTRL_TASK_BASE_ID,      Ctrl_MainTask,         10 * 1024,   12,    "main",    MQX_AUTO_START_TASK,                   0,     0 },
   
   //数据处理模块任务列表
   {E_DATA_PROCESS_TASK_BASE_ID,      DataProc_MainTask,         10 * 1024,   8,    "dataproctask",    0,                   0,     0 },
   
   //comm模块任务列表
   {E_COMM_TASK_BASE_ID,       Comm_MainTask,         5 * 1024,   9,    "comtask",    0,                   0,     0 },
   //comm模块->**
   {E_COMM_**_SERIAL_TASK_ID,       Comm_
**SerialTask,         3 * 1024,   10,    "**serial",    0,                   0,     0 },
   {E_COMM_**_LAN_TASK_ID,       Comm_
**LanTask,         3 * 1024,   10,    "**lan",    0,                   0,     0 },
   {E_COMM_**_COMM_TASK_ID,           Comm_
**CommTask,    3 * 1024,   10,         "**commtask",        0,                                         0,         0 },
   //comm模块->**
      {E_COMM_**_SERIAL_TASK_ID,      Comm_
**SerialTask,         3 * 1024,   10,    "**serial",    0,                   0,     0 },
   {E_COMM_
**_LAN_TASK_ID,       Comm_**LanTask,         3 * 1024,   10,    "**lan",    0,                   0,     0 },
   {E_COMM_
**_COMM_TASK_ID,           Comm_**CommTask,    3 * 1024,   10,         "**commtask",        0,                                         0,         0 },
   //comm模块->**
  {E_COMM_
**_SERIAL_TASK_ID,           Comm_**SerialTask,         3 * 1024,        10,          "**serial",    0,                                        0,           0 },
    {E_COMM_
**_LAN_TASK_ID,            Comm_**LanTask,        3 * 1024,        10,          "**lan",        0,                                         0,         0 },
  {E_COMM_
**_COMM_TASK_ID,            Comm_**CommTask,          3 * 1024,   10,         "** comm task",        0,                                         0,         0 },
/**/
   { 0 }        
};


我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

1

主题

3

帖子

0

新手上路

Rank: 1

积分
21
最后登录
2015-11-9
 楼主| 发表于 2015-9-8 11:30:35 | 显示全部楼层
由于以上项目正在进行,隐去了项目相关信息,以**代替。
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

196

帖子

0

中级会员

Rank: 3Rank: 3

积分
380
最后登录
1970-1-1
发表于 2015-9-9 10:44:35 | 显示全部楼层
楼主可以使用MQX  Task Aware Debugging 来查看每个任务的栈的使用情况。
先使用一个比较大的值,让整个系统跑起来, 然后查看task summary, 看看每个任务的使用情况后微调
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

3

帖子

0

新手上路

Rank: 1

积分
21
最后登录
2015-11-9
 楼主| 发表于 2015-10-29 13:48:15 | 显示全部楼层
FSL_TICS_DANIEL 发表于 2015-9-9 10:44
楼主可以使用MQX  Task Aware Debugging 来查看每个任务的栈的使用情况。
先使用一个比较大的值,让整个系 ...

嗯,嗯。问题已解决,通过MQX栈使用情况;已经进行了调整。多谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 15:24 , Processed in 0.093444 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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