首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

DMA的有关问题

2012-02-14 
DMA的问题我想使用DMA从Memeory搬数据到UART tx fifo 进行发送,因为memory是32位的,DMA控制器设置的长度ta

DMA的问题
我想使用DMA从Memeory搬数据到UART tx fifo 进行发送,因为memory是32位的,DMA控制器设置的长度tansfer size实际上是
word为单位,这样如何发送奇数字节的数据?请高手们赐教,谢谢!

[解决办法]
不足一个Word的部分发送一个Word,多出的字节丢掉。
[解决办法]
奇数字节的数据你可以补充为偶数字节嘛,只需要定一个协议即可,没用的数据抛掉
[解决办法]
DMA控制寄存器配好,它会自动搬运的,不用太担心那个丢失,一般总线会自己动填补不足的字节,而不会丢失字节
[解决办法]
楼主的情况是,memory是DWORD类型,DMA只支持WORD transfer,你的这种情况是无法传送基数字节的,比如你要传送23个字节,那么既然memory是DWORD类型,最接近的情况是送出24个字节(4Bytes * 6),多一个字节,那就需要你将多出的一个字节设置为‘0’,或0x5a(随你自己定义),接收方与发送的通信规约要定义好,最后一个自己可以定义为结束符号,或者无效数据(当然这会有一点影响速度,要看硬体处理能力)。

方法和形式不是最重要的,重要的是在最短开发周期内实现功能、满足性能。
[解决办法]
楼上正解!!

热点排行