大家好。
请教STM32H7的DMA原理,比如FLAC可变帧长解码,我们设置DMA双缓存buf1和buf2并申请内存,然后我们设置DMA的每次传输数据量num,并关联双缓存buf1和buf2。有个问题我没想明白:
我们可以申请buf1和buf2的大小,大于num,但FLAC是可变帧长解码,每次解码完成后,自动把PCM数据填充到buf1或buf2,如果PCM数据小于num,那DMA会出问题啊,会传输上次的部分PCM数据;如果PCM数据大于num,会丢失本次的后面部分PCM数据。
但实际上FLAC解码却能正常工作,无杂音等问题。 |