# schedule_simulator **Repository Path**: haiyao_noah/schedule_simulator ## Basic Information - **Project Name**: schedule_simulator - **Description**: MCU运行环境模拟器,可模拟multi-task环境 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-04-16 - **Last Updated**: 2023-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: 调度与模拟器 ## README # schedule_try ## 简介 本来想写一个模拟单片机的运行环境的测试工具,后来基本完成了一个基于一个时间片轮转的调度器。 其中包含一个timer作为单片机的时钟。 其中线程的创建参考了freeRTOS的实现,线程栈自创建,管理权可以由线程自持也可以注册统一管理。 ## 编译测试 **默认release** ```shell mkdir build && cd build && cmake .. && make -j ./test ``` **调试debug** ```shell mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug .. && make -j ./test ``` ![运行结果](https://gitee.com/haiyao_noah/schedule_try/raw/master/doc/test.PNG) ## DEMO 模拟单片机的main入口结构 ```c //设置timer信号和处理器 mask_signal_init(); /* 设置timer间隔 && start Timerr*/ //默认间隔1s init_timer(); //添加task们 task_create("test1", 1024 * 1, task1, 1); task_create("test2", 1024 * 1, task2, 1); task_create("test3", 1024 * 1, task3, 1); //开始调度task们 start_schedule(); //模拟器主进程 while(1) { } ``` ## TODO >目前只实现了简单时间片任务队列的循环轮转。 >优先级队列模拟和优先级中断调度模拟等待实现