Распечатать OSTime в UC / OS-II - PullRequest
       88

Распечатать OSTime в UC / OS-II

0 голосов
/ 24 октября 2018

Устройство: F28335 contorolCRAD и комплект Экспериментатора - Delfino F28335.

Портированный ucos-II.

Я использую функцию OSTimeGet (), чтобы получить OSTime.

Но задача1 возвращается'0' каждый раз, когда задание 2 не работает.

В чем проблема?Как это исправить?

App_Task1's priority = 6u
App_Task2's priority = 7u


static  void  App_Task1 (void *p_arg)
{
   (void)&p_arg;
   INT32U t;

    while (DEF_TRUE) {

        t = OSTimeGet();

        printf("Task1 \n");
        printf("OSTime=%lu\n",t);
        OSTimeDly(5);
    }
}

static  void  App_Task2 (void *p_arg)
{
   (void)&p_arg;
   INT32U t;

    while (DEF_TRUE) {

        t = OSTimeGet();

        printf("Task2 \n");
        printf("OSTime=%lu\n",t);
        OSTimeDly(10);
    }
}


output
Task1 OSTime=0

1 Ответ

0 голосов
/ 26 октября 2018

Кажется, что ваша функция Systick не работает правильно.Поскольку у меня нет опыта работы с чипом, который вы используете, я не могу дать вам полный ответ.Но ваша функция systick должна содержать что-то вроде этого.Это код от LPC17xx, но что-то должно произойти для вас

void  OS_CPU_SysTickHandler (void)
{
    CPU_SR_ALLOC();


    CPU_CRITICAL_ENTER();
    OSIntNestingCtr++;                                      /* Tell uC/OS-II that we are starting an ISR             */
    CPU_CRITICAL_EXIT();

    OSTimeTick();                                           /* Call uC/OS-II's OSTimeTick()                          */

    OSIntExit();                                            /* Tell uC/OS-II that we are leaving the ISR             */
}

OSTimeTick () используется для ваших OSTimeDly (), OSTimeGet () и переключения задач

...