硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7315|回复: 8
收起左侧

[STM32H7] 分享一个 修改 ti 的动态内存管理 malloc,欢迎使用评测

  [复制链接]

610

主题

3060

回帖

4910

积分

至尊会员

积分
4910
发表于 2021-4-9 17:16:30 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2021-8-24 17:18 编辑

分享一个 修改 ti 的动态内存管理 memory

欢迎使用评测


malloc_ti_byte.c (19.9 KB, 下载次数: 171)


malloc_ti_byte.h (3.8 KB, 下载次数: 105)


内存测试效果_sdram_addr1 = 0xD0D00278
_sdram_addr2 = 0xD25002B8
_sdram_addr3 = 0xD25002B8
_sdram_addr4 = 0xD2600544
_sdram_addr1 = 0xD0D00278

---------------------------------------------------
_sram1_addr1 = 0x30000278
_sram1_addr2 = 0x30000E7C
_sram1_addr3 = 0x30000E7C
_sram1_addr4 = 0x30002280
_sram1_addr1 = 0x30000278

---------------------------------------------------
_dtcm_addr1 = 0x20000278
_dtcm_addr2 = 0x20000E7C
_dtcm_addr3 = 0x20000E7C
_dtcm_addr4 = 0x20002280
_dtcm_addr1 = 0x20000278


评分

参与人数 1金币 +50 收起 理由
eric2013 + 50 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106912
QQ
发表于 2021-4-10 08:11:49 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

610

主题

3060

回帖

4910

积分

至尊会员

积分
4910
 楼主| 发表于 2021-4-11 13:17:51 | 显示全部楼层

有用就好啊,不知道有没有哪位大神测试过,效果如何啊 ?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106912
QQ
发表于 2021-4-12 08:26:56 | 显示全部楼层
hpdell 发表于 2021-4-11 13:17
有用就好啊,不知道有没有哪位大神测试过,效果如何啊 ?

还没测试,回头我试试。
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
发表于 2023-8-1 16:20:35 | 显示全部楼层
楼主您好,我移植了您这个TI的内存管理程序到我的项目中,发现只能申请几次,申请多次后,就返回NULL申请不到内存了。
回复

使用道具 举报

610

主题

3060

回帖

4910

积分

至尊会员

积分
4910
 楼主| 发表于 2023-8-2 11:57:35 | 显示全部楼层
pnhywyb 发表于 2023-8-1 16:20
楼主您好,我移植了您这个TI的内存管理程序到我的项目中,发现只能申请几次,申请多次后,就返回NULL申请不 ...

你使用完后内存有没有释放,另外你的内存管理配置是多大的 ? 内存申请又是多大的 ?

我目前使用是没有问题的哟
回复

使用道具 举报

1

主题

60

回帖

63

积分

初级会员

积分
63
发表于 2023-8-2 13:52:08 | 显示全部楼层
内存碎片怎么处理呢
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
发表于 2023-8-2 15:13:10 | 显示全部楼层
hpdell 发表于 2023-8-2 11:57
你使用完后内存有没有释放,另外你的内存管理配置是多大的 ? 内存申请又是多大的 ?

我目前使用是没 ...

uCOS II任务堆栈使用静态变量有13.625KB,系统栈空间我设置了10KB,这些加起来都是占用AXI SRAM 512KB的空间。

目前我设置如下,能开机,但是AXISRAM有申请不到内存的情况:

#define AXISRAM_RT_ADDR   (uint32_t)(0x24000000 + 0x2800)
#define AXISRAM_RT_MAX_SIZE          350*1024    // 单片机内部 AXI SRAM 最大管理 512KByte 的空间

#define DTCMSRAM_RT_ADDR   (uint32_t)(0x20000000)
#define DTCMSRAM_RT_MAX_SIZE          120*1024    // 单片机内部 DTCM SRAM 最大管理 128KByte 的空间

// D2域, 128KB SRAM1(0x30000000) + 128KB SRAM2(0x30020000) + 32KB SRAM3(0x30040000)
#define SRAM12_RT_ADDR   (uint32_t)(0x30000000)
#define SRAM12_RT_MAX_SIZE          270*1024    // 单片机内部 AXI SRAM 最大管理 288KByte 的空间

// D3域, 64KB SRAM4(0x38000000)
#define SRAM4_RT_ADDR   (uint32_t)(0x38000000)
#define SRAM4_RT_MAX_SIZE          60*1024    // 单片机内部 AXI SRAM 最大管理 64KByte 的空间
回复

使用道具 举报

610

主题

3060

回帖

4910

积分

至尊会员

积分
4910
 楼主| 发表于 2023-11-28 16:17:59 | 显示全部楼层
pnhywyb 发表于 2023-8-2 15:13
uCOS II任务堆栈使用静态变量有13.625KB,系统栈空间我设置了10KB,这些加起来都是占用AXI SRAM 512KB的 ...

你这个 AXISRAM 有时申请不到是不是被系统的其他的代码给占用了 哟  ??

这个区域总大小 512KB, 你分配了 350KB, 那还有 150KB 的空间 在被其他调用时,是不是超过了 150KB 大小 ??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 16:31 , Processed in 0.274230 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表