| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> FreeRTOS(教程非常详细) -> 正文阅读 |
|
[嵌入式]FreeRTOS(教程非常详细) |
概述: ? ? ? 之前写了关于FreeRTOS的部分内容,为了方便阅读,现在给汇总到一起了。全部学习完后,恭喜你对FreeRTOS有了更深的认知。 为什么要学习 RTOS ? ? ? 当我们进入嵌入式这个领域的时候,往往首先接触的都是单片机编程,单片机编程又 首选 51 单片机来入门。这里面说的单片机编程通常都是指裸机编程,即不加入任何 RTOS (Real Time Operating System 实时操作系统)的程序。常用的 RTOS 有国外的FreeRTOS、 μC/OS、RTX 和国内的 FreeRTOS、Huawei LiteOS 和 AliOS-Things 等,其中尤以国外开源 且免费的 FreeRTOS 的市场占有率最高。 ? ? ? 在裸机系统中,所有的程序基本都是自己写的,所有的操作都是在一个无限的大循环 里面实现。现实生活中的很多中小型的电子产品用的都是裸机系统,而且也能够满足需求。 但是为什么还要学习 RTOS 编程,偏偏还要整个操作系统进来。一是项目需要,随着产品 要实现的功能越来越多,单纯的裸机系统已经不能够完美地解决问题,反而会使编程变得 更加复杂,如果想降低编程的难度,我们可以考虑引入 RTOS 实现多任务管理,这是使用 RTOS 的最大优势。二是学习的需要,必须学习更高级的东西,实现更好的职业规划,为 将来走向人生巅峰迎娶白富美做准备,而不是一味的在裸机编程上面死磕。作为一个合格 的嵌入式软件工程师,学习是永远不能停歇的事,时刻都得为将来准备。书到用时方恨少, 我希望机会来临时你不要有这种感觉。 ? ? ? 为了帮大家理清 RTOS 编程的套路,我们会在“裸机系统与多任务系统”章节简单的 分析下这两种编程方式的区别,这个区别我称它为学习 RTOS 的命门,只要打通这个任督 二脉,以后的 RTOS 学习可以说是易如反掌。在讲解这两种编程方法的区别的时候,我们 主要讲方法论,不会涉及到具体的代码编程,主要还是通过伪代码来讲解。 如何学习 RTOS ? ? ? ?裸机编程和 RTOS 编程的风格有些不一样,而且有很多人说 RTOS 的学习很难,这就 导致学习的人一听到 RTOS 编程就在心理面忌惮三分,结果就是出师未捷身先死。 ? ? ? 那么到底如何学习一个 RTOS?最简单的就是在别人移植好的系统之上,看看 RTOS 里面的 API 使用说明,然后调用这些 API 实现自己想要的功能即可。完全,不用关心底层 的移植,这是最简单快速的入门方法。这种方法各有利弊,如果是做产品,好处是可以快 速的实现功能,将产品推向市场,赢得先机,弊端是当程序出现问题的时候,因对这个 RTOS 不够了解,会导致调试困难,焦头烂额,一筹莫展。如果是学习,那么只会简单的 调用 API,那是不可取的,我们应该深入的学习其中一款 RTOS。 ? ? ? ?目前市场上现有的 RTOS,它们的内核实现方式都差不多,我们只需要深入学习其中 一款就行。万变不离其宗,以后换到其它型号的 RTOS,使用起来,那自然是得心应手。 那如何深入的学习一款 RTOS?这里有一个最有效也是最难的方法,就是阅读 RTOS 的源码,深究内核和每个组件的实现方式,这个过程枯燥且痛苦。但为了能够学到 RTOS 的精 华,你不入地狱谁入地狱? ? ? ? 市面上虽然有一些讲解相关 RTOS 源码的书,如果你基础不够,且先前没有使用过该 款 RTOS,那么源码看起来还是会非常枯燥,且并不能从全局掌握整个 RTOS 的构成和实现。 FreeRTOS 版权 ? ? ? FreeRTOS 由美国的 Richard Barry 于 2003 年发布,Richard Barry 是 FreeRTOS 的拥有 者和维护者,在过去的十多年中 FreeRTOS 历经了 9 个版本,与众多半导体厂商合作密切, 累计开发者数百万,是目前市场占有率最高的 RTOS。 ? ? ? FreeRTOS 于 2018 年被亚马逊收购,改名为 AWS FreeRTOS,版本号升级为 V10,且 开源协议也由原来的 GPLv2+修改为 MIT,与 GPLv2+相比,MIT 更加开放,你完全可以理 解为是为所欲为的免费。V9 以前的版本还是维持原样,V10 版本相比于 V9 就是加入了一 些物联网相关的组件,内核基本不变。亚马逊收购 FreeRTOS 也是为了进军眼下炒的火热 的物联网和人工智能。 FreeRTOS 收费问题 FreeRTOS ? ? ? FreeRTOS 是一款 “开源免费”的实时操作系统,遵循的是 GPLv2+的许可协议。这里说 到的开源,指的是你可以免费得获取到 FreeRTOS 的源代码,且当你的产品使用了 FreeRTOS 且没有修改 FreeRTOS 内核源码的时候,你的产品的全部代码都可以闭源,不用开源,但是当 你修改了 FreeRTOS 内核源码的时候,就必须将修改的这部分开源,反馈给社区,其它应用部 分不用开源。免费的意思是无论你是个人还是公司,都可以免费地使用,不需要掏一分钱。 OpenRTOS FreeRTOS 和 OpenRTOS 拥有的代码是一样的,但是可从官方获取到的服务却是不一 样的。FreeRTOS 号称免费,OpenRTOS 号称收费,它们的具体区别见表 ? SaveRTOS ? ? ? SaveRTOS 也是基于 FreeRTOS,但是 SaveRTOS 为某些特定的领域做了安全相关的设 计,有关 SaveRTOS 获得的安全验证具体见表格 。当然,SaveRTOS 也是需要收费,人 家这些安全验证可不是白做的。 ? ?首先自己先移植FreeRTOS到STM32中自己感受一下多任务操作系统和裸机开发有什么区别,教程前面已经有了,还有就是深度学习一下C语言的链表,以及队列,指针结构体等,这样让我们后面的学习变得很轻松。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:33:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |