FreeRtos到底是干嘛的,与普通的单片机编程(裸机开发)的区别

本文探讨了嵌入式系统中裸机开发与实时操作系统之间的区别。通过对比轮询系统和前后台系统的优缺点,解释了引入实时操作系统的必要性,并详细介绍了其如何通过优先级调度提高系统的响应速度。
  1. 在嵌入式方面,很多人都知道裸机开发(也就是普通的单片机开发),也知道实时操作系统,但是大家都搞不懂他们到底有什么区别,使用实时操作系统到底有什么样的优势?

     在日常的单片机开发中我们一般使用轮询系统或者前后台系统,轮询系统可以理解为一个while(1)那种死循环,一直循环执行很多的任务
    
 例如while(1)
       {
          //点亮LED
          //判断按键是否按下
           //摄像头接收数据
           //接收温湿度数据
          //等等等
       }
  1. 但是我们在执行点亮LED的时候,如果此时按下按键,那么就检测不到按键按下。所以这样是不好的。
    前后台系统是什么呢,就是把按键作为中断来处理,然后while循环的就后台系统,作为中断的按键叫前台系统,如果执行到LED,但是按键按下了,就会触发中断,这样相比于轮询系统是好的,而且单片机几乎都是使用前后台系统。
    那么为什么要引入前后台系统呢,因为执行的任务也是有重要性的高低的,像工业控制工厂,有些工厂对温度要求很高(防止出现意外情况),那么点灯就是次要的,所以我们采用操作系统,就好比给他们这些任务贴上标签一样,序号低的越重要,也就是优先级高,当低优先级的在运行的时候,忽然出现高优先级的,就会把CPU使用权给高优先级,所以会先处理优先级高的事情,而且也会响应中断,中断可以理解为优先级最高的。
### 单片机 FreeRTOS 裸机开发的优势劣势对比 #### 使用 FreeRTOS 的优势 - **简化并发处理** FreeRTOS 提供了一种简单而有效的方法来管理多个任务并实现并发执行。通过创建不同优先级的任务,开发者可以更轻松地管理优化系统的响应时间[^1]。 - **提高代码可读性维护性** 利用操作系统提供的API函数编写应用程序通常会使程序结构更加清晰有序,从而提高了软件的易理解度以及后期维护工作的效率[^2]。 - **丰富的功能支持** 包括但不限于信号量、互斥锁、队列等同步机制;内存池分配等功能模块都极大地增强了应用层编程灵活性的同时也减少了重复造轮子的工作量[^3]。 - **精确的时间控制** SysTick定时器被FreeRTOS接管后能够提供稳定可靠的周期性事件触发服务(如每毫秒一次),这对于实时性强的应用场景尤为重要[^4]。 #### 使用 FreeRTOS 的劣势 - **资源消耗增加** 尽管轻量化设计使得其占用空间较小,但对于极其受限于RAM/ROM容量的小型MCU来说仍然是额外负担。此外,上下文切换也会带来一定开销。 - **复杂度上升** 需要理解掌握更多概念技术细节才能充分发挥RTOS性能潜力,这无疑增加了项目初期的学习曲线长度。 #### 裸机开发的优势 - **极致性能调优** 不受任何中间件影响,在硬件层面直接操作可以获得最高效能表现,适合追求极限速度或最小化功耗的设计需求。 - **完全掌控全局** 所有外设初始化配置均由自己完成,不存在黑箱效应,有助于深入挖掘特定平台特性的利用价值。 #### 褥机开发的劣势 - **难以扩展移植** 缺乏标准化接口定义意味着当目标芯片更换时往往需要重写大量底层驱动逻辑,降低了跨平台兼容性。 - **缺乏高级抽象工具** 实现复杂的业务流程可能涉及到繁琐的状态机编码工作,而且没有现成的消息传递框架辅助协调各部分之间交互关系。 ```c // 示例:简单的FreeRTOS任务创建 void app_main(void){ BaseType_t xReturned; // 创建两个任务 xReturned = xTaskCreate( vTaskFunction, /* Task function */ "TASK", /* name of task */ configMINIMAL_STACK_SIZE * 8, /* Stack size in words*/ NULL, /* Parameter passed as input of the task */ tskIDLE_PRIORITY + 1,/* Priority of the task */ NULL); /* Task handle */ } ```
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值