热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

FreeRTOS笔记(十五)FreeRTOS总结

文章目录01–裸机和FreeRTOS区别1.1–裸机1.2–FreeRTOS1.3–区别02–对FreeRTOS的感受03–推荐上一文链接:FreeRTOS笔记(十四)[简]软件定

文章目录

  • 01 – 裸机和FreeRTOS区别
      • 1.1 – 裸机
      • 1.2 – FreeRTOS
      • 1.3 – 区别
  • 02 – 对FreeRTOS的感受
  • 03 – 推荐

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

01 – 裸机和FreeRTOS区别

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

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高级篇


推荐阅读
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 关于CMS收集器的知识介绍和优缺点分析
    本文介绍了CMS收集器的概念、运行过程和优缺点,并解释了垃圾回收器的作用和实践。CMS收集器是一种基于标记-清除算法的垃圾回收器,适用于互联网站和B/S系统等对响应速度和停顿时间有较高要求的应用。同时,还提供了其他垃圾回收器的参考资料。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
author-avatar
Allen
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有