FreeRTOS

FREERTOS_LWIP TcpServer 加快接收速度

刚开始调试时,关注点都在接收缓存等参数上,接受的间隔上限时钟在250ms左右。 后来发现是其中一个参数的设定决定了接收的速度,调整参数后,可以达到每80ms接收1024个字节。 发文留存,备忘。 ......
FREERTOS_LWIP TcpServer FREERTOS 速度 LWIP

《Mastering the FreeRTOS Real Time Kernel》读书笔记(3)队列管理

4.队列管理 队列,在一些系统中被称为消息队列,可以理解为信息中转站。是任务和任务,任务和中断之间可以互相读和写的一个共享空间。 4.2 队列的特征 存储数据 队列本质上是一个先进先出的缓冲区(FIFO),所以可以存储一定容量的数据。 有两种方式可以实现FIFO队列: 1.将发送给队列的数据复制到队 ......
队列 Mastering FreeRTOS 笔记 Kernel

《Mastering the FreeRTOS Real Time Kernel》读书笔记(2)任务管理

3.任务管理 如何为每个任务分配处理时间,如何选择在任何给定时间执行何种任务,任务优先级,任务状态。 3.2 任务功能 每个任务必须返回void,并接受一个void类型指针。这些任务一般会写成一个无限循环,由内核来调度,完成任务安排,创建和删除。 3.3 顶层任务状态 由于一般单片机处理器为单核单线 ......
Mastering FreeRTOS 任务 笔记 Kernel

《Mastering the FreeRTOS Real Time Kernel》读书笔记(1)堆内存管理

这是161204的版本,不完全覆盖目前最新版本的内核。 0.关于freeRTOS 首先提出了了在小型嵌入式系统中为何需要多任务管理的问题,介绍了freeRTOS的用途。然后开始做广告,吹了一波freeRTOS的好处。其中要注意一些关键的名词:任务优先级分配、任务通知、队列、信号量、互斥锁、软定时器、 ......
Mastering FreeRTOS 内存 笔记 Kernel

FreeRTOS 和 RT-Thread 功能差别对比

软件定时器 FreeRTOS:定时器函数在 task 中被调用,居于任务调度的定时器 RT-Thread:定时器函数既可以配置为在 task 中被调用,也可以配置为在 tick 中断中被调用 ......
RT-Thread 差别 FreeRTOS 功能 Thread

FreeRTOS添加计时器

最近需要将在Linux上的代码移植到FreeRTOS上,许多系统函数运行不了,其中就包括gettimeofday,以及使用定时器的不同。 FreeRTOS的时间管理 首先,FreeRTOS 的系统时钟节拍可以在配置文件 FreeRTOSConfig.h 里面设置: #define configTIC ......
计时器 FreeRTOS

FreeRTOS在Cortex-M系列内核中遇到的关于系统滴答中断的问题

