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-基础相关推荐

  1. 国产rtos系统RT-Thread基础学习总结

    个人一直在做linux底层相关的开发,没有什么实时操作系统rtos的使用经验,学习rtthread主要目的是理解实时操作系统相关的一些基础.理解实时和非实时的核心差别,选择性学习一下部分设计方案. 文 ...

  2. Esp8266 进阶之路25【高级篇】深聊下esp8266的串口 Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串口驱动文件。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  3. 2020-10-20 任务三(一) RTOS系统初识

    目录 一.RTOS系统是什么? 二.FreeRTOS  文件系统 文件系统 三.FreeRTOS  移植 准备工作 RTOS移植 移植验证 四. RTOS系统的学习(4.5中断测试实验) 总结 前言 ...

  4. 自己写一个RTOS系统

    本项目为2021年自己从零到一写出来的简易RTOS系统,目的是为了能更加深入的学习RTOS系统及底层运行的逻辑,项目命名为"LinRTOS",为什么会取这个名字呢? LinRTOS ...

  5. RTOS系统与Linux系统的区别

    RTOS是实时操作系统 Linux是时分系统,不过可以通过配置内核改成实时系统 实时操作系统 英文称Real Time Operating System,简称RTOS. 1.实时操作系统定义 实时操作 ...

  6. rtos系统c语言,让我们来学习RTOS,自己写RTOS

    本帖最后由 lotoohe 于 2016-8-24 08:24 编辑 该RTOS系统命名为ZRTOS,是我在阅读了ucos后,并且借鉴了其它操作系统后实现的,完成了一些基础的工作,可以拿过来学习,也可 ...

  7. 硬件基础:嵌入式物联网系统软硬件基础知识大全

    本文主要介绍嵌入式系统的基础知识,涉及嵌入式软件和硬件的方方面面,希望对各位有帮助. 嵌入式系统基础 1.嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功 ...

  8. Linux7-常用文件管理命令及系统变量基础

    文件管理工具 cp命令 用于实现文件复制功能 明确源文件和目标文件 用法 单源复制 cp [OPTION]- [-T] SOURCE DEST 多源复制 cp [OPTION]- SOURCE- DI ...

  9. Django之入门 CMDB系统 (一) 基础环境

    Django之入门 CMDB系统  (一) 基础环境前言作者: 何全,github地址: https://github.com/×××    QQ交流群: 62-01-76-50-1 通过此教程完成从 ...

  10. CV:传统视觉知识—机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件)

    CV:传统视觉知识-机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件) 目录 机器视觉三要素 1.what-测量.判断 2.why-灵活性.自动化

最新文章

  1. nyoj-205--求余数--(大整数取模)
  2. Android总结 之 AsyncTask(二)
  3. Meaven的pom文件配置
  4. 【POJ - 1751】Highways (最小生成树)
  5. BZOJ 4810 [Ynoi2017]由乃的玉米田(莫队+bitset)
  6. C语言中怎么自动生成时间,在C语言中转换时间的基本方法介绍
  7. Leetcode445 两数相加||(单链表)
  8. Rickie的软件测试学习笔记-第四周
  9. JavaScript设计模式入坑 1
  10. 用glew,glfw实现opengl学习笔记5课纹理(2)
  11. android fps 检测工具,Android FPS监测 方法总结
  12. 小记 xian80 坐标转换 wgs84
  13. Could not find artifact pom:2.0.0 in public
  14. 计算机无法读取内存,电脑内存条无法识别,真正的原因在这里
  15. java基础学习(五)
  16. err: git push.default Update were rejected because a pushed branch tip is behand remote
  17. springBoot 在过滤器中如何捕获抛出的异常并自定义返回信息
  18. 8个指标深度分析中国心理学预印本平台
  19. 树莓派PCA9685的舵机MG996R二度自由云台操控代码,搭配mqtt进行远程操控
  20. 公司 • Amazon财报-历年营收数据及业务占比

热门文章

  1. 什么是哈希冲突?如何解决?
  2. 罗塞塔石碑(Rosetta Stone)安装指南
  3. windows下ssh server搭建方法
  4. fiddler抓app包获取不到HTTPS请求的2个解决方案
  5. android telephonymanager 电话状态,TelephonyManager类:Android手机及Sim卡状态的获取
  6. 程序员面试100题之七 最长公共子字符串
  7. Java 性能调优的技巧有哪些?
  8. @PostMapping和@GetMapping使用详解
  9. echarts扇形图(饼图)常用的配置
  10. 华为magic ui就是鸿蒙系统,Magic UI系统是什么?Magic UI和EMUI的区别