本项目实现的 RTOS 时间基准使用了 SysTick,但 STM32 HAL 库的时间基准也为 SysTick ,因此可能存在潜在的问题,如果出现问题可以按照 “6、补充 - 更换 RTOS 时基” 小节所述修改完成的 RTOS 内核 1、参考资料 FreeRTOS内核实现_忆昔z的博客-CSDN博客 GitHub - aeneag/FreeRTOS_kernel: 深入理解FreeRTOS内核,...
/* FreeRTOSConfig.h */ // 设置内核中断优先级(最低优先级) #defineconfigKERNEL_INTERRUPT_PRIORITY 15 4.3、prvStartFirstTask( ) prvStartFirstTask是使用汇编语言编写的函数,我们要实现的 RTOS 内核中一共有三个函数是由汇编语言编写的,除了这个外还有 4.4 和 4.5 两个小节的函数,该函数实际上仍然没有真正...
轻量级:FreeRTOS内核代码简洁,占用资源少,适合资源受限的嵌入式系统。2. FreeRTOS内核在嵌入式系统中的应用 FreeRTOS在嵌入式系统中有着广泛的应用,包括但不限于: 智能家居:如智能灯泡、智能插座等,通过FreeRTOS实现设备间的通信和控制。 工业自动化:如PLC(可编程逻辑控制器)、传感器网络等,利用FreeRTOS实现实时数据...
《FreeRTOS内核实现与应用开发实战指南》阅读随笔 一、FreeRTOS内核概述 FreeRTOS是一个广泛应用于嵌入式系统的开源实时操作系统(RTOS)。其核心理念是提供一套可靠、高效、灵活的实时计算框架,以满足嵌入式应用对于实时性、可靠性和资源利用的高要求。以下是对FreeRTOS内核的简要概述: 实时性:RTOS的核心特性之一是实时...
第一部分 从0到1教你写FreeRTOS内核 本部分以FreeRTOS Nano为蓝本,抽丝剥茧,不断迭代,教大家如何从0开始把FreeRTOS写出来。这一部分着重讲解FreeRTOS实现的过程,当你学完这部分之后,再来重新使用FreeRTOS或者其他RTOS,将会得心应手,不仅知其然,而且知其所以然。在源码实现的过程中,涉及的数据类型、变量名称、函数...
FreeRTOS内核实现(七):支持时间片 1. 时间片概念与测试 1.1 时间片概念 ① 同一个优先级下可以有多个任务,当CPU分配到该优先级时,每个任务可以轮流使用CPU,其中每个任务使用CPU的时间就称作时间片 ②在RTOS中,最小的时间单位为一个tick,即SysTick的中断周期。RT-Thread和uC/OS中可以指定时间片的大小为多个tick...
在开始写FreeRTOS内核之前,我们先新建一个FreeRTOS的工程,Device选择Cortex-M3(Cortex-M4或Cortex-M7)内核的处理器,调试方式选择软件仿真,然后我们再开始一步一步地教大家把FreeRTOS内核从0到1写出来,让大家彻底搞懂FreeRTOS的内部实现和设计的哲学思想。最后我们再把FreeRTOS移植到野火STM32开发板上,到了最后的移植...
FreeRTOS内核实现与应用开发实战指南: 基于STM32 刘火良 杨森 编著 前言 如何学习本书 本书系统讲解FreeRTOS,共分为两个部分。第一部分重点讲解FreeRTOS的原理实现,从0开始,不断迭代,教你把FreeRTOS的内核写出来,让你彻底学会任务是如何定义的、系统是如何调度的(包括底层的汇编代码讲解)、多优先级是如何实现的等...
在真正开始动手写FreeRTOS内核之前,我们先来讲解下单片机编程中的裸机系统和多任务系统(不仅限于 FreeRTOS)的区别。 5.1.裸机系统¶ 裸机系统通常分成轮询系统和前后台系统,有关这两者的具体实现方式请看下面的讲解。 5.1.1.轮询系统¶ 轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一...
FreeRTOS简单内核实现6 优先级 0、思考与回答 0.1、思考一 如何实现 RTOS 内核支持多优先级? 因为不支持优先级,所以所有的任务都插入了一个名为pxReadyTasksLists的就绪链表中,相当于所有任务的优先级都是一致的,那如果我们创建一个就绪链表数组,数组下标代表优先级,优先级为 x 的任务就插入到pxReadyTasksLists[x...