搭建了一个框架完成了DMA的内存拷贝,过程很顺利,DMA完成中断也进去了。
然后想通过把 0 1 0 1这样的数据发送到GPIO的位带区,达到LED等亮灭的效果,直接把目标地址改成位带地址,偏移offset改成0,然后发现DMA根本不会传送数据。我不能理解,位带操作虽然特殊,但是毕竟也是有自己的地址的,怎么就不能传送数据了呢。
位带操作本来用的人就少,用dma传输就更少见了...不知道大家谁以前遇到过类似的问题,能不能给一下建议。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
位带应该是虚拟出来的,映射出来的,并不是真实存在的,是内部硬件机制给你转译的。
我觉得你可以理解芯片里框架也分层设计,DMA是属于底层,虚拟设备属于上层,底层不能直接访问上层,只能访问上层的经过转译后的对应的底层(固定的转译关系理论上肯定可以,不固定的转译理论上也能访问时候查表,支持不支持就看芯片公司的取舍了,应该主要是成本和使用价值吧)。
一周热门 更多>