【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别

http://www.stmcu.org/module/forum/thread-607776-1-1.html

【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第1张图片

1,config parameter 参数设置

Config parameters 选项卡中是配置参数,其中列出了 FreeRTOS 的可配置参数,对应于 FreeRTOSConfig.h
文件中的配置参数。

1-1 version 版本

1-2 Kernel settings 内核设置 

1-3 Memory management settings 内存管理器设置

1-4 Hook functions related definitions

1-5 Run time and task stats gathering related definitions 运行时间和任务状态的相关采集设置

1-6 Co-routine related definitions  伴随常规相关设置

1-7 Software timer definitions 软件定时器设置

1-8 interrupt nesting behaviour configuration 中断嵌套行为配置

【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第2张图片

【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第3张图片

【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第4张图片

2,include parameters 头文件参数

include parameters 选项卡的参数则是用来配置裁剪 FreeRTOS 的。

【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第5张图片

3,user constants 用户常量

【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第6张图片

4,tasks and queues 任务和队列

Tasks and Queues 用于添加任务和队列。 

【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第7张图片

5,timers and semaphores 定时器和信号量

Timers and Semaphores 是添加软件定时器和信号量的选项。

5-1 timers 

5-2 Mutexes 互斥

5-3 Recursive mutexes  递归互斥

5-4 binary semaphores  二进制信号量

5-5 counting semaphores  计算信号量

   【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第8张图片

6,FreeRTOS heap usage  FreeRTOS堆使用情况

6-1 Sumary 概要

6-2 FreeRTOS  tasks 任务

【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别_第9张图片

7,堆和栈的区别

堆和栈的区别

堆和栈的第一个区别就是申请方式不同:

栈(英文名称是stack)是系统自动分配空间的,例如我们定义一个 char a;系统会自动在栈上为其开辟空间。

而堆(英文名称是heap)则是程序员根据需要自己申请的空间,例如malloc(10);开辟十个字节的空间。

由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问。

而堆上的数据只要程序员不释放空间,就一直可以访问到,不过缺点是一旦忘记释放会造成内存泄露。

内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(【2 FreeRTOS+STM32CubeMX】FreeRTOS在Cube中的配置,_##name连接的使用,堆和栈的区别)