html mip 网站,千海网站建设 小程序,东莞网上推广怎么做,交换机可以做网站跳转吗一、FreeRTOS 介绍
什么是 FreeRTOS #xff1f;
Free即免费的#xff0c;RTOS的全称是Real time operating system#xff0c;中文就是实时操作系统。
注意#xff1a;RTOS不是指某一个确定的系统#xff0c;而是指一类操作系统。比如#xff1a;uc/OS#xff0c;Fr…一、FreeRTOS 介绍
什么是 FreeRTOS
Free即免费的RTOS的全称是Real time operating system中文就是实时操作系统。
注意RTOS不是指某一个确定的系统而是指一类操作系统。比如uc/OSFreeRTOSRTX RT-Thread等这些都是RTOS类操作系统。
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统功能包括任务管 理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等可基本满 足较小系统的需要。 由于RTOS需占用一定的系统资源(尤其是RAM资源)只有μC/OS-II、 embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、 embOS等商业操作系统FreeRTOS操作系统是完全免费的操作系统具有源码公开、可移 植、可裁减、调度策略灵活的特点可以方便地移植到各种单片机上运行。
为什么选择 FreeRTOS ?
FreeRTOS 是免费的很多半导体厂商产品的SDKSoftware Development Kit软件开发工具包就使用FreeRTOS 作为其操作系统尤其是WIFI、蓝牙这些带有协议栈的芯片或模块。简单因为FreeRTOS的文件数量很少。
FreeRTOS 资料与源码下载
官网资料点击直达官网
祼机开发与 FreeRTOS
祼机Bare Machine是指硬件系统上没有任何操作系统支持的情况。在祼机开发中开发者需要自己编写所有的驱动程序和操作系统以实现设备控制和任务管理等功能。
FreeRTOS是一款面向嵌入式系统的实时操作系统具有轻量级、可移植、开放源代码等特点。在祼机开发中可以使用FreeRTOS作为操作系统来简化开发过程。
在祼机开发中使用FreeRTOS需要进行以下步骤 在硬件系统上移植FreeRTOS操作系统。 编写任务函数实现任务的具体功能。 使用FreeRTOS提供的API接口来进行任务管理、内存管理、时间管理、中断处理等操作。 根据具体需求编写设备驱动程序以实现对硬件设备的控制。
需要注意的是在祼机开发中使用FreeRTOS需要对系统硬件和软件进行深入的了解和掌握因此开发过程较为复杂。同时由于没有操作系统的支持所以开发者需要对任务管理、内存管理等方面进行更加细致和严密的设计以确保系统的稳定性和可靠性。
FreeRTOS 实现多任务的原理
严格来说 FreeRTOS 并不是实时操作系统因为它是分时复用的。系统将时间分割成很多时间片然后轮流执行各个任务。每个任务都是独立运行的互不影响由于切换的频率很快就感觉像是同时运行的一样
二、移植 FreeRTOS 到 STM32F103C8T6
手动移植
过程复杂且繁琐对新手不友好。如有需要手动移植可参照大佬FreeRTOS手动移植到STM32
使用CubeMX快速移植
快速移植流程
1. 在 SYS 选项里将 Debug 设为 Serial Wire 并且将 Timebase Source 设为 TIM2 其它定 时器也行。为何要如此配置下文解说。 2. 将 RCC 里的 HSE 设置为 Crystal/Ceramic Resonator 。 3. 时钟配置 4.打开串口 5. 选择 FREERTOS 选项并将 Interface 改为 CMSIS_V1 。V1 和 V2 有啥区别下文解释。
6. 配置项目信息并导出代码
7.导出代码之后打开文件加入下面代码和打开Use MicroLIB 使printf重定向到串口
8.测试是否移植成功 一些常见问题
1. Timebase Source 为什么不能设置为 SysTick ?
裸机的时钟源默认是 SysTick但是开启 FreeRTOS 后FreeRTOS会占用 SysTick 用来生成1ms 定时用于任务调度所以需要为其他总线提供另外的时钟源。
2. FreeRTOS 版本问题
V2 的内核版本更高功能更多在大多数情况下 V1 版本的内核完全够用。
3. FreeRTOS 各配置选项卡的解释
Events事件相关的创建Task and Queues 任务与队列的创建Timers and Semaphores 定时器和信号量的创建Mutexes 互斥量的创建FreeRTOS Heap Usage 用于查看堆使用情况config parameters 内核参数设置用户根据自己的实际应用来裁剪定制 FreeRTOS 内核 Include parameters FreeRTOS 部分函数的使能User Constants 相关宏的定义可以自建一些常量在工程中使用Advanced settings高级设置
4. 内核配置、函数使能的一些翻译
内核参数的理解内容非常多可以参考大佬FreeRTOS内核配置说明