打印
[STM32F1]

DMA开辟缓存怎么使用动态内存

[复制链接]
461|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxrs|  楼主 | 2021-12-6 21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开辟20kb左右的缓存空间,如果直接用全局变量数组,在不需要用到DMA时,那这20k的内存就一直不能释放,好浪费。若使用malloc来开辟动态内存,应该是放在堆区吧?

使用特权

评论回复
沙发
jlyuan| | 2021-12-6 21:33 | 只看该作者
堆区不是默认只有512字节?

使用特权

评论回复
板凳
xxrs|  楼主 | 2021-12-6 21:34 | 只看该作者
是啊,还要修改启动文件的堆大小?

使用特权

评论回复
地板
stly| | 2021-12-6 21:37 | 只看该作者
DMADMA直接内存存取原理是指外部设备不通过CPU而直接与系统内存交换数据的接口技术

使用特权

评论回复
5
tian111| | 2021-12-6 21:39 | 只看该作者
是的。

使用特权

评论回复
6
wyjie| | 2021-12-6 21:41 | 只看该作者
要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的利用率。

使用特权

评论回复
7
songqian17| | 2021-12-6 21:43 | 只看该作者
采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,才能解决效率和速度问题。DMA在外设与内存间直接进行数据交换,而不通过CPU,这样数据传送的速度就取决于存储器和外设的工作速度。

使用特权

评论回复
8
juventus9554| | 2021-12-6 21:45 | 只看该作者
可以自己写个管理的程序就是了

使用特权

评论回复
9
stly| | 2021-12-6 21:47 | 只看该作者
动态的会不会发生数据变化呢

使用特权

评论回复
10
chenjunt| | 2021-12-6 21:51 | 只看该作者
讨论的好高深 有点看不懂啊

使用特权

评论回复
11
xxrs|  楼主 | 2021-12-6 21:53 | 只看该作者
长知识了 感谢各位的讨论

使用特权

评论回复
12
tpgf| | 2022-1-3 17:39 | 只看该作者
这个缓存已经不小了

使用特权

评论回复
13
labasi| | 2022-1-3 17:43 | 只看该作者
管理程序如何编制呢

使用特权

评论回复
14
paotangsan| | 2022-1-3 17:46 | 只看该作者
它的作用是什么呢

使用特权

评论回复
15
renzheshengui| | 2022-1-3 17:47 | 只看该作者
需要谨慎处理数据

使用特权

评论回复
16
wakayi| | 2022-1-3 17:51 | 只看该作者
小心数据丢失

使用特权

评论回复
17
wowu| | 2022-1-3 17:53 | 只看该作者
应该可以这样做

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