开发板是AM335X EVM,软件是startware,使用的是用DMA发送串口数据,当发送数据>=3个字节的时候,就可以循环发送,但是当发送的字节小于3个字节的时候,就只能发送一次。
TX_DMA_THRESHOLD,TX_TRIGGER_SPACE_GRAN_1,TX_BYTES_PER_EVENT我都改成1了。
请问一下需要怎么修改才能稳定的用DMA发送1~2个字节的数据?
Shine:
请问如果不用edma方式,uart能循环发送小于3个字节吗?
Steven Liu1:
我把你的问题拆开来进行描述确认,现在你的问题是说,在两次DMA传递中出现了问题,只能传送一次,然后下一次就不能传送了。还是说,对于传送一次1~2个字节数据的时候出现问题?
另外,你要自己想清楚模式,到底这个事件是说有1个字符过来,我就触发传递,还是说2个,再或者更多。这个在底层做触发实现的时候一定是确定的。
bin lu:
回复 Shine:
不用DMA模式是没问题的
bin lu:
回复 Steven Liu1:
问题是如果数据量是1~2个字节的时候,DMA只能传送一次,下一次就不能发送了,如果数据量是3个字节以上的话,是可以连续DMA发送的。
我现在就是想用DMA发送一个字节的数据,也就是说有一个字符就发送,等DMA完成信号来了再发下一个字符。请问需要怎么改startware里面的代码来实现?