![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
freertos
文章平均质量分 73
freertos常用API解析,以及内存管理代码解析
落淼喵_G
这个作者很懒,什么都没留下…
展开
-
FreeRTOS内存管理-heap_3.c
FreeRTOS内存管理-heap_3.c1、简介heap_3.c是5种内存管理中最简单的一个,它只是将malloc()与free()进行打包调用,heap_3.c与heap_1.c和heap_1.c不同的是:不再选择一个大的数组对内存进行分配和释放,即内存堆空间的大小不受configTOTAL_HEAP_SIZE的影响,而是选择由链接器分配相应的堆内存。注意:不可以直接引用malloc和free,因为标准库中的malloc和free也不能保证线程的安全性,因此,heap_3.c中的pvPortMal原创 2021-07-15 14:39:33 · 584 阅读 · 0 评论 -
FreeRTOS内存管理-heap_2.c
FreeRTOS内存管理-heap_2.c1.1 简介heap_2.c与heap_1.c相似,也是申请了一个较大的静态数组ucHeap[]用于存放内存,每次内存申请则是将内存划分成不同大小的小块,与heap_1.c不同的是:heap_2.c采用了最佳匹配算法对内存进行分配处理,内存在申请(pvPortMalloc)之后,会对其申请的内存进行相应的释放(vPortFree)。头文件:FreeRTOSConfig.h configTOTAL_HEAP_SIZE//定义系统所用的堆栈大小相关的函数接原创 2021-07-15 14:20:03 · 386 阅读 · 0 评论 -
FreeRtos内存管理-heap_1.c
FreeRtos内存管理-heap_1.cFreeRTOS 支持5种动态内存管理方案,分别通过文件 heap_1.c,heap_2.c,heap_3.c,heap_4.c和heap_5.c实现。这 5 个文件在 FreeRTOS源码包中的路径是:FreeRTOS\Source\portable\MemMang 本文将简单介绍heap_1.c、heap_2.c、heap_3.c的代码实现以及应用场景。若用户想要自己使用内存,则可通过函数对齐进行申请调用,类似于C中的malloc()和free(),在F原创 2021-07-15 11:17:19 · 471 阅读 · 0 评论 -
FreeRTOS常用API
FreeRTOS常用API一、任务[task.h]1、任务创建如果任务成功创建并加入就绪列表函数返回pdPASS,否则函数返回错误码,具体参见projdefs.h。xTaskCreate((TaskFunction_t) master_task_main, /* 任务入口函数 */ “MASTER”, /* 任务名字 */ 64*1024, /* 任务栈大小 */ NULL,原创 2021-07-13 19:07:31 · 1507 阅读 · 0 评论 -
FreeRTOS内存管理之heap_4.c
FreeRTOS内存管理之heap_4.c源码解析每当创建任务、队列、互斥量、软件定时器、信号量或事件组时,RTOS内核会为它们分配RAM。标准函数库中的malloc()和free()函数有些时候能够用于完成这个任务,但是:在嵌入式系统中,它们并不总是可以使用的;它们会占用更多宝贵的代码空间;它们没有线程保护;它们不具有确定性(每次调用执行的时间可能会不同);当RTOS内核需要RAM时,调用**pvPortMalloc()函数来代替malloc()函数。当RAM要被释放时,调用vPor原创 2021-07-15 09:45:46 · 1782 阅读 · 1 评论