[应用相关]

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

[复制链接]
524|4
手机看帖
扫描二维码
随时随地手机跟帖
Richardd|  楼主 | 2018-5-26 17:27 | 显示全部楼层 |阅读模式
开辟20kb左右的缓存空间,如果直接用全局变量数组,在不需要用到DMA时,那这20k的内存就一直不能释放,好浪费。若使用malloc来开辟动态内存,应该是放在堆区吧?堆区不是默认只有512字节?还要修改启动文件的堆大小?
Mattheww| | 2018-5-26 17:41 | 显示全部楼层

DMADMA直接内存存取原理是指外部设备不通过CPU而直接与系统内存交换数据的接口技术

使用特权

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

使用特权

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

使用特权

评论回复
Bjorn| | 2018-5-26 18:47 | 显示全部楼层

可以自己写个管理的程序就是了

使用特权

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

本版积分规则

42

主题

380

帖子

0

粉丝