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

📄 ext2.c

📁 一个小型的实时操作系统 对理解操作系统有很好的帮助
💻 C
字号:
/*********************************************************************************************************
**                                        Small RTOS
**                                   The Real-Time Kernel
**                           (c) Copyright 2002-2003, chenmingji
**                                     All Rights Reserved
**                                      V1.50.0 内部测试版
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: ext2.c
**创   建   人: 陈明计
**最后修改日期: 2004年8月8日
**描        述: ext2源代码。
**
********************************************************************************************************/


#include "config.h"

void TaskA(void *Pdata);
void TaskB(void *Pdata);
void TaskC(void *Pdata);

OS_STK        TaskStk[3][512];

        int main(void)
{
    OSInit();

    OSSetRoundTick(6, 40);
    OSTaskCreate(TaskA, NULL, &(TaskStk[0][512 -1]), 6, 0, 512, USR32Mode, 0);
    while(1)
    {
        PCON = PCON | 0x01;                     /* CPU进入休眠状态 */
    }
}

        void InitialiseUART0(uint32 bps)
{  	
    uint16 Fdiv;
    
    PINSEL0 = (PINSEL0 & 0xfffffff0) | 0x05;    /* 选择管脚为UART0 */

    U0LCR = 0x80;                               /* 允许访问分频因子寄存器 */
    Fdiv = (Fpclk / 16) / bps;                  /* 设置波特率 */
    U0DLM = Fdiv / 256;							
	U0DLL = Fdiv % 256;						
    U0LCR = 0x03;                               /* 禁止访问分频因子寄存器 */
                                                /* 且设置为8,1,n */
	U0IER = 0x00;                               /* 禁止中断 */
    U0FCR = 0x00;                               /* 初始化FIFO */
} 

                            void TaskA(void *Pdata)
{
    uint32 i;

    Pdata = Pdata;
    TargetInit();
    InitialiseUART0(115200);
    OSTaskCreate(TaskB, NULL, &(TaskStk[1][512 -1]), 6, 1, 512, USR32Mode, 0);
    OSTaskCreate(TaskC, NULL, &(TaskStk[2][512 -1]), 6, 2, 512, USR32Mode, 0);
    while (1)
    {
        U0THR = '0';
        for (i = 0; i < 50000; i++);
    } 
}

                            void TaskB(void *Pdata)
{
    uint32 i;

    Pdata = Pdata;
    while (1)
    {
        U0THR = '1';
        for (i = 0; i < 100000; i++);
    }
}

                            void TaskC(void *Pdata)
{
    uint32 i;

    Pdata = Pdata;
    while (1)
    {
        U0THR = '2';
        for (i = 0; i < 150000; i++);
    }
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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