FreeRTOS操作系统的学习(一)

操作系统的定义:管理和控制计算机硬件与软件资源的计算机程序,直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。其介于APP和硬件之间。

FreeRTOS操作系统的学习(一)_第1张图片

 2、为什么要使用操作系统:
1)与裸机相比,大大提高了CPU的灵活性。
2)与裸机相比,可以使用少量的代码来实现更加复杂的功能
3)屏蔽硬件:使得上层应用APP移植性更好。
OS:操作系统

3、常见的操作系统

安卓、IOS、Windows(不开源)、Linux(开源)、塞班、鸿蒙、Vxworks、wince、RTT、UCOS、FreeRTOS等。

操作系统的分类

(1)实时的操作系统(RTOS)

定期发生一次系统的调度,占用CPU的任务就会交出CPU的使用权,操作系统按照优先级高低进行重新分配CPU。系统调度就是CPU重新选择任务执行。每一个任务的执行时间是不固定的,任务与任务之间的切换是以优先级为调度原则,优先级高的任务可以抢占优先级低的任务的CPU的使用权,叫抢占式内核,响应速度快。

RTT(国产)、UCOSII(学习免费、商用收费,资料齐全)、FreeRTOS(学习免费、商用免费,资料齐全、使用人数较多)

(2)分时操作系统

系统分配若干个时间片给每个任务,当前任务执行完自己的时间后会自动交出CPU使用权给下一个任务。时间片:每一个时间片都是一样的,系统会分配若干个时间片给每个任务。

(3)半分时半实时操作系统

有一些任务是实时的,有一些任务是分时的。

具体使用哪一种操作系统由平台来决定。

FreeRTOS的概述

FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁剪、调度策略灵活的特点,可以方便地移植到各种单片机上运行。

 FreeRTOS 的特点

FreeRTOS 的主要特点:
1. 支持抢占式调度,合作式调度和时间片调度。
2. SafeRTOS 作为 FreeRTOS 的衍生品大大提高了 FreeRTOS 代码完整性。
3. 用于低功耗的 Tickless 模式。
4. 支持 35 种系统架构。
5. FreeRTOS-MPU 支持 M3/M4/M7 内核的 MPU(内存保护单元)。
6. 设计的简单易用,典型的内核使用大小在 4k-9k。
7. 移植非常简单,代码主要用 C 编写。
8. 同时支持合作式和抢占式任务。
9. 支持消息队列、 二值信号量、 计数信号量、 递归信号量和互斥信号量,可用于任务与任务间的消息传递和同步,任务与中断间的消息传递和同步。
10. 优先级继承方式的互斥信号量。

11. 高效的软件定时器。                                                                                                               

12. 强大的跟踪执行函数。                                                                                                           

13. 堆栈溢出检查                                                                                                                       

14. 提供丰富的,配置好的工程例子。
15. 提供论坛技术支持,有可选的商业支持和许可版本。
16. 任务的数量不限。
17. 任务优先级数量不限。
18. 多个任务可以分配相同优先级,即支持时间片调度。
19. 免费的开发工具。
20. 免费的嵌入式软件源码。
21. 免版权费。

FreeRTOS 核心源码文件的编写遵循 MISRA 代码规则,同时支持各种编译器。但是不支持C语言的新标准C99和C11的一些特性和语法。

移植前准备工作说明
1. IDE 开发环境使用Keil 5  MDK,支持 STM32F103,F407和 F429 与新塘的M4系列的芯片
2、使用的简单工程里面不能有 SysTick,PendSV 和 SVC 三个系统中断的使用,因为 FreeRTOS 系统要使用这三个中断。

你可能感兴趣的:(学习,c语言,单片机)