野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6784|回复: 0

ucos学习中的奇怪现象

[复制链接]
发表于 2022-4-8 16:55:44 | 显示全部楼层 |阅读模式
参照教程ucos任务的定义和切换,新建工程,然后将相应的库文件拷贝,编写的程序,代码基本一致,ucos任务创建后,进行在线调试,任务函数task有问题,不执行for循环里面的第一和第二条语句,直接执行第三条,然后又跳过delay延时函数,如图片所示;将自己编写的app代码拷贝到教程的工程文件中,可以正常执行,完全没有问题,不知道怎么回事
图片为断电调试的情况

代码如下:
#include "os.h"
#include "ARMCM3.h"

uint32_t Flag1;
uint32_t Flag2;


#define TASK1_STK_SIZE    20
#define TASK2_STK_SIZE    20


static   CPU_STK   Task1stk[TASK1_STK_SIZE];
static   CPU_STK   Task2stk[TASK2_STK_SIZE];

static   OS_TCB    Task1TCB;
static   OS_TCB    Task2TCB;

void Time_Delay( uint32_t time );
void Task1( void *p_arg );
void Task2( void *p_arg );


void Time_Delay( uint32_t time )
{
    for( ; time != 0; time --);
}

void Task1( void *p_arg )
{
    for( ;; )
    {

        Flag1 = 1;
        Time_Delay(100);
        Flag1 = 0;
        Time_Delay(100);

        OSSched();
    }
}

void Task2( void *p_arg )
{
    for( ;; )
    {

        Flag2 = 1;
        Time_Delay(100);
        Flag2 = 0;
        Time_Delay(100);

        OSSched();  
    }
}

int main(void)
{
    OS_ERR  err;

    OSInit(&err);

    OSTaskCreate(&Task1TCB, Task1, 0, &Task1stk[0], TASK1_STK_SIZE, &err);

    OSTaskCreate(&Task2TCB, Task2, 0, &Task2stk[0], TASK2_STK_SIZE, &err);      

    OSRdyList[0].HeadPtr = &Task1TCB;
    OSRdyList[1].HeadPtr = &Task2TCB;

    OSStart(&err);

}




野火论坛202204081650596158..png
野火论坛202204081650217224..png
野火论坛202204081649372807..png
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-21 23:52 , Processed in 0.036964 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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