FreeRTOS学习总结一、移植 上图是从FreeRTOS官网下载的源文件目录,移植所需要的文件都在Source文件夹下如上图,在工程文件夹下创建FreeRTOS文件夹,子文件夹和相应文件,均从Source文件夹下直接copy即可。FreeRTOS的内核文件,新手直接无脑copy。(对于熟手如果你的工程不需要用到队列,或者事件组等,可以不需要相关文件)硬件相关,在Source\portable[I            
                
         
            
            
            
            以前在mcu编程的时候没有太注意堆栈的情况,只知道需要将堆栈设置的大一点。现在逐步使用freertos,在freertos中也有关于堆栈的设置,freertos的堆栈和启动文件中的堆栈关系是什么?为了以后使用的无误,本次一次性把这些弄清楚。1、定义堆栈是一个特定的存储区或者寄存器。一般在内存总开辟一块区域作为堆栈,叫做软件堆栈;用寄存器构成的堆栈,叫硬件堆栈。大多数情况下,我们使用的都是软件堆栈。            
                
         
            
            
            
            FreeRTOS(进阶)挂起 恢复相关API挂起恢复外部中断恢复中断列表与列表项初始化列表初始化列表项插入列表项删除列表项尾部插入列表项任务查询与信息统计得到任务优先级得到任务状态获取当前任务的任务句柄堆栈历史剩余最小值任务状态创建表格显示详细信息 挂起 恢复相关API 1、函数 vTaskSuspend() 此函数用于将某个任务设置为挂起态,进入挂起态的任务永远都不会进入运行态。退出挂起态的唯            
                
         
            
            
            
            我一直认为能不用os,就千万不要去用os。拿freeRTOS说事是刚好使用了freeRTOS,其实对于抢占式的rtos,都有可能遇到这样的问题,分析解决起来不容易。用rtos的纠结之处,你只是想用rtos或者被迫使用rtos,你压根不想彻底去了解它,去读代码,因此就会有一些纠结。首先,我想最大的困扰是,rtos调试手段缺乏,定位问题很难。在单任务里面,一般用 log可以解决问题,实在苦恼时候,可以            
                
         
            
            
            
            (一)任务状态FreeRTOS 中的任务永远处于下面几个状态中的某一个:● 运行态当一个任务正在运行时,那么就说这个任务处于运行态,处于运行态的任务就是当前正在使用处理器的任务。如果使用的是单核处理器的话那么不管在任何时刻永远都只有一个任务处于运行态。●  就绪态处于就绪态的任务是那些已经准备就绪(这些任务没有被阻塞或者挂起),可以运行的任务,但是处于就绪态的任务还没有运行,因为有一个同优先级或者            
                
         
            
            
            
            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. What Is Data Pump Export? 简单来说,Data Pump Export是Oracle提供的从数据库导出(unload)数据及元数据(metadata)到一系列的文件中(dump file set)的这么一种工具(utility). 这些生成的dump file set只可以被Data Pump Import导入到目标数据库中, 目标数据库既可以是            
                
         
            
            
            
            在应用freeRtos的时候经常会有中断影响程序运行,所以中断设置需要谨慎 1.0到4级的中断,freertos不能管理关闭或开启,5到15可以调用以FromISR结尾的API函数void interrupt_task(void *pvParameters)
{
    u8 ui = 0;
    while(1)
    {
        ui++;
        if(ui == 20)            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-18 18:46:05
                            
                                351阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            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阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录移植过程移植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使用心得(一)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英文原文可以使用xTaskCreate()或xTaskCreateStatic() API函数创建任务。函数的参数usStackDepth指定了将分配给正在创建的任务的堆栈的大小(用words,而不是bytes)人们通常会问如何确定usStackDepth值,但是,除了下面描述的一种方式外,在使用RTOS时确定需要多少堆栈与编写裸机应用程序(不使用操作系统的应用程序)之间几乎没有区            
                
         
            
            
            
            很多朋友问我这个问题,也抱怨GNU工具链不如集成开发环境好用。如IAR Workbench、Keil、RVDS等。并不理解,为什么RTEMS死磕GNU的工具链。这里其实有很多原因,有一些是我猜测的,有一些是既定的事实。下面就聊聊这些原因:1. 首先,RTEMS 从上个世纪80年代末开始开发。那时候,还没有这么牛叉的集成开发环境;GNU的工具链应该是当时不二的选择。2. RTEMS作为一个开源免费的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-05 11:23:50
                            
                                41阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            lePin(GPIOB,GPIO_PIN_5);            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-28 01:28:10
                            
                                99阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            freertos 准备工作和思考freertos操作系统freertos操作系统:可以理解为一个大程序,这个大程序里面有很多任务(函数),这个大程序会按照优先级或事件发生的先后来控制各个任务有条不紊的运行。类似于一个大循环,里面有很多子函数,但是子函数的运行不是按照编程的先后顺序运行,而是由调度器控制,来决定哪个任务运行,哪个任务阻塞(休息)。源码分析建议首先对操作系统有个基本认识,知道堆、栈、任            
                
         
            
            
            
            FreeRTOS 队列使用 对FreeRTOS来说,队列是一种很基本数据结构,其中计数信号量,二值信号量等都是利用队列来做的;在FreeRTOS中,队列用于任务与任务之间,任务与中断服务子程序之间的数据传输,其作用类似于裸机编程时使用的全局变量,与全局变量不同的是,队列有阻塞超时时间;任务之间使用队列要遵循FIFO的特性当一个任务读取空队列时,这个任务将进入阻塞态(不消耗cpu,cpu会去运行其他            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-25 12:36:20
                            
                                70阅读