硬汉嵌入式论坛

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

[emWin] 结构体怎么申请SDRAM里的空间?

[复制链接]

22

主题

96

回帖

162

积分

初级会员

积分
162
发表于 2021-12-31 18:21:36 | 显示全部楼层 |阅读模式
如题,结构体一般用malloc的方式申请空间,但项目中的结构体有很多数组指针比较大,所以想能不能申请到外部SDRAM的空间去呢?SDRAM空间申请方式:

char read_buf[4096]       __attribute__((at(USERINFO_ADDR)));


想问问各位大神有没有办法把结构体的空间申请到SDRAM中,该如何写代码?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107143
QQ
发表于 2021-12-31 19:11:19 | 显示全部楼层

像使用内部SRAM一样定义使用STM32H7的外部SDRAM,含MDK和IAR两版
https://www.armbbs.cn/forum.php? ... 8697&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

22

主题

96

回帖

162

积分

初级会员

积分
162
 楼主| 发表于 2022-1-4 09:27:40 | 显示全部楼层
eric2013 发表于 2021-12-31 19:11
像使用内部SRAM一样定义使用STM32H7的外部SDRAM,含MDK和IAR两版
https://www.armbbs.cn/forum.php?mod= ...

好的,谢谢硬汉,我研读一下
回复

使用道具 举报

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
发表于 2022-1-4 16:09:44 | 显示全部楼层
吧 read_buff 定义成指针,然后 使用 sizeof 计算结构体里面的长度,再然后收益 malloc 申请也可
回复

使用道具 举报

22

主题

96

回帖

162

积分

初级会员

积分
162
 楼主| 发表于 2022-1-5 11:43:14 | 显示全部楼层
hpdell 发表于 2022-1-4 16:09
吧 read_buff 定义成指针,然后 使用 sizeof 计算结构体里面的长度,再然后收益 malloc 申请也可

我之前也是这种想法,奈何不太懂怎么和malloc结合在一起写
回复

使用道具 举报

5

主题

166

回帖

181

积分

初级会员

积分
181
发表于 2022-1-6 10:30:28 | 显示全部楼层
如果给emwin的内存够大的话,可以把他们分到emwin的内存空间里
比如定义read_buf的时候,直接定义成一个指针,然后定义一个GUI_HMEM类型的句柄,用GUI_ALLOC_AllocZero设置用多大空间,然后用GUI_ALLOC_h2p把句柄转换成指针赋值给read_buf就可以用了

像这样
  1. char *read_buf;
  2. GUI_HMEM hMem;

  3. hMem = GUI_ALLOC_AllocZero(4096);
  4. <div>read_buf = (char*)GUI_ALLOC_h2p(hMem);</div>
复制代码
读写方法跟普通数组一样
回复

使用道具 举报

22

主题

96

回帖

162

积分

初级会员

积分
162
 楼主| 发表于 2022-1-9 13:18:23 | 显示全部楼层
DX3906 发表于 2022-1-6 10:30
如果给emwin的内存够大的话,可以把他们分到emwin的内存空间里
比如定义read_buf的时候,直接定义成一个指 ...

好的,感谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 10:47 , Processed in 0.246245 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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