众所周知,在Cortex-M内核中,系统节拍由Systick时钟提供,当配置好系统滴答时钟后,每次时钟中断就会触发中断处理函数 xPortSysTickHandler(), void xPortSysTickHandler( void ) { /* The SysTick runs at the l ......
内核 FreeRTOS Cortex-M Cortex 问题

FreeRTOS在Cortex-M系列内核中遇到的关于系统滴答中断的问题

众所周知,在Cortex-M内核中,系统节拍由Systick时钟提供,当配置好系统滴答时钟后,每次时钟中断就会触发中断处理函数 xPortSysTickHandler(), void xPortSysTickHandler( void ) { /* The SysTick runs at the l ......
内核 FreeRTOS Cortex-M Cortex 问题

十九、STM32移植FreeRTOS操作系统

1.环境安装 下载FreeRTOS源码 2.移植 2.1 在STM32项目下创建freertos文件夹,然后在文件夹下创建inc、src、port文件夹 2.2 将FreeRTOS源码目录下的FreeRTOS/Source/include文件夹下的.h头文件全部复制到STM32项目的freertos ......
FreeRTOS 系统 STM 32

FreeRTOS 原理 --- heap 堆内存的使用

FreeRTOS一共提供了5种申请内存的方案 heap1 只申请不释放,内存利用率最高。申请出来的内存块,没有内存块头记录这个内存的大小,所以也无法释放,也正是没有内存块头,内存利用率高 使用场景:不需要频繁申请内存 heap2 能申请能释放,不能合并内存块。每个内存块都有一个内存块头,有一个链表管 ......
FreeRTOS 原理 内存 heap

FreeRTOS 原理 --- 软件定时器

简介 有一个定时器任务,任务内读队列。启动定时器,会向队列发送消息,定时器任务读到消息后把定时器回调函数等信息作为一个链表项插入链表。当链表有链表项,算出还剩多长时间执行定时器回调函数,这个时间作为定时器任务阻塞时间。所以定时器任务重新运行要么是时间到准备运行定时器回调函数,要么是队列接收到消息。 ......
定时器 FreeRTOS 原理 软件

FreeRTOS 原理 --- 任务通知

简介 任务通知核心包含是一个32位的无符号整数和一个8位的通知状态,这两个在任务控制块中,通知任务就是一个任务或者中断改写另外一个任务中的32位的无符号整数,改写这个整数的方式可以有所不同 可以让这个整数加1,模拟信号量 设置该整数的指定的某些位,模拟事件组 直接选择覆盖或者不覆盖写入,模拟消息队列 ......
FreeRTOS 原理 任务

FreeRTOS 原理 --- 事件组

简介 信号量,队列。它们都具有一下特性: 它们允许在阻塞态下等待单个事件的发送。 它们在事件发送时可以取消阻塞的单个任务。 事件组是FreeRTOS提供另一种事件传递的方法,它与队列和信号量的不同点: 时间组允许任务在阻塞态下等待一个或多个事件。 事件发生时,事件组将取消阻塞等待同一事件或事件组合的 ......
FreeRTOS 原理 事件

FreeRTOS 原理 --- 队列

队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(固定长度消息传递)。 队列的优点: 不同任务之间的读写队列操作是互斥的(通过关中断实现) 读写队列由阻塞唤醒机制,阻塞的任务不抢占CPU资源(比如读队列,发现队列空,阻塞当前任务,除非其他任务有写队列,否则当前任务不再占用CPU资源) 队列 ......
队列 FreeRTOS 原理

FreeRTOS 原理 --- 任务调度机制

任务的状态 运行态 就绪态 阻塞态(被动让出CPU) 挂起态(主动让出CPU) 就绪链表 就绪态,每个任务优先级对应一个链表,如下: PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ] = {0}; /*< ......
FreeRTOS 原理 机制 任务

FreeRTOS 中的调度算法

FreeRTOS 中的调度算法 01 调度算法概述 调度算法的作用: 实时系统的调度需求 相应时间要求 任务优先级 资源利用率 FreeRTOS 调度算法的目标 提供可预测的任务调度 实现任务的优先级管理 最大化系统资源利用率 FreeRTOS 调度算法的分类: 抢占式调度算法 优先级抢占式调度算法 ......
算法 FreeRTOS

栈和堆的区别、FreeRTOS 中的任务栈

栈和堆的区别、FreeRTOS 中的任务栈 01 堆和栈的概念 堆 功能 堆是一块用于动态分配内存的区域,用于存储程序运行时动态创建的对象。堆的大小可以在程序运行时动态调整。 特点 堆的分配和释放是由程序员手动控制的。堆的分配和释放顺序的任意的,不需要遵循先进先出的原则。堆的分配和释放需要显式的调用 ......
FreeRTOS 任务

FreeRTOS 和裸机的区别

FreeRTOS 和裸机的区别 01 FreeRTOS 简介 什么是FreeRTOS? 特点:实时性、可移植性、可扩展性 架构:内核、任务、调度器、通信机制 什么是裸机? 特点:无操作系统、直接操作硬件 缺点:缺乏任务调度、难以管理多任务 02 FreeRTOS 和裸机的区别 多任务管理 FreeR ......
裸机 FreeRTOS

FreeRTOS操作系统

FreeRTOS操作系统 01 FreeRTOS 的定义和概述 定义:FreeRTOS(Free-Real-Time Operating System)是一个开源的实时操作系统内核,专门为嵌入式系统设计。它提供了一套简单而强大的API,用于管理任务、调度任务、同步和通信等操作。 概述:FreeRTO ......
FreeRTOS 系统

FreeRTOS例程开发

环境配置 下载官方源码 https://www.freertos.org/ 找到这个,他就是visual studio示例demo,我们主要在这个的基础上修改 下载visio studio https://visualstudio.microsoft.com/zh-hans/ 安装时不需要额外任何插 ......
FreeRTOS

15_搭建freertos工程

搭建freertos工程 项目配置 再Add一个任务 printf打印fputc添加 ......
freertos 工程 15

16_freeRTOS 任务控制函数

freeRTOS 任务控制函数 osThreadCreate 任务创建函数 osThreadTerminate osThreadTerminate(任务对象) 任务结束函数 task1 只打印了一次 获取任务ID printf("id = %d\n", osThreadGetId()); print ......
函数 freeRTOS 任务 16

17_freeRTOS 任务状态切换

freeRTOS 任务状态切换 eTaskGetState 获取状态 printf("status %zd\n", osThreadGetState(osThreadGetId())); osThreadSuspend 挂起 osThreadSuspend(osThreadGetId()); ......
freeRTOS 状态 任务 17

freertos的任务切换

# FreeRTOS任务调度的原理是什么? **FreeRTOS的任务调度是在中断上下文中实现的!!!!!!** **主函数:** 在裸机系统中,系统的主体就是 main 函数里面顺序执行的无限循环,这个无限循环里面 CPU 按照顺序完成各种事情。在多任务系统中,我们根据功能的不同,把整个系统分割成 ......
freertos 任务

FreeRTOS创建静态函数

#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "FreeRTOS.h"#include "task.h" //开始任务#define START_TASK_SIZE 120 //堆栈大小#de ......
静态 函数 FreeRTOS

FreeRTOS移植

#一、知识总结 运行FreeRTOS的系统与裸机系统主要区别在于执行业务逻辑的方式发生了改变。裸机系统一般会采用主循环轮询+定时器中断轮询+其他中断抢占的方式来处理复杂的多任务。 而FreeRTOS则采用根据功能的不同创建不同优先级的任务,然后借助任务调度器、任务通知等一系列的机制自动分配任务执行的 ......
FreeRTOS

成功搞定H7-TOO的FreeRTOS Trace图形化链表方式展示任务管理

之前推出了H7-TOOL的RTOS Trace功能,已经支持RTX5,ThreadX,uCOS-III,uCOS-II和FreeRTOS,特色是不需要目标板额外做任何代码,实时检测RTOS任务执行情况,支持在线和脱机玩法,效果是下面这样的: 这样的展示还不够直观,这几天开始研究图形化链表方式展示任务 ......
FreeRTOS 图形 任务 方式 H7-TOO

FreeRTOS 基于 ARMv8-M 对 MPU 的应用

# 一、前言 ARMv8-M 支持 MPU,FreeRTOS 也添加了对这些 MPU 的应用代码。这里用来记录 FreeRTOS 对 MPU 应用方式的探究结果。 # 二、ArmV8-M MPU 介绍 ARMv8-M MPU 支持每个安全状态(non-secure 和 secure)0-8个区域的配 ......
FreeRTOS ARMv8-M ARMv8 ARMv MPU

Freertos学习09-软件定时器

## 一、概述 >软件定时器是一种在单片机上实现定时功能的方法,可以用于周期性地执行任务或者延时执行任务。软件定时器由FreeRTOS内核实现,不需要硬件支持。软件定时器只有在软件定时器回调函数被调用时才需要占用CPU时间。 本节主要设计以下内容: + 软件定时器的API介绍 + 实例测试 ## 二 ......
定时器 Freertos 软件 09

H7-TOOL发布固件V2.22, 增加FreeRTOS/uCOS2 Trace,加强RTT和CAN助手,脱机烧录增加比亚迪,上海芯圣51, TI, S32K3, 钜泉光电等

H7-TOOL发布固件V2.22, 增加FreeRTOS/uCOS2 Trace,加强RTT和CAN助手,脱机烧录增加比亚迪,上海芯圣51, TI, S32K3, 钜泉光电等 H7-TOOL所有资源汇总(含操作手册): http://www.armbbs.cn/forum.php?mod=viewt ......
固件 光电 FreeRTOS 助手 H7-TOOL