[STM32F1]

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

[复制链接]
306|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而直接与系统内存交换数据的接口技术

使用特权

评论回复
tian111| | 2021-12-6 21:39 | 显示全部楼层
是的。

使用特权

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

使用特权

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

使用特权

评论回复
juventus9554| | 2021-12-6 21:45 | 显示全部楼层
可以自己写个管理的程序就是了

使用特权

评论回复
stly| | 2021-12-6 21:47 | 显示全部楼层
动态的会不会发生数据变化呢

使用特权

评论回复
chenjunt| | 2021-12-6 21:51 | 显示全部楼层
讨论的好高深 有点看不懂啊

使用特权

评论回复
xxrs|  楼主 | 2021-12-6 21:53 | 显示全部楼层
长知识了 感谢各位的讨论

使用特权

评论回复
tpgf| | 2022-1-3 17:39 | 显示全部楼层
这个缓存已经不小了

使用特权

评论回复
labasi| | 2022-1-3 17:43 | 显示全部楼层
管理程序如何编制呢

使用特权

评论回复
paotangsan| | 2022-1-3 17:46 | 显示全部楼层
它的作用是什么呢

使用特权

评论回复
renzheshengui| | 2022-1-3 17:47 | 显示全部楼层
需要谨慎处理数据

使用特权

评论回复
wakayi| | 2022-1-3 17:51 | 显示全部楼层
小心数据丢失

使用特权

评论回复
wowu| | 2022-1-3 17:53 | 显示全部楼层
应该可以这样做

使用特权

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

本版积分规则

405

主题

7415

帖子

1

粉丝