在线时间2 小时
UID3131154
注册时间2015-5-25
NXP金币0
该用户从未签到
新手上路

- 积分
- 21
- 最后登录
- 2015-11-9
|
本帖最后由 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 }
};
|
|