完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
例程中创建函数如下:
//创建开始任务 OSTaskCreate((OS_TCB * )&StartTaskTCB, //任务控制块 (CPU_CHAR* )"start task", //任务名字 (OS_TASK_PTR )start_task, //任务函数 (void * )0, //传递给任务函数的参数 (OS_PRIO )START_TASK_PRIO, //任务优先级 (CPU_STK * )&START_TASK_STK[0],//任务堆栈基地址 (CPU_STK_SIZE)START_STK_SIZE/10,//任务堆栈深度限位 (CPU_STK_SIZE)START_STK_SIZE, //任务堆栈大小 (OS_MSG_QTY )0, //任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息 (OS_tiCK )0,//当使能时间片轮转时的时间片长度,为0时为默认长度, (void * )0, //用户补充的存储区 (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任务选项 (OS_ERR * )&err); //存放该函数错误时的返回值 我先说下自己的理解,请教下哪里理解错了,我不懂的地方也指点下 1、(OS_TCB * )&StartTaskTCB, //任务控制块 意思:将一个名为StartTaskTCB的任务控制块分配给start_task任务。 使用注意:StartTaskTCB需要先定义,定义为OS_TCB 类型。 2、(CPU_CHAR* )"start task", //任务名字 意思:给start_task任务起一个名字 使用注意:无 3、 (OS_TASK_PTR )start_task, //任务函数 意思:将start_task函数和start_task任务绑定,合二为一。 使用注意:无 4、(void * )0, //传递给任务函数的参数 意思:传递给start_task函数一些参数 使用注意:无 5、(OS_PRIO )START_TASK_PRIO, //任务优先级 意思:设置start_task任务的优先级 使用注意:无 6、(CPU_STK * )&START_TASK_STK[0],//任务堆栈基地址 意思:设置任务堆栈的起始地址 使用注意:无 7、 (CPU_STK_SIZE)START_STK_SIZE/10,//任务堆栈深度限位 意思:检查任务堆栈是否为空,检查任务为START_STK_SIZE/10 使用注意:无 8、(CPU_STK_SIZE)START_STK_SIZE,//任务堆栈大小 意思:设置任务堆栈大小 使用注意:不明白设置多大为合适 9、 (OS_MSG_QTY )0,//任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息 意思:设置内部消息队列接收字节数 使用注意:无 10、(OS_TICK )0,//当使能时间片轮转时的时间片长度,为0时为默认长度 意思:设置任务每次得到CUP使用权的运行时间 使用注意:注意最小单位 11、(void * )0,//用户补充的存储区 意思:没想明白 使用注意:无 12、(OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任务选项 意思:不知道。共有5个参数,英文虽然看的懂,但是意思不明白,想请教大家。 #define OS_OPT_TASK_NONE (OS_OPT)(0x0000u) /* No option selected */没有选择选项 #define OS_OPT_TASK_STK_CHK (OS_OPT)(0x0001u) /* Enable stack checking for the task*/启动堆栈检测任务 #define OS_OPT_TASK_STK_CLR (OS_OPT)(0x0002u) /* Clear the stack when the task is create */任务创建时清除堆栈 #define OS_OPT_TASK_SAVE_FP (OS_OPT)(0x0004u) /* Save the contents of any floating-point registers */保存浮点寄存器的内容 #define OS_OPT_TASK_NO_TLS (OS_OPT)(0x0008u) /* Specifies the task DOES NOT require TLS support */指定任务不需要TLS的支持 使用注意:不知道 13、(OS_ERR * )&err);//存放该函数错误时的返回值 意思:存放任务函数错误返回值 使用注意:无 |
|
相关推荐
3个回答
|
|
|
帮顶.....
|
|
|
|
|
|
含详细了,谢谢。
|
|
|
|
|
|
测试了下,2种方法都得到堆栈free和used的值,我把步骤写下。
1、建立一个任务。 /***************LED0任务************************/ //任务优先级 #define LED0_TASK_PRIO 4 //任务堆栈大小 #define LED0_TASK_SIZE 100//实际大小要乘 4 //任务控制块 OS_TCB Led0TaskTCB;//task control block //任务堆栈 CPU_STK LED0_TASK_STK[LED0_TASK_SIZE];//task stack //任务函数 void led0_task(void *p_arg); ////////////////////////////////////////////////////////////////////////////////////// OS_CRITICAL_ENTER();//进入临界区 OSTaskCreate((OS_TCB*)&Led0TaskTCB,//任务控制块地址 (CPU_CHAR*)"led0 task",//起一个任务名字 (OS_TASK_PTR)led0_task,//任务函数地址 (void *)0,//传递给任务函数的指针 (OS_PRIO )LED0_TASK_PRIO,//优先级 (CPU_STK *)&LED0_TASK_STK[0],//任务堆栈基地址 (CPU_STK_SIZE)LED0_TASK_SIZE/10,//任务堆栈深度 (CPU_STK_SIZE)LED0_TASK_SIZE,//任务堆栈大小 (OS_MSG_QTY)0,//消息队列大小 (OS_TICK)0,//时间片轮转 (void*)0,//用户补充的存储区 (OS_OPT)OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,//任务选项 (OS_ERR*)&err);//存储错误返回值 OS_CRITICAL_EXIT();//退出临界区 //////////////////////////////////////////////////////////////////////// 2、编写测试函数 void led0_task(void* p_arg) { u8 i=0; OS_ERR err; CPU_STK_SIZE free,used; p_arg=p_arg; while(1) { //used=Led0TaskTCB.StkUsed; //free=Led0TaskTCB.StkFree; OSTaskStkChk (&Led0TaskTCB,&free,&used,&err); LCD_ShowxNum(53,164,used,1,16,0); LCD_ShowxNum(36,164,used/10,1,16,0); LCD_ShowxNum(20,164,used/100,1,16,0); LCD_ShowxNum(53,104,free,1,16,0); LCD_ShowxNum(36,104,free/10,1,16,0); LCD_ShowxNum(20,104,free/100,1,16,0); OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err); } } 3、结果 都有结果输出,不过有些差别。 而且使用 used=Led0TaskTCB.StkUsed; free=Led0TaskTCB.StkFree; 得按下按键,才会有结果。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
1022 浏览 1 评论
1852 浏览 0 评论
1833 浏览 1 评论
3258 浏览 5 评论
3585 浏览 9 评论
1025浏览 1评论
1853浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1364浏览 1评论
1855浏览 0评论
1180浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 17:06 , Processed in 1.009980 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2964