中级会员
- 积分
- 226
- 金钱
- 226
- 注册时间
- 2012-3-11
- 在线时间
- 31 小时
|
本帖最后由 ma_hao123 于 2021-10-14 13:47 编辑
由于一些原因,最近从UCOS转入到freeRTOS学习,今天不聊别的,主要现在跟大家聊一些freeRTOS内存管理知识,因为关于OS和内存管理是可以分别展开,都是超级深奥的话题,
此处仅限于使用STM32Cube创建的freeRTOS工程,版本为 * FreeRTOS Kernel V10.3.1,
至于其他版本是否不一样,笔者没有去测试,这里讲一下在stm32g030平台下的freeRTOS内存管理。
至于freeRTOS中heap_1,heap_2,heap_3,heap_4,heap_5,5种内存管理方法,此处不再赘述,这里主要以heap_4
为例讲解,也是STM32Cube推荐的管理方法。
这里先抛出一个问题:
你的FreeRTOS工程中的start_up文件中的堆栈大小定义都是怎么计算确定的?
Stack_Size EQU 0x200
Heap_Size EQU 0x200
栈空间的作用详细大家都比我理解的透彻,
但是堆空间呢?
这里抛出第二个问题:
你的FreeRTOS工程中的start_up文件中定义的堆空间都给谁使用了?
内存管理文件中,申请的内存是从堆空间中申请的吗?
审明一下,笔者水平有限,所有心得仅局限于自己理解,但是都经过测试证明,
若有高手发现问题,或者误导情况,欢迎指正。
笔者的研究心得见附件。
请下载查阅。
费了九牛二虎之力 ,终于把附件传上来了,顺便说一下,附件上传插件在IE和360里面都是灰色的,
论坛是否可以更新一下上传文件的插件。
|
|