FreeRTOS
文章平均质量分 94
lucas_sane
独学而无友,则孤陋寡闻。
展开
-
FreeRTOS内核源码解读之-------系统启动(三)
前面文章两篇文章介绍了FreeRTOS的启动过程,但是有些问题还没有解决,在本篇文章中将会逐一解决。首先,在《FreeRTOS内核源码解读之-------系统启动(一)》中提到Cortex-M4内核中两个不同的栈指针寄存器MSP和PSP。对于不具有嵌入式OS的应用,可以在操作中只使用MSP栈指针寄存器;对于含有嵌入式OS(就像FreeRTOS)应用,异常处理(包括内核状态下)使用的是MSP,对于应用任务使用的是PSP。每一个应用任务都有自己的栈空间,那么上面这种机制是怎么实现的呢?还有FreeRTOS是原创 2020-06-09 14:19:46 · 1334 阅读 · 1 评论 -
FreeRTOS内核源码解读之-------系统启动(二)
FreeRTOS系统启动过程主要分为三部分:汇编部分、main函数初始化部分、开启任务调度部分。对于汇编部分主要是设置一些中断向量表、设置堆和栈等一些C语言运行需要的条件,当这些部分设置完成时候,就会跳转到main函数运行。对于main函数初始化部分,主要是做一些必要的硬件外设初始化、板级初始化、还有就是任务的创建。任务创建完成之后,就会开启调度器,FreeRTOS开始运行。下面就讲一下FreeRTOS是怎么开始运行的:由于之前讲过一篇关于apollo2 MCU的汇编启动,关于Cortex-M4的汇编原创 2020-06-08 17:58:03 · 908 阅读 · 0 评论 -
FreeRTOS内核源码解读之-------系统启动(一)
RTOS多任务运行 Cortex-M4对于多任务运行的硬件架构支持特性最近研究FreeRTOS的内核源码,产生了一个疑问?//创建开始任务 xTaskCreate((TaskFunction_t )start_task, //任务函数 (const char* )"start_task", //任务名...原创 2020-05-07 11:15:10 · 1500 阅读 · 0 评论 -
FreeRTOS内核源码解读之-------列表和列表项(一)
最近一直在看关于FreeRTOS内核源码,里面涉及很多列表和列表项的内容,因此需要好好研究一下。这部分内容在FreeRTOS中起着很重要的作用,如果把FreeRTOS比作一个人的话,那么列表和列表项就相当于人的神经系统,管理整个FreeRTOS系统有条不紊的运行。首先,要明确列表项和列表是两个不同的概念,在FreeRTOS中是两个不同的数据结构。这一点,我在刚开始接触的时候经常混淆。通俗点说,列...原创 2020-04-16 17:02:41 · 865 阅读 · 0 评论 -
FreeRTOS基础知识
FreeRTOS文件结构 FreeRTOS编码标准和风格 FreeRTOS系统配置1、FreeRTOS文件结构从FreeRTOS官网下载“FreeRTOSv9.0.0.exe”,双击此文件。选择FreeRTOS源码生成的路径,就会自动生成FreeRTOS源码。生成源码之后,我们进入“D:\FreeRTOS源码\FreeRTOSv9.0.0\FreeRTOS”文件夹(这里我将文件“Fr...原创 2018-10-27 19:55:26 · 2609 阅读 · 0 评论 -
FreeRTOS内核源码解读之-------任务创建
任务创建函数--------xTaskCreate函数原型BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,const char * const pcName,const uint16_t usStackDepth,void * const pvParameters,UBaseType_t uxPriority,TaskHandle...原创 2019-05-18 23:52:01 · 1063 阅读 · 0 评论 -
FreeRTOS之内存管理详解
Freertos内核源码解读之--------内存管理 内存管理 任务栈和系统栈的区别 FreeRTOS内存管理方法 FreeRTOS静态创建一、内存管理在c语言中定义了4个区:代码区、全局变量和静态变量区、动态变量区(即栈区)、动态存储区(即堆区)。1>栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。在STM32汇编代码中设置如下:Sta...原创 2019-06-23 10:21:58 · 8269 阅读 · 2 评论