[应用相关] DMA开辟缓存怎么使用动态内存

[复制链接]
768|10
 楼主| xxrs 发表于 2019-12-1 16:06 | 显示全部楼层 |阅读模式
开辟20kb左右的缓存空间,如果直接用全局变量数组,在不需要用到DMA时,那这20k的内存就一直不能释放,好浪费。若使用malloc来开辟动态内存,应该是放在堆区吧?
chuxh 发表于 2019-12-1 16:10 | 显示全部楼层
堆区不是默认只有512字节?
 楼主| xxrs 发表于 2019-12-1 16:15 | 显示全部楼层
是啊,还要修改启动文件的堆大小?
stly 发表于 2019-12-1 16:18 | 显示全部楼层
DMADMA直接内存存取原理是指外部设备不通过CPU而直接与系统内存交换数据的接口技术
香水城 发表于 2019-12-2 14:42 | 显示全部楼层
是的。
gongche 发表于 2019-12-13 19:01 | 显示全部楼层
要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的利用率。
tian111 发表于 2019-12-13 19:12 | 显示全部楼层
采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,才能解决效率和速度问题。DMA在外设与内存间直接进行数据交换,而不通过CPU,这样数据传送的速度就取决于存储器和外设的工作速度。
bqyj 发表于 2019-12-13 19:18 | 显示全部楼层
可以自己写个管理的程序就是了
磨砂 发表于 2020-1-4 11:09 | 显示全部楼层
动态的会不会发生数据变化呢
晓伍 发表于 2020-1-4 11:11 | 显示全部楼层
讨论的好高深 有点看不懂啊
八层楼 发表于 2020-1-4 11:40 | 显示全部楼层
长知识了 感谢各位的讨论
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部