草庐IT

Phytium-FreeRTOS

全部标签

【FreeRTOS】——中断优先级设置&中断相关寄存器&临界段代码保护&调度器挂起与恢复

目录前言:一、中断优先级设置二、中断相关寄存器(STM32-CortexM3)三、临界段代码保护四、任务调度器的挂起和恢复总结:前言:博客笔记根据正点原子视频教程编辑,仅供学习交流使用!一、中断优先级设置①中断概念回顾让CPU打断正常运行的程序,转而去处理紧急的事件(程序),就叫中断。可简单概括为以下三步:          ②优先级分组设置ARMCortex-M使用了8位宽的寄存器(256级)来配置中断的优先等级,这个寄存器就是中断优先级配置寄存器。但STM32,只用了中断优先级配置寄存器的高4位[7:4],所以STM32提供了最大16级的中断优先等级。        STM32的中断优先级

FreeRTOS消息队列

文章目录一. 队列简介1、数据存储2、多任务访问3、出队阻塞4、入队阻塞5、队列操作过程图示二、消息队列常用函数讲解1.消息队列创建函数xQueueCreate()2消息队列静态创建函数xQueueCreateStatic()3.读队列  xQueueReceive() 4.写队列  xQueueSend()5.消息队列删除函数vQueueDelete()6.复位   xQueueReset() 7.查询三、消息队列使用注意事项四、消息队列应用实例五、实验现象一. 队列简介队列是为了任务与任务、任务与中断之间的通信而准备的,可以在任务与任务、任务与中断之间传递消息,队列中可以存储有限的、大小固

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(序章——浅谈单片机以及FreeRTOS)

学习之路主要为FreeRTOS操作系统在STM32F103(STM32F103C8T6)上的运用,采用的是标准库编程的方式,使用的IDE为KEIL5。注意!!!本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习,也可以通过Proteus仿真的方式进行学习。后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)作者的话:        相信大家在学习完STM32的裸机开发后,满怀信心地去写一个庞大的项目的时,写到后期总会感觉,各个模块的任务总是会相互制约和影响,存在绝对的先后顺序关系(也称为轮询方法),

freeRTOS自学入门教程速成版

FreeRTOS介绍什么是FreeRTOS?FreeRTOS是一款开源的实时操作系统(RTOS),它提供了一组API和软件库,帮助嵌入式设备的开发者实现任务管理、内存管理、中断处理、时间管理等功能,从而轻松地开发出高可靠性的实时嵌入式应用程序。FreeRTOS的特点和优点轻量级:FreeRTOS的内核非常小巧,只需要几KB的ROM和RAM即可运行,适合嵌入式设备和微控制器等资源有限的场景。可裁剪:FreeRTOS的内核和功能库都是可裁剪的,可以根据应用需求自由选择需要的功能,避免不必要的资源浪费。易移植:FreeRTOS可以运行在多种硬件平台上,适用于不同的微处理器、微控制器和操作系统。高可靠

CubeMX配置ETH+LWIP+FreeRTOS+AC6编译新手详细教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、工程通用配置1、RCC时钟配置2、SYS选项配置3、初始化USART1并使能中断4、工程名以及保存路径等配置二、ETH配置1.硬件连接2、使能RMLL接口并根据原理图实际连接配置GPIO3、ParameterSettings选项卡配置4、AdvancedParameters选项卡配置5、勾选中断三、FreeRTOS配置1、开启FreeRTOS2、修改默认生成的线程栈空间大小四、LWIP配置1、进入LWIP选项卡,勾选Enable并配置"GeneralSettings"选项卡2、配置"KeyOptions"选项卡3、

STM32之FreeRTOS

目录FreeRTOS介绍什么是FreeRTOS?为什么选择FreeRTOS? FreeRTOS资料与源码下载祼机开发与FreeRTOS 祼机开发:FreeRTOS:FreeRTOS实现多任务的原理二、移植FreeRTOS 手动移植使用CubeMX快速移植快速移植流程一些常见问题1.TimebaseSource为什么不能设置为SysTick?2.FreeRTOS版本问题3.FreeRTOS各配置选项卡的解释4.内核配置、函数使能的一些翻译FreeRTOS介绍什么是FreeRTOS?Free即免费的,RTOS的全称是Realtimeoperatingsystem,中文就是实时操作系统。注意:RTO

STM32+FREERTOS任务堆栈大小

在FREERTOS任务开发过程中,由于不知道具体需要分配多大的任务堆栈大小,就需要在开始开发阶段尽可能的多分配一些,不然在调试过程中会出现程序卡死或者数据通信异常的现象。如何评估任务堆栈的分配大小问题,可以根据任务的规模以及所任务所需的数据空间大概进行估算一个值。这个值最好是128的整数倍。因为在FreeRTOSConfig.h已经设置了最小的任务堆栈大小#defineconfigMINIMAL_STACK_SIZE        ((uint16_t)128)还可以先分配一个大的任务堆栈,开发完成后根据测试的实际任务堆栈使用情况再去优化任务堆栈大小,节省资源。具体步骤:1、在FreeRTOS

Freertos-小车开发笔记 2 --编码电机使用

目录前言一、TB6612电机驱动板1.TB6612模块介绍2.TB6612芯片原理图介绍与控制说明3.tb6612--D153B模块接线说明二、编码电机驱动后轮1.编码电机初始化2.编码电机初始化总结 前言通过编码点击控制小车的后轮转动,通过舵机改变前轮的转向。一、TB6612电机驱动板采用tb6612电机作为编码电机的驱动板,该驱动板只需要1个pwm信号和两个IO口即可控制一个编码电机.编码器电机为直流减速电机,一般直流电机的转速都是一分钟几千上万转的,所以一般需要安装减速器。减速器是一种相对精密的机械零件,使用它的目的是降低转速,增加转矩。减速后的直流电机力矩增大、可控性更强。按照传动级数

FreeRTOS 基于 ARMv8-M 对 MPU 的应用

一、前言ARMv8-M支持MPU,FreeRTOS也添加了对这些MPU的应用代码。这里用来记录FreeRTOS对MPU应用方式的探究结果。二、ArmV8-MMPU介绍ARMv8-MMPU支持每个安全状态(non-secure和secure)0-8个区域的配置。MPU的主要特性如下:区域最小大小为32字节,最大为4GB,但必须为32字节的整数倍所有的区域必须以32字节对齐每个区域对两个处理器模式(privileged和unprivileged)拥有独立的读/写权限eXecureNever(XN)属性可以用来分割代码段和数据段三、FreeRTOS对MPU的应用FreeRTOS对MPU的配置主要体现

FreeRTOS中断调用API消息队列发送函数导致系统死机(memcpy函数卡死)

项目场景:背景:写一组在FreeRTOS系统下的串口驱动,芯片使用的是杰发科的AC781x系列,ARM®CortexM3内核,96MHz主频。项目场景:计划使用dma接收数据,设置dma半满中断与全满中断,在半满中断中把前半部分数据传入消息队列,在全满中断中把后半部分数据传入消息队列。问题描述问题1:在中断中调用FreeRTOS的消息队列发送函数带中断保护版本,会出现死机情况,进入hardfault,dma配置的传输字节为8字节(即每接收到8字节进一次传输完成中断)中断中的代码如下if(wparam&(10))//传输完成{ for(uint8_tcj=0;j8;j++)//连续八次发送数据到