首页 > 编程知识 正文

freertos对内存的要求,静态nat配置命令

时间:2023-05-06 16:38:32 阅读:9507 作者:4596

FreeRTOS 基础系列文章

基本对象

FreeRTOS——任务

FreeRTOS——队列

FreeRTOS——信号量

FreeRTOS——互斥量

FreeRTOS——任务通知

自由RTOS ——流和消息缓冲区

FreeRTOS——软件计时器

FreeRTOS——事件组

内存管理

FreeRTOS——静态和动态内存分配

FreeRTOS——堆内存管理

FreeRTOS——堆栈溢出保护

代码组织

FreeRTOS——源代码组织

FreeRTOS——创建新项目

FreeRTOS——配置文件

FreeRTOS——静态和动态内存分配概述使用动态分配的RAM创建RTOS对象使用静态分配的RAM创建RTOS对象

概要

在V9.0.0之前的FreeRTOS版本中,特定FreeRTOS堆分配了以下RTOS对象使用的内存: 从FreeRTOS V9.0.0开始,APP应用程序设计人员可以自行提供内存,因此可以根据需要创建以下对象,而无需动态分配内存:

任务计时器队列事件组二进制信号量计数信号量互斥量使用递归互斥量静态内存分配还是动态内存分配取决于APP应用程序和APP应用程序设计者的喜好。 这两种方法都有优缺点,可以在同一RTOS APP应用程序中使用。

使用动态分配的RAM创建RTOS对象动态创建RTOS对象的好处是更简单,并且可以最大限度地减少APP应用程序的RAM使用。

创建对象时所需的函数参数较少的内存分配将在RTOS API函数中自动发生。 高速APP应用程序设计者不需要在意内存分配问题。 如果对象被删除,则RTOS对象使用的RAM可以回收,从而可能会减少APP应用程序的最大RAM占用空间。 提供RTOS API函数,返回有关堆使用情况的信息,以优化堆大小。 可以选择最适合APP应用程序的内存分配方案。 heap_1.c用于关键安全APP应用通常所需的简单性和可靠性,heap_4.c用于碎片维护,heap_5.c将堆划分为多个RAM区域,或由APP应用程序设计者自己分配当config support _ dynamic _ allocation设置为1或未定义时,以下API函数可用,并使用动态分配的RAM创建RTOS对象:

xaskcreate(xtimercreate ) xqueuecreate (xeventgroupcreate ) xsemaphorecreatecounting (xsemaphorecreatecounting ) xsemaphoreaphoreate 使用xSemaphoreCreateRecursiveMutex ()静态分配的RAM创建RTOS对象使用静态分配的RAM创建RTOS对象的好处为APP应用程序设计者提供了更多的控制权

RTOS对象可以位于特定的内存位置。 最大RAM容量可以在链接而不是运行时确定。 高速APP应用程序设计人员不需要在意如何优雅地处理内存分配失败。 虽然FreeRTOS分配方法可以克服大多数反对意见,但RTOS可以用于不允许动态内存分配的APP应用程序。 当config support _ static _ allocation设置为1时,可以使用以下API函数,并可以使用APP应用程序设计者提供的内存创建RTOS对象: 为了提供内存,APP应用程序设计者只需声明相应对象类型的变量,并将变量的地址传递给RTOS API函数。

xaskcreatestatic (xqueuecreatestatic ) xtimercreatestatic (xsemaphorecreatebinarystatic ) xsemaphore phorecreatemutexstatic (xsemaphorecreaterecursivemutexstatic )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。