http://www.stmcu.org/module/forum/thread-607776-1-1.html
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,include parameters 头文件参数
include parameters 选项卡的参数则是用来配置裁剪 FreeRTOS 的。
3,user constants 用户常量
4,tasks and queues 任务和队列
Tasks and Queues 用于添加任务和队列。
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 计算信号量
6,FreeRTOS heap usage FreeRTOS堆使用情况
6-1 Sumary 概要
6-2 FreeRTOS tasks 任务
7,堆和栈的区别
堆和栈的区别
堆和栈的第一个区别就是申请方式不同:
栈(英文名称是stack)是系统自动分配空间的,例如我们定义一个 char a;系统会自动在栈上为其开辟空间。
而堆(英文名称是heap)则是程序员根据需要自己申请的空间,例如malloc(10);开辟十个字节的空间。
由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问。
而堆上的数据只要程序员不释放空间,就一直可以访问到,不过缺点是一旦忘记释放会造成内存泄露。
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。