⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 一个ADS下的ucos-II的移植代码,大家
💻 C
字号:
/*
 * File:        ping.c
 *
 * uC/OS Real-time multitasking kernel for the ARM processor.
 *
 * This program is an example of using semaphore to
 * implement task rendevous.
 *
 * Created by Marco Graziano (marcog@crl.com).
 *
 */

#include	"includes.h"               /* uC/OS interface */
#include    "../inc/44BLIB.H"


/* allocate memory for tasks' stacks */
#ifdef SEMIHOSTED
#define STACKSIZE       (SEMIHOSTED_STACK_NEEDS+64)
#else
#define	STACKSIZE	64
#endif
unsigned int Stack1[STACKSIZE];
unsigned int Stack2[STACKSIZE];

/* semaphores event control blocks */
OS_EVENT *Sem1;
OS_EVENT *Sem2;

/*
 * Task running at the highest priority. 
 */
void
 Task1(void *i)
{
    INT8U Reply, n;

    for (;;)
    {
        /* wait for the semaphore  */
        OSSemPend(Sem2, 0, &Reply);

        uHALr_printf("1+");

        /* wait a short while */
		for(n=0;n<20;n++)
		{
			Led_Display(0x08);		//LED点亮/熄灭状态设置
			OSTimeDly(500);		//延时若干个100us
			Led_Display(0x04);		//LED点亮/熄灭状态设置
			OSTimeDly(500);
		}
		uHALr_printf("1-");

        /* signal the semaphore */
        OSSemPost(Sem1);
    }
}

void
 Task2(void *i)
{
    INT8U Reply, n;

    for (;;)
    {
        /* wait for the semaphore */
        OSSemPend(Sem1, 0, &Reply);

        uHALr_printf("[");

        /* wait a short while */
		for(n=0;n<8;n++)
		{
			Led_Display(0x08);		//LED点亮/熄灭状态设置
			OSTimeDly(500);		//延时若干个100us
			Led_Display(0x04);		//LED点亮/熄灭状态设置
			OSTimeDly(500);
		}
        uHALr_printf("2]");

        /* signal the semaphore */
        OSSemPost(Sem2);
    }
}

/*
 * Main function.
 */
int main(void)
{
//    char Id1 = '1';
//    char Id2 = '2';

    /* do target (uHAL based ARM system) initialisation */
    ARMTargetInit();
    
    /* needed by uC/OS */
    OSInit();

    OSTimeSet(0);
    /* 
     * create the semaphores
     */
//    Sem1 = OSSemCreate(1);
    //Sem2 = OSSemCreate(1);

    /* 
     * create the tasks in uC/OS and assign decreasing
     * priority to them 
     */
//    OSTaskCreate(Task1, (void *)&Id1, (void *)&Stack1[STACKSIZE - 1], 1);
//    OSTaskCreate(Task2, (void *)&Id2, (void *)&Stack2[STACKSIZE - 1], 2);

    /* Start the (uHAL based ARM system) system running */
    ARMTargetStart();

    /* start the game */
    OSStart();

    /* never reached */
    
    return 0;
}                               /* main */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -