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

📄 main2.c

📁 Bycore是一个嵌入式操作系统内核。Bycore包括内存管理、任务管理、中断管理、任务互斥、同步与通信管理等功能。Bycore全部由C语言完成
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "cpu.h"
#include "regdef.h"
#include "drivers\console.h"
#include "include\core.h"
#include "include\pipe.h"
#include "include\mailbox.h"


#define STACK_SIZE 4096
#define SAME_PRIO 61
#define UART_CTL_SEM_ID 125
#define TYPE 1
sem_t *uart_ctrl_sem;

void Task0(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task0 is running!\n");
            Print("The old priority of task0 is: %d\n", current()->prio);
            Print("now change task0's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task0 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(63);
    }
}



void Task1(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task1 is running!\n");
            Print("The old priority of task1 is: %d\n", current()->prio);
            Print("now change task1's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task1 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(82);
    }
}



void Task2(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task2 is running!\n");
            Print("The old priority of task2 is: %d\n", current()->prio);
            Print("now change task2's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task2 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(98);
    }
}



void Task3(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task3 is running!\n");
            Print("The old priority of task3 is: %d\n", current()->prio);
            Print("now change task3's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task3 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(68);
    }
}



void Task4(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task4 is running!\n");
            Print("The old priority of task4 is: %d\n", current()->prio);
            Print("now change task4's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task4 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(230);
    }
}



void Task5(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task5 is running!\n");
            Print("The old priority of task5 is: %d\n", current()->prio);
            Print("now change task5's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task5 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(148);
    }
}



void Task6(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task106 is running!\n");
            Print("The old priority of task6 is: %d\n", current()->prio);
            Print("now change task6's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task6 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(120);
    }
}



void Task7(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task7 is running!\n");
            Print("The old priority of task7 is: %d\n", current()->prio);
            Print("now change task7's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task7 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(65);
    }
}



void Task8(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task8 is running!\n");
            Print("The old priority of task8 is: %d\n", current()->prio);
            Print("now change task8's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task8 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(23);
    }
}



void Task9(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task9 is running!\n");
            Print("The old priority of task9 is: %d\n", current()->prio);
            Print("now change task9's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task9 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(163);
    }
}




void Task10(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task10 is running!\n");
            Print("The old priority of task10 is: %d\n", current()->prio);
            Print("now change task10's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task10 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(36);
    }
}



void Task11(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task11 is running!\n");
            Print("The old priority of task11 is: %d\n", current()->prio);
            Print("now change task11's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task11 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(64);
    }
}



void Task12(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task12 is running!\n");
            Print("The old priority of task12 is: %d\n", current()->prio);
            Print("now change task12's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task12 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(152);
    }
}



void Task13(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task13 is running!\n");
            Print("The old priority of task13 is: %d\n", current()->prio);
            Print("now change task13's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task13 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(45);
    }
}



void Task14(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task14 is running!\n");
            Print("The old priority of task14 is: %d\n", current()->prio);
            Print("now change task14's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task14 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(123);
    }
}



void Task15(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task15 is running!\n");
            Print("The old priority of task15 is: %d\n", current()->prio);
            Print("now change task15's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task15 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(58);
    }
}



void Task16(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task16 is running!\n");
            Print("The old priority of task16 is: %d\n", current()->prio);
            Print("now change task16's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task16 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(231);
    }
}



void Task17(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {
            Print("Task17 is running!\n");
            Print("The old priority of task17 is: %d\n", current()->prio);
            Print("now change task17's priority!\n");
            rand = get_clock() &0x3F;
            if(rand > MAX_PRIO - 1) {
                rand = MAX_PRIO - 1;
            }
            osChgPrio(rand);
            Print("The new priority of task17 is: %d\n", current()->prio);
            Print("\n");
        }
        semPost(UART_CTL_SEM_ID, uart_ctrl_sem);
        osWait(45);
    }
}



void Task18(void) {
    uword_t rand;
    uword_t err;
    while(1) {
        semGain(UART_CTL_SEM_ID, uart_ctrl_sem, &err);
        if(err == SEM_OK) {

⌨️ 快捷键说明

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