RTOS系统1-基础
1、前后台系统与RTOS系统
1.1.前后台
早期嵌入式开发没有嵌入式操作系统的概念 ,直接操作裸机,在裸机上写程序,比如用51单片机基本就没有操作系统的概念。通常把程序分为两部分:前台系统和后台系统。
简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。
1.2.RTOS系统
RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作 ,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格。
在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。
RTOS操作系统:FreeRTOS,UCOS,RTX,RT-Thread,DJYOS等。
RTOS操作系统的核心内容在于:实时内核。
1.21.可剥夺型内核
RTOS的内核负责管理所有的任务,内核决定了运行哪个任务,何时停止当前任务切换到其他任务,这个是内核的多任务管理能力。多任务管理给人的感觉就好像芯片有多个CPU,多任务管理实现了CPU资源的最大化利用,多任务管理有助于实现程序的模块化开发,能够实现复杂的实时应用。
可剥夺内核顾名思义就是可以剥夺其他任务的CPU使用权,它总是运行就绪任务中的优先级最高的那个任务。
内核任务的优先级顺序:中断能打断所有任务,其他任务按照优先级排列,如下图:
2.FreeRTOS简介
FreeRTOS是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制。FreeRTOS提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。
FreeRTOS是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的,FreeRTOS结构简洁,可读性很强
3.源码下载
下载地址:FreeRTOS官网
下载后打开exe文件,设置源码地址,继续下载源码。
4、学习书籍:
161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-
On_Tutorial_Guide。
FreeRTOS_Reference_Manual_V9.0.0
ALIENTEK团队的FreeRTOS教程(书籍)
ARM Cortex-M3与Cortex-M4权威指南(第三版)
部分资料已经上传 FreeRTOS学习资料
RTOS系统1-基础相关推荐
- 国产rtos系统RT-Thread基础学习总结
个人一直在做linux底层相关的开发,没有什么实时操作系统rtos的使用经验,学习rtthread主要目的是理解实时操作系统相关的一些基础.理解实时和非实时的核心差别,选择性学习一下部分设计方案. 文 ...
- Esp8266 进阶之路25【高级篇】深聊下esp8266的串口 Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串口驱动文件。(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- 2020-10-20 任务三(一) RTOS系统初识
目录 一.RTOS系统是什么? 二.FreeRTOS 文件系统 文件系统 三.FreeRTOS 移植 准备工作 RTOS移植 移植验证 四. RTOS系统的学习(4.5中断测试实验) 总结 前言 ...
- 自己写一个RTOS系统
本项目为2021年自己从零到一写出来的简易RTOS系统,目的是为了能更加深入的学习RTOS系统及底层运行的逻辑,项目命名为"LinRTOS",为什么会取这个名字呢? LinRTOS ...
- RTOS系统与Linux系统的区别
RTOS是实时操作系统 Linux是时分系统,不过可以通过配置内核改成实时系统 实时操作系统 英文称Real Time Operating System,简称RTOS. 1.实时操作系统定义 实时操作 ...
- rtos系统c语言,让我们来学习RTOS,自己写RTOS
本帖最后由 lotoohe 于 2016-8-24 08:24 编辑 该RTOS系统命名为ZRTOS,是我在阅读了ucos后,并且借鉴了其它操作系统后实现的,完成了一些基础的工作,可以拿过来学习,也可 ...
- 硬件基础:嵌入式物联网系统软硬件基础知识大全
本文主要介绍嵌入式系统的基础知识,涉及嵌入式软件和硬件的方方面面,希望对各位有帮助. 嵌入式系统基础 1.嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功 ...
- Linux7-常用文件管理命令及系统变量基础
文件管理工具 cp命令 用于实现文件复制功能 明确源文件和目标文件 用法 单源复制 cp [OPTION]- [-T] SOURCE DEST 多源复制 cp [OPTION]- SOURCE- DI ...
- Django之入门 CMDB系统 (一) 基础环境
Django之入门 CMDB系统 (一) 基础环境前言作者: 何全,github地址: https://github.com/××× QQ交流群: 62-01-76-50-1 通过此教程完成从 ...
- CV:传统视觉知识—机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件)
CV:传统视觉知识-机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件) 目录 机器视觉三要素 1.what-测量.判断 2.why-灵活性.自动化
最新文章
- nyoj-205--求余数--(大整数取模)
- Android总结 之 AsyncTask(二)
- Meaven的pom文件配置
- 【POJ - 1751】Highways (最小生成树)
- BZOJ 4810 [Ynoi2017]由乃的玉米田(莫队+bitset)
- C语言中怎么自动生成时间,在C语言中转换时间的基本方法介绍
- Leetcode445 两数相加||(单链表)
- Rickie的软件测试学习笔记-第四周
- JavaScript设计模式入坑 1
- 用glew,glfw实现opengl学习笔记5课纹理(2)
- android fps 检测工具,Android FPS监测 方法总结
- 小记 xian80 坐标转换 wgs84
- Could not find artifact pom:2.0.0 in public
- 计算机无法读取内存,电脑内存条无法识别,真正的原因在这里
- java基础学习(五)
- err: git push.default Update were rejected because a pushed branch tip is behand remote
- springBoot 在过滤器中如何捕获抛出的异常并自定义返回信息
- 8个指标深度分析中国心理学预印本平台
- 树莓派PCA9685的舵机MG996R二度自由云台操控代码,搭配mqtt进行远程操控
- 公司 • Amazon财报-历年营收数据及业务占比
热门文章
- 什么是哈希冲突?如何解决?
- 罗塞塔石碑(Rosetta Stone)安装指南
- windows下ssh server搭建方法
- fiddler抓app包获取不到HTTPS请求的2个解决方案
- android telephonymanager 电话状态,TelephonyManager类:Android手机及Sim卡状态的获取
- 程序员面试100题之七 最长公共子字符串
- Java 性能调优的技巧有哪些?
- @PostMapping和@GetMapping使用详解
- echarts扇形图(饼图)常用的配置
- 华为magic ui就是鸿蒙系统,Magic UI系统是什么?Magic UI和EMUI的区别