FreeRTOS笔记(十五)FreeRTOS总结

上一文链接:FreeRTOS笔记(十四)[简] 软件定时器、事件组、任务通知


01 - 裸机和FreeRTOS区别

  学完FreeRTOS,应该要自己总结一下FreeRTOS和裸机的区别,宏观上说,FreeRTOS是一个运行在裸机上的微内核,它和裸机的最终目标是一致的,都是需要运行用户程序,接受一些输入,然后输出
  而微观上,FreeRTOS和裸机是有很大区别的,怎样的区别,在乎站在哪个角度上考虑,如果站在用户角度上,那么FreeRTOS和裸机可能没有区别,所以在这一切站在开发者的角度上考虑
Alt

1.1 - 裸机

  前台和后台,前台是中断,用于处理异步事件,后台是大循环,循环里面调用API完成相关操作,任务顺序执行
  裸机要使得任务并发性是可以的,使用中断实现一些固定的跳转方式,比如使用软件中断呼叫某些固定号数的任务程序,;整个程序逻辑简单的时候是没有问题的,但是当整个程序逻辑复杂的时候,比如手机,你完全不知道用户的下一个步骤到底是什么,所以必须考虑全部的可执行性,整个程序就会非常复杂,如果继续用裸机,可能可以,但是绝对难以维护和阅读,所以此时裸机显得无能为力

1.2 - FreeRTOS

  基于任务开发,核心是可剥夺的内核,实现多任务并发执行,任务是可以剥夺其他任务的CPU使用权,哪一个任务可以执行,哪一个任务需要等待,完全由内核决定和管理,开发者可以设计任务的优先级逻辑让任务之间按照开发者的意愿进行

1.3 - 区别

  总的来说,裸机用于处理逻辑简单、功能简单的需求,例如平衡小车、蓝牙玩具、闹钟等等,而FreeRTOS则用于处理逻辑复杂,功能复杂的需求,例如实现蓝牙协议和串口传输、实现并发C/S模式、高速环境采集器等等,具体细节如下表

……裸机FreeRTOS
逻辑复杂度
开发方式基于前后台基于任务
模块执行模式顺序并发
堆栈操作不需要操作需要操作
内存管理没有
模块通信没有任何保护机制的全局变量基于队列的各种含原子操作和保护的介质
模块独立性
应用例子平衡小车、蓝牙玩具、闹钟……蓝牙协议和串口传输、实现并发C/S模式、高速环境采集器
------------------

02 - 对FreeRTOS的感受

  对于裸机开发而言,FreeRTOS更像是提供了一个便捷的平台,不需要从轮子造起,任务之间的并发安全不需要考虑,这对于功能复杂、逻辑复杂的需求而言是个福音,但是任务的并发调度不一定要用FreeRTOS,自定义中断也能进行,只是FreeRTOS是经过千锤百炼得出的微内核,修改了各种BUG,对任务的并发调度有非常大的帮助,使用别人优秀的代码也是自己优秀的体现

03 - 推荐

  最后,推荐一下大牛的FreeRTOS笔记/教程,个人觉得比较全面
  FreeRTOS基础篇
  FreeRTOS高级篇

  • 9
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FreeRTOS是一个开源的实时操作系统(RTOS),专门用于嵌入式系统。它提供了一套可移植的API,使开发者能够轻松地编写多任务应用程序。 以下是一些关于FreeRTOS笔记: 1. 任务(Tasks):FreeRTOS使用任务实现并行执行。每个任务都有自己的独立堆栈空间和优先级。任务可以创建、删除和挂起。 2. 调度器(Scheduler):FreeRTOS的调度器负责决定哪个任务应该在给定时间运行。它使用优先级调度算法,并且可以配置为使用抢占式或协作式调度。 3. 信号量(Semaphores):信号量是一种用于同步和通信的对象。它可以用于任务之间的互斥访问共享资源或任务之间的通信。 4. 队列(Queues):队列提供了一种任务之间传递数据的方式。任务可以将数据发送到队列,另一个任务可以从队列中接收数据。 5. 事件标志组(Event Flags):事件标志组用于任务之间的同步和通信。一个任务可以等待一组特定的事件标志发生,另一个任务可以设置或清除这些事件标志。 6. 定时器(Timers):FreeRTOS提供了软件定时器,可以在指定时间间隔内运行回调函数。 7. 内存管理(Memory Management):FreeRTOS提供了内存管理功能,可以动态分配和释放内存。 8. 中断(Interrupts):FreeRTOS可以与硬件中断一起使用,以实现任务的抢占式调度。 这些只是FreeRTOS的一些基本概念和功能,它还有很多其他特性和组件。如果你对某个特定方面有更多的兴趣,请告诉我,我会提供更详细的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值