freertos armv8-m armv8 armv

FreeRTOS 原理 --- 临界区(critical section)

关调度器 void vTaskSuspendAll( void ) { /* A critical section is not required as the variable is of type BaseType_t. Please read Richard Barry's reply in ......
FreeRTOS critical 原理 section

FreeRTOS 原理 --- 互斥锁

互斥锁相比于二值信号量,有以下特点: 1、通过优先级继承,防止优先级反转 2、只有互斥锁持有的线程可以释放互斥锁 3、FreeRTOS 提供支持递归版本的互斥锁 创建互斥锁 互斥锁使用的描述符是队列的描述符,不单独定义互斥锁描述符。 初始化时,指定队列的长度 pxNewQueue->uxLength ......
FreeRTOS 原理

《Mastering the FreeRTOS Real Time Kernel》读书笔记(7)事件组

FreeRTOS事件组,总而言之就是很多个二进制信号量的集合,通过使用掩码的方式提取每一位,使多个任务共同合作实现比较复杂的功能。 ......
Mastering FreeRTOS 事件 笔记 Kernel

《Mastering the FreeRTOS Real Time Kernel》读书笔记(6)资源管理

7.资源管理(互斥量) 在多任务系统中,如果一个任务开始访问资源,但在从运行状态转换出来之前没有完成访问,则可能会出现错误。如果任务使资源处于不一致状态,则任何其他任务或中断对同一资源的访问都可能导致数据损坏或其他类似问题。 这里的资源管理,应该是指计算机的外设资源,比如LCD显示器,寄存器,内存中 ......

《Mastering the FreeRTOS Real Time Kernel》读书笔记(5)中断管理

6.中断管理 在读这一章之前一直有一些疑惑,FreeRTOS中的中断是软中断吗,还是将外部硬中断的触发后,导入FreeRTOS的内部进行调度处理。如果是第一种,软中断和第三章讲的任务有区别吗,还是只是优先级比所有任务高。如果是第二种的话,外部中断的服务函数是不是不能写内容了,FreeRTOS的运行和 ......
Mastering FreeRTOS 笔记 Kernel Real

【ARMv8基础篇】CCI-400控制器简介

CCI(Cache Coherent Interconnect)是ARM中的cache一致性控制器。 CCI-400将互连和一致性功能结合到一个模块中。它支持多达两个ACE 主节点的连接,例如: Cortex®-A7 processor Cortex-A15 processor Cortex-A17 ......
控制器 基础 简介 ARMv8 ARMv

《Mastering the FreeRTOS Real Time Kernel》读书笔记(4)软定时器

5.软件定时器管理 软件定时器由FreeRTOS内核实现,并受其控制。它们不需要硬件支持,也与硬件计时器或硬件计数器无关。 软件定时器功能是可选的。包括软件定时器功能:1。作为项目的一部分,构建FreeRTOS源文件FreeRTOS/source/timers.c。2.在FreeRTOSConfig ......
定时器 Mastering FreeRTOS 笔记 Kernel

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 原理

设备驱动-10.中断子系统-5 armv7 GIC架构解析

1 armv7 GIC介绍 armv7 32位 gic采用v2版本,参考手册 https://developer.arm.com/documentation/ihi0048/bb/?lang=en GIC400 就是v2版本的中断控制器 IP 核,当 GIC 接收到外部中断信号以后就会报给 ARM ......
设备驱动 子系统 架构 设备 armv7

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
共120篇  :2/4页 首页上一页2下一页尾页