成功将RTX5的动态内存管理独立出来,在H7的五个分区同时使用测试成功,支持使用率统计,需要的拿去用于RT1052
例程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86087适合用于MP3解码,JPEG解码,cJSON,矢量字库等需要随意申请动态内存大小的场合。
static/image/hrline/4.gif
空间分配:
/* AXI SRAM, D1域名, 128KB */
mem_head_t *AXISRAMUsed;
uint64_t AppMallocAXISRAM;
/* SRAM1, D2域, 128KB */
mem_head_t *SRAM1Used;
uint64_t AppMallocSRAM1__attribute__((at(0x30000000)));
/* SRAM2, D2域, 128KB */
mem_head_t *SRAM2Used;
uint64_t AppMallocSRAM2__attribute__((at(0x30020000)));
/* DTCM, 128KB */
mem_head_t *DTCMUsed;
uint64_t AppMallocDTCM__attribute__((at(0x20000000)));
初始化:
/* 初始化动态内存空间 */
osRtxMemoryInit(AppMallocAXISRAM, 128*1024);
osRtxMemoryInit(AppMallocSRAM1, 128*1024);
osRtxMemoryInit(AppMallocSRAM2, 128*1024);
osRtxMemoryInit(AppMallocDTCM, 128*1024);
AXI SRAM(申请三次,释放三次,释放完毕后会固定占用16字节):
https://img.anfulai.cn/dz/attachment/forum/201804/09/031242lwwmfdnq5asfe20f.png
SRAM1(同上)
https://img.anfulai.cn/dz/attachment/forum/201804/09/031243mwiemoiyttw5vyyi.png
SRAM2(同上)
https://img.anfulai.cn/dz/attachment/forum/201804/09/031243qhtqbtipq6z4qi76.png
DTCM(同上)
https://img.anfulai.cn/dz/attachment/forum/201804/09/031243l8zulup8po8nfpou.png
http://www.armbbs.cn/static/image/hrline/4.gif
移植仅需要rtx_lib.h和rtx_memory.c文件,可用于任何其它CM内核。
https://img.anfulai.cn/dz/attachment/forum/201804/09/031442pntznsoogcx58goj.png
硬汉哥,你不睡觉啊,这帖子几点还发呢 硬汉哥注意身体啊,,
谢谢分享,有机会试试
请问硬汉哥哪里有uC/fs的源码没? 小狐狸 发表于 2018-4-9 09:08
硬汉哥注意身体啊,,
谢谢分享,有机会试试
以个人名义或者公司名义申请Micrium的创客,会有源码的。 eric2013 发表于 2018-4-9 10:38
以个人名义或者公司名义申请Micrium的创客,会有源码的。
好的,谢谢啦 ou513 发表于 2018-4-9 08:12
硬汉哥,你不睡觉啊,这帖子几点还发呢
:handshake
测试中出了点问题,所以时间长了些 看了下RTX的内存管理实现方法,感觉不如lwip的mem管理强大。还是从lwip搬过来用更好吧。 公仆 发表于 2018-4-9 17:00
看了下RTX的内存管理实现方法,感觉不如lwip的mem管理强大。还是从lwip搬过来用更好吧。
RTX5的,支持三种,这个只是其中一种。比lwip的爽多了。 你们都这么高端大气的。。 我还是只搞点静态分配用用。 eric2013 发表于 2018-4-9 10:38
以个人名义或者公司名义申请Micrium的创客,会有源码的。
前几天以个人名义申请了,过了2天,北京麦克泰软件技术有限公司人发邮件,问我有什么帮助,我说我要申请创客,他说这个得从原厂申请,。
到现在原厂也没有回复我,快一周了,硬汉哥我这个是不是被拒绝了呢 小狐狸 发表于 2018-4-11 18:02
前几天以个人名义申请了,过了2天,北京麦克泰软件技术有限公司人发邮件,问我有什么帮助,我说我要申请 ...
没有吧,我们之前申请就是1个月左右。 eric2013 发表于 2018-4-12 00:34
没有吧,我们之前申请就是1个月左右。
额,那我再等等吧。
你是以个人名义就在官网上填了一个表格就申请通过了吗 硬汉还是很接地气的:lol 小狐狸 发表于 2018-4-12 08:57
额,那我再等等吧。
你是以个人名义就在官网上填了一个表格就申请通过了吗
是的,我们那个时候是第一批。 始终觉得这个算法考虑不周,在free的时候只考虑前一个是否是空闲,没考虑下一个是否也是空闲。这样一来就没组合出最大的空闲内存,导致出现碎片。设置tail前一个内存块会一直得不到合并。
freeB:--->
希望我想错了。 eddy0317 发表于 2018-4-12 11:50
始终觉得这个算法考虑不周,在free的时候只考虑前一个是否是空闲,没考虑下一个是否也是空闲。这样一来就没 ...
没关系,这种问题都是小事。
RTX4的动态内存方案跟这个一样,我已经在项目里面稳定运行2年了。 eric2013 发表于 2018-4-12 10:27
是的,我们那个时候是第一批。
我想评估下uc/FS和uC/TCP-IP,不知会不会给源码呢? eddy0317 发表于 2018-4-12 11:50
始终觉得这个算法考虑不周,在free的时候只考虑前一个是否是空闲,没考虑下一个是否也是空闲。这样一来就没 ...
他这个分配方法怎么没有用malloc函数呢,直接指针了一下就分配出内存了,原理是啥呢? 小狐狸 发表于 2018-4-12 23:01
我想评估下uc/FS和uC/TCP-IP,不知会不会给源码呢?
就是给的源码,不是库。 eric2013 发表于 2018-4-13 02:48
就是给的源码,不是库。
那太好了,我再等等
北京的代理说我的申请有可能被拒绝了 小狐狸 发表于 2018-4-13 08:46
那太好了,我再等等
北京的代理说我的申请有可能被拒绝了
后面的要求比较严格了,看来只能公司名义了,要用正规的公司邮箱。 eric2013 发表于 2018-4-13 11:02
后面的要求比较严格了,看来只能公司名义了,要用正规的公司邮箱。
恩恩,也许吧,能否分享下uC/FS和TCP-IP的代码吗:P 小狐狸 发表于 2018-4-13 11:10
恩恩,也许吧,能否分享下uC/FS和TCP-IP的代码吗
非常抱歉兄弟:handshake,我的那个过期了,为其一年:L eric2013 发表于 2018-4-13 11:48
非常抱歉兄弟,我的那个过期了,为其一年
哦哦,没事啦,谢谢硬汉哥 小狐狸 发表于 2018-4-12 23:02
他这个分配方法怎么没有用malloc函数呢,直接指针了一下就分配出内存了,原理是啥呢?
分配方法本来就是等效malloc,当然不会再用malloc函数了,因为这部分内存是“没有使用的空闲内存”,把指针给出去就是了。你看明白逻辑就知道了。 eddy0317 发表于 2018-4-13 14:34
分配方法本来就是等效malloc,当然不会再用malloc函数了,因为这部分内存是“没有使用的空闲内存”,把指 ...
嗯,谢谢通俗的讲解啊 公仆 发表于 2018-4-9 17:00
看了下RTX的内存管理实现方法,感觉不如lwip的mem管理强大。还是从lwip搬过来用更好吧。
我也稍微看过lwip的mem管理,单从动态内存管理来看,lwip的也没有什么不一样的地方,虽然rtx的也没有什么特别出彩的,不过lwip的mem管理可以有多种类型选择,具体应用时可能会有优势
页:
[1]