草庐IT

Phytium-FreeRTOS

全部标签

FreeRTOS:CMSIS_V1与CMSIS_V2区别

        使用STM32CubeMx生成代码时,会让我们选用CMSIS_V1还是CMSIS_V2,这两者有什么区别?        V2比V1具有更多的功能,下面是STM32F103VET的STM32CubeMx生成代码不经任何修改编译后内存、Flash情况:V1: V2:         在代码上V1、V2区别如下:         V2提供了更多的功能,如果我们不使用带os前缀的功能,只使用FreeRTOS原生的接口,那么CMSIS-V1、V2对我们来说都是多余的,举例,使用CMSIS-V1创建任务方法为: osThreadStaticDef(defaultTask,StartDef

详解FreeRTOS:FreeRTOS是什么?(基础篇—1)

目录1、FreeRTOS简介2、FreeRTOS优势和特点3、FreeRTOS商业许可从本篇博文开始,我们就正式接触到FreeRTOS的相关知识了,那么FreeRTOS到底是什么呢?1、FreeRTOS简介FreeRTOS是一款轻量级、迷你的实时操作系统内核。功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。从字面意思上可以这样理解:FreeRTOS由Free和RTOS组成,Free是免费的、自由的、不受约束的意思,RTOS全称是RealTimeOperatingSystem,中文名就是实时操作系统。顾名思义可以看出FreeRTOS是一款免费的RTOS类系

简单介绍STM32上的FreeRTOS实时操作系统

文章目录前言一、什么是FreeRTOS?二、STM32与FreeRTOS的结合优势三、FreeRTOS核心概念3.1任务(Tasks)3.2、信号量(Semaphores)3.3、队列(Queues)四、总结前言FreeRTOS是一款广泛使用的开源实时操作系统(RTOS),它为嵌入式系统提供了可靠的任务调度和并发管理。在嵌入式领域中,STM32微控制器广受欢迎,并且与FreeRTOS的结合使用可以提供强大的功能和灵活性。在本篇博客中,我们将深入探究STM32上的FreeRTOS,并了解其核心概念、任务调度算法、任务通信机制以及在实际应用中的使用案例一、什么是FreeRTOS?FreeRTOS(

FreeRTOS入门教程(堆和栈)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、FreeRTOS操作系统介绍二、堆1.概念介绍2.简单实现三、栈总结前言本篇文章正式学习FreeRTOS操作系统,我打算编写一系列文章带大家轻松快速入门FreeRTOS操作系统。一、FreeRTOS操作系统介绍FreeRTOS是一款开源、实时、嵌入式的操作系统,它被广泛应用于小型嵌入式系统和微控制器中。FreeRTOS的设计目标是提供一个轻量级、可移植、易于使用的实时操作系统,以协调和管理多个任务。FreeRTOS通过引入任务、信号量、消息队列、定时器等概念,使得应用程序可以按照预期的方式运行,从而实现了便捷的应用

FreeRTOS任务的创建(动态方法和静态方法)

文章目录前言一、FreeRTOS任务基本概念二、动态创建任务三、静态创建任务四、静态创建任务和动态创建任务的区别五、任务的删除总结前言本篇文章将介绍FreeRTOS任务的创建(动态方法和静态方法),了解什么是任务和任务的具体创建方法。一、FreeRTOS任务基本概念任务(Task):FreeRTOS中的任务是程序执行的基本单位。任务以优先级的方式管理,高优先级的任务比低优先级的任务更容易被执行。每个任务都具有不同的堆栈和一组标志,用于控制任务的行为和与其他任务和内核进行通信。二、动态创建任务在FreeRTOS中的task.c中我们可以找到动态创建任务的函数原型:创建一个任务:使用xTaskCr

stm32智能小车(FreeRTOS项目练习)

文章目录前言一、FreeRTOS移植到stm32f103c8t6二、0.97寸OLED屏幕显示(I^2^C通信)1.引脚连接:2.写引脚代码:3.引脚初始化:4.I^2^C1.起始:2.停止:3.发送一个字节:5.OLED1.写命令:2.写数据:3.设置光标位置:4.清屏:6.OLED显示函数:7.OLED初始化三、超声波测距HCSR-04:1.引脚连接:2.HCSR-04初始化:3.获取距离函数:四、马达驱动(L298N双路驱动)1.接线2.定时器2输出PWM波控制移动初始化:3.小车移动4.移动缓冲,防止突然启动或者转向切换时齿轮间的相互作用力过大而损坏器件。五、蓝牙控制模块(USART1

freeRTOS面试会问到的问题。

FreeRTOS的移植与配置以及使用。移植到哪些平台,讲讲移植过程,占用哪些硬件资源。可以移植到多种平台,包括单片机、嵌入式处理器、微处理器等等。    2.移植过程:选择对应目标处理器架构的FreeRTOS版本。安装相应的工具链。对FreeRTOS进行配置。实现FreeRTOS底层函数。搭建FreeRTOS应用程序,实现任务调度。    3.占用硬件资源:移植FreeRTOS对硬件资源的占用,与具体的应用场景有关。需要根据具体应用调整FreeRTOS的配置,需要根本具体应用调整FreeRTOS的配置,如调整任务堆栈大小、内存管理配置、中断控制器等等。FreeRTOS都需要配置哪些,中断是怎么

STM32 FreeRTOS CMSIS—OS

STM32FreeRTOSCMSIS—OS前言1.关于osThreadNew()1.1FreeRTOS线程与任务的关系1.2osThreadNew()1.2.1osThreadNew()如何实现动态创建与静态创建的选择1.2.2xTaskCreate()任务栈空间理解1.2.3CMSIS-OS与FreeRTOS任务栈空间单位不同!1.2.4选择动态分配时osThreadNew()分配的任务栈空间前言使用STM32CubeMX代码生成,在STM32Cube固件中,通过ARM提供的通用CMSIS-OS封装层,将FreeRTOS用作实时操作系统。也就是说在一套代码里有着两套标准,在阅读源码时需要注意

【Keil】CubeMX配置的FreeRTOS利用V6编译出错

一、问题复现当使用CubeMX生成带有FreeRTOS的工程时,由于Usedefaultcompilerversion5编译器编译时间过于漫长,我们选择使用编译速度更快的Usedefaultcompilerversion6,但是更改之后再次编译会出现很多错误。 在Target一栏的ARMCompiler:选择Usedefaultcompilerversion6; 并修改c/cpp编译方式。二、分析原因CubeMX生成的FreeRTOS的port.c、portmacro.h不支持GNU,内部有大量的内联汇编,需更换为GCC版本。三、解决办法如果直接在生成的工程里将 RVDS/ARM_CM4F内的

FreeRTOS如何解决访问冲突/线程不安全(临界段、互斥锁、挂起调度、看门人任务)

在多任务(多线程)系统中,存在一个隐患,那就是多线程的访问(在FreeRTOS中就是任务)。当一个任务A开始访问一个资源(外设、一块内存等),但是A还没有完成访问,B任务运行了,也开始访问,这就会造成数据破坏、错误等问题。例如:两个任务试图写入一个液晶显示器(LCD)。1任务A执行并开始向LCD写入字符串“Helloworld”。2.任务A在输出字符串“Hellow”后被任务B抢占。3.任务B在进入阻塞态前向LCD写入“Abort,Retry,Fail?”4.任务A继续从它被抢占的点开始,并完成输出它的字符串“world”的剩余字符。LCD现在显示字符串是“HellowAbort,Retry,