OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3281|回复: 3

ucosⅡ 创建了起始任务但是进不去,直接进入了空闲任务

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-7-12
在线时间
8 小时
发表于 2017-7-27 00:56:06 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 花洛兮灬 于 2017-7-27 00:57 编辑

ucosⅡ 创建了起始任务但是进不去,直接进入了空闲任务,求大神解答
代码如下:


#include "main.h"

#define START_TASK_PRIO          5
#define TASK_Run_PRIO           10

#define START_TASK_STK_SIZE         256
#define TASK_Run_STK_SIZE           256


__align(8) OS_STK start_task_stk[START_TASK_STK_SIZE];        
__align(8) OS_STK task_Run_stk[TASK_Run_STK_SIZE];           

void TaskStart(void *arg);
void TaskRun(void *arg);

OS_STK_DATA StackBytes_start;
OS_STK_DATA StackBytes_1;

OS_EVENT *RunStart;

INT8U *ErrorRunStart;



int main(void)
{
    SystemInit();
                Beep_Configuration();
                CAN1_Configuration();
                CAN2_Configuration();
        
    OSInit();
        
    OSTaskCreateExt(TaskStart, (void *)0, &start_task_stk[START_TASK_STK_SIZE - 1],
                    START_TASK_PRIO, START_TASK_PRIO, start_task_stk, START_TASK_STK_SIZE,
                    (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
    OSStart();
    return 0;
}



void TaskStart(void *arg)
{
    (void)arg;                       
    OS_CPU_SysTickInit ();        
        

    RunStart = OSSemCreate(0);

    OSSemPend(RunStart, 0, ErrorRunStart);

    OSTaskCreateExt(TaskRun, (void *)0, &task_Run_stk[TASK_Run_STK_SIZE - 1],
                    TASK_Run_PRIO, TASK_Run_PRIO, task_Run_stk, TASK_Run_STK_SIZE, (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);


                ElmoInit();
                ElmoSetspeed(0x1, 1000);
                Elmo_StartMotor(0x1);
                Elmo_Begin(0X1);
                delay_ms(2000);
                beep_show(3);
    OSSemPost(RunStart);
}



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2017-7-17
在线时间
68 小时
发表于 2017-7-27 10:22:17 | 显示全部楼层
OSTaskCreateExt(TaskStart, (void *)0, &start_task_stk[START_TASK_STK_SIZE - 1],
                    START_TASK_PRIO, START_TASK_PRIO, start_task_stk, START_TASK_STK_SIZE,
                    (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);

这一段查查,是不是有问题
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-7-12
在线时间
8 小时
 楼主| 发表于 2017-7-27 10:40:46 | 显示全部楼层
开心的人们 发表于 2017-7-27 10:22
OSTaskCreateExt(TaskStart, (void *)0, &start_task_stk[START_TASK_STK_SIZE - 1],
     ...

检查了好多遍了,没有问题
回复

使用道具 举报

15

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2017-7-17
在线时间
68 小时
发表于 2017-7-27 11:32:10 | 显示全部楼层
你的优先级怎么都写两遍啊START_TASK_PRIO, START_TASK_PRIO,要不你试试OSTaskCreate()这个函数,ucosiii 里面好像没看到 OSTaskCreateExt这个函数,不太懂这个函数。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-2 02:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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