什么叫多任务系统 FreeRTOS任务管理

回想一下我们以前在使用 51、avr、stm32 单片机裸机(未使用系统)的时候一般都是在main 函数里面用while(1)做一个大循环来完成所有的处理,即应用程序是一个无限的循环,循环中调用相应的函数完成所需的处理。有时候我们也需要中断中完成一些处理。相对于多任务系统而言,这个就是单任务系统,也称作前后台系统,中断服务函数作为前台程序,大循环while(1)作为后台程序,如图所示:
前后台系统的实时性差,前后台系统各个任务(应用程序)都是排队等着轮流执行,不管你这个程序现在有多紧急,没轮到你就只能等着!相当于所有任务(应用程序)的优先级都是一样的。但是前后台系统简单啊,资源消耗也少啊!在稍微大一点的嵌入式应用中前后台系统就明显力不从心了,此时就需要多任务系统出马了。
多任务系统会把一个大问题(应用)“分而治之”,把大问题划分成很多个小问题,逐步的把小问题解决掉,大问题也就随之解决了,这些小问题可以单独的作为一个小任务来处理。这些小任务是并发处理的,注意,并不是说同一时刻一起执行很多个任务,而是由于每个任务执行的时间很短,导致看起来像是同一时刻执行了很多个任务一样。多个任务带来了一个新的问题,究竟哪个任务先运行,哪个任务后运行呢?完成这个功能的东西在rtos 系统中叫做任务调度器。不同的系统其任务调度器的实现方法也不同,比如 freertos是一个抢占式的实时多任务系统,那么其任务调度器也是抢占式的,运行过程如图所示:
高优先级的任务可以打断低优先级任务的运行而取得 cpu的使用权,这样就保证了那些紧急任务的运行。这样我们就可以为那些对实时性要求高的任务设置一个很高的优先级,比如自动驾驶中的障碍物检测任务等。高优先级的任务执行完成以后重新把cpu 的使用权归还给低优先级的任务,这个就是抢占式多任务系统的基本原理。

芯片短缺影响本田数万辆汽车研发进程
外媒:央视指责苹果是对华为中兴在美遭遇的“报复”
基于AM335x处理器的嵌入式核心板模块
LED显示屏应用加速向市政工程方面渗透
高通产品总监秦牧云:骁龙821推动新一代手机的智能体验
什么叫多任务系统 FreeRTOS任务管理
加油站lora无线数传方案相比加油站有线数据监控中有哪些优势
野火电子成为瑞萨电子MCU生态战略合作伙伴
SD-WAN是如何改变网络服务的
基于RFID开发的的车载物联网的未来发展前景
什么是MCU_MCU的概念
碳纳米管集成电路综合抗辐照性能研究领域取得重要进展
关于中国芯片研发投入和收入对比分析
带动巴城智能制造产业发展,为昆山高质量发展贡献东威力量
意法半导体新ACEPACK功率模块可自由地优化散热器尺寸和功率耗散
电热恒温培养箱DHP-9012的产品特点是什么
福克斯公司宣布将收购视频流公司Tubi
TDK最近推出新款无线充电蓝牙音箱
为推动股权投资更好更快地发展 中国移动投资千亿
英特尔Skylake处理器能给工程师带来什么?