人若无名 便可潜心练剑.|

hazy1k

园龄:7个月粉丝:14关注:0

2025-02-19 17:45阅读: 3评论: 0推荐: 0

第3章 多任务系统

第三章 多任务系统

相比前后台系统,多任务系统的事件响应也是在中断中完成的,但是事件的处理是在任务中完成的。在多任务系统中, 任务跟中断一样,也具有优先级,优先级高的任务会被优先执行。当一个紧急的事件在中断被标记之后,如果事件对应的任务的优先级足够高,就会立马得到响应。相比前后台系统,多任务系统的实时性又被提高了。

// 多任务系统简单示例
int flag = 0;
int main()
{
    HAL_Init(); // 初始化硬件
    RTOSInit(); // 初始化RTO
    RTOS_Start(); // 启动RTOS,开启任务调度
}
// 中断服务程序
void handler()
{
    flag = 1;
}
// 任务1
void task1()
{
    while (1)
    {
        if (flag == 1)
        {
            // 处理任务
            // ...
        }
    }
}

相比前后台系统中后台顺序执行的程序主体,在多任务系统中,根据程序的功能,我们把这个程序主体分割成一个个独立的,无限循环且不能返回的小程序,这个小程序我们称之为任务。每个任务都是独立的,互不干扰的,且具备自身的优先级,它由操作系统调度管理。加入操作系统后,我们在编程的时候不需要精心地去设计程序的执行流,不用担心每个功能模块之间是否存在干扰。

本文作者:hazy1k

本文链接:https://www.cnblogs.com/hazy1k/p/18724779

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   hazy1k  阅读(3)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起