freertos 准备工作和思考freertos操作系统freertos操作系统:可以理解为一个大程序,这个大程序里面有很多任务(函数),这个大程序会按照优先级或事件发生的先后来控制各个任务有条不紊的运行。类似于一个大循环,里面有很多子函数,但是子函数的运行不是按照编程的先后顺序运行,而是由调度器控制,来决定哪个任务运行,哪个任务阻塞(休息)。源码分析建议首先对操作系统有个基本认识,知道堆、栈、任
(一)任务状态FreeRTOS 中的任务永远处于下面几个状态中的某一个:● 运行态当一个任务正在运行时,那么就说这个任务处于运行态,处于运行态的任务就是当前正在使用处理器的任务。如果使用的是单核处理器的话那么不管在任何时刻永远都只有一个任务处于运行态。● 就绪态处于就绪态的任务是那些已经准备就绪(这些任务没有被阻塞或者挂起),可以运行的任务,但是处于就绪态的任务还没有运行,因为有一个同优先级或者
第六章 跑马灯实验STM32 最简单的外设莫过于 IO 口的高低电平控制了,本章将通过一个经典的跑马灯程序,带大家开启 STM32F4 之旅,通过本章的学习,你将了解到 STM32F4 的 IO 口作为输出使用的方法。在本章中,我们将通过代码控制 ALIENTEK NANO STM32F411 开发板上的两个 LED:DS0 和 DS1 交替闪烁,实现类似跑马灯的效果。 本章分为如下
1. 前言 天下武功,唯快不破。FreeRTOS作为一款微控制器实时操作系统,其微内核,讲究极致的低资源消耗;其实时,追求的就是极致的快。本文主要从几个细节来阐述FreeRTOS为实时性所作出的努力。2. 任务切换图1 任务状态机 &
FreeRTOS学习总结一、移植 上图是从FreeRTOS官网下载的源文件目录,移植所需要的文件都在Source文件夹下如上图,在工程文件夹下创建FreeRTOS文件夹,子文件夹和相应文件,均从Source文件夹下直接copy即可。FreeRTOS的内核文件,新手直接无脑copy。(对于熟手如果你的工程不需要用到队列,或者事件组等,可以不需要相关文件)硬件相关,在Source\portable[I
我一直认为能不用os,就千万不要去用os。拿freeRTOS说事是刚好使用了freeRTOS,其实对于抢占式的rtos,都有可能遇到这样的问题,分析解决起来不容易。用rtos的纠结之处,你只是想用rtos或者被迫使用rtos,你压根不想彻底去了解它,去读代码,因此就会有一些纠结。首先,我想最大的困扰是,rtos调试手段缺乏,定位问题很难。在单任务里面,一般用 log可以解决问题,实在苦恼时候,可以
1. What Is Data Pump Export? 简单来说,Data Pump Export是Oracle提供的从数据库导出(unload)数据及元数据(metadata)到一系列的文件中(dump file set)的这么一种工具(utility). 这些生成的dump file set只可以被Data Pump Import导入到目标数据库中, 目标数据库既可以是
FreeRTOS延时简易分析架构:Cortex-M3版本:FreeRTOS V9.0.0前言:在很多情况,需要使用延时来达到一些效果,那么FreeRTOS的延时是怎么实现的1.相对延时vTaskDelay只有一个参数就是等待时间void vTaskDelay( const TickType_t xTicksToDelay )
{
BaseType_t xAlreadyYielded = pdF
1. 引言FreeRTOS的任务调度是个大头,也是一个操作系统的核心。 其实个人理解,FreeRTOS调度规则很好理解,原则就是“优先级高抢占”,因为FreeRTOS是一个抢占式实时内核,一定会保证就绪态的高优先级任务可以先运行。 所有的调度都是为了实现这个目的来做的。 一些个人思考可以看4.1节。2. 原理分析2.1 任务切换是怎么进行的任务切换是一个明确的操作,就是通过pendSV中断,把当前
文章目录1. 前言2. STM32运行LwIP的系统框图3. LwIP RTOS部分的移植4. LwIP System Config部分的移植5. LwIP Stack部分的移植6. LwIP Hardware Driver部分的移植7. 验证测试8. 资料下载地址 1. 前言在STM32平台移植LWIP 2.1.2功能,首先需要做一些准备工作,例如:下载资料:lwip-2.1.2、contri
转载
2024-04-14 22:01:10
365阅读
GPIOB,GPIO_PIN_5);
原创
2023-05-29 01:48:40
161阅读
目录1. Cortex-M 中断1.1 中断简介1.2 中断管理简介1.3 优先级分组定义1.4 优先级设置1.5 用于中断屏蔽的特殊寄存器1.5.1 PRIMASK 和 FAULTMASK 寄存器1.5.2 BASEPRI 寄存器2. FreeRTOS 中断配置宏2.1 configPRIO_BITS2.2 configLIBRARY_LOWEST_INTERRUPT_PRIORITY2.3 c
概述: 之前写了关于FreeRTOS的部分内容,为了方便阅读,现在给汇总到一起了。全部学习完后,恭喜你对FreeRTOS有了更深的认知。 第一章 FreeRTOS移植到STM32 第二章 FreeRTOS创建任务 第三章 FreeRTOS任务管理第四章 FreeRTOS消息队列第五章 
转载
2024-02-25 11:00:12
31阅读
以前在mcu编程的时候没有太注意堆栈的情况,只知道需要将堆栈设置的大一点。现在逐步使用freertos,在freertos中也有关于堆栈的设置,freertos的堆栈和启动文件中的堆栈关系是什么?为了以后使用的无误,本次一次性把这些弄清楚。1、定义堆栈是一个特定的存储区或者寄存器。一般在内存总开辟一块区域作为堆栈,叫做软件堆栈;用寄存器构成的堆栈,叫硬件堆栈。大多数情况下,我们使用的都是软件堆栈。
FreeRTOS使用心得(一)1、创建任务 整套FreeRTOS系统其实很简单,只需要创建不同的任务,然后启动就可以了。 所以在使用FreeRTOS前,首先得先了解任务的创建方式,具体函数如下: xTaskCreate(xTask_Start,“Start_Task”,1024,NULL,3,&xHandle_Start); 参数说明:xTask_Start : 任务入口函数的指针,通过该
前言:因为在网上没有找到TI-RTOS的学习视频,虽然很多地方与free-RTOS相通,但是本人仍不想为了学习TI-RTOS先去学习freeRTOS,所幸关于TI-RTOS,ti公司给了许多相关的文档资料,虽然本人英文不太好,但没有办法,只能抱着试一试的心态,努力啃一啃,故在此做学习笔记。TI-RTOS驱动程序有一个用于静态配置和所有驱动程序实现的一组api的公共框架。我们应该首先理解通用框架,在
转载
2024-09-25 17:39:13
94阅读
文章目录移植过程移植FreeRTOS源码拷贝FreeRTOSConfig.h注意事项移植LWIP源码拷贝与编译初始化 移植过程freeRTOS V10.4.5 下载 https://github.com/FreeRTOS/FreeRTOSLwip V2.1.3 http://download.savannah.nongnu.org/releases/lwip/GD32F407VET6keil5移
FreeRTOS英文原文可以使用xTaskCreate()或xTaskCreateStatic() API函数创建任务。函数的参数usStackDepth指定了将分配给正在创建的任务的堆栈的大小(用words,而不是bytes)人们通常会问如何确定usStackDepth值,但是,除了下面描述的一种方式外,在使用RTOS时确定需要多少堆栈与编写裸机应用程序(不使用操作系统的应用程序)之间几乎没有区
FreeRTOS(进阶)挂起 恢复相关API挂起恢复外部中断恢复中断列表与列表项初始化列表初始化列表项插入列表项删除列表项尾部插入列表项任务查询与信息统计得到任务优先级得到任务状态获取当前任务的任务句柄堆栈历史剩余最小值任务状态创建表格显示详细信息 挂起 恢复相关API 1、函数 vTaskSuspend() 此函数用于将某个任务设置为挂起态,进入挂起态的任务永远都不会进入运行态。退出挂起态的唯
很多朋友问我这个问题,也抱怨GNU工具链不如集成开发环境好用。如IAR Workbench、Keil、RVDS等。并不理解,为什么RTEMS死磕GNU的工具链。这里其实有很多原因,有一些是我猜测的,有一些是既定的事实。下面就聊聊这些原因:1. 首先,RTEMS 从上个世纪80年代末开始开发。那时候,还没有这么牛叉的集成开发环境;GNU的工具链应该是当时不二的选择。2. RTEMS作为一个开源免费的
转载
2024-10-05 11:23:50
41阅读