RT595 FreeRTOS DMIC recording: FIFO/DMA buffer only first sample non-zero (bare-metal works fine)

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

RT595 FreeRTOS DMIC recording: FIFO/DMA buffer only first sample non-zero (bare-metal works fine)

1,243件の閲覧回数
Weitin
Contributor I

Hi community,

I am working on audio recording with DMIC + DMA on RT595 under FreeRTOS, but I ran into an issue:

  • When I read from FIFO_DATA, only the very first value may be non-zero. All following values are always 0.

  • Similarly, in the DMA buffer, only the first sample sometimes has a non-zero value, but all other samples are always 0.

My setup:

  • Environment: RT595 EVK, FreeRTOS

  • Interrupt priority follows configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY

  • DMIC clock and PDM_DATA signals are toggling, so input seems valid

Important note:
With the same configuration and same function call sequence, the DMIC + DMA works correctly on bare-metal (no RTOS). In that case, both FIFO_DATA and DMA buffer contain valid non-zero audio samples. The issue only happens under FreeRTOS.

Question:

  • Has anyone faced a similar issue with DMIC recording under FreeRTOS on RT595?

  • Could this be related to DMA configuration, cache/memory section, or DMIC FIFO handling in an RTOS context?

Any suggestions, hints, or working references would be greatly appreciated.

Thanks!

0 件の賞賛
返信
3 返答(返信)

1,225件の閲覧回数
Sam_Gao
NXP Employee
NXP Employee

Hi,

I don't think this issue is from FreeRTOS, it seems like a sw bug from my side. 

Would you please double check the functions running on both bare-metal or RTOS are 100% same?

0 件の賞賛
返信

1,189件の閲覧回数
Weitin
Contributor I

Hi Sam,

Thanks for your feedback.
I have already double-checked, and I can confirm that the functions running on both bare-metal and RTOS are 100% the same.
The same call flow works correctly in the bare-metal project, but in the FreeRTOS project the buffer data is always 0x00000000.

Do you think there could be any other project settings (for example in MCUXpresso IDE, such as linker script, memory regions, or compiler options) that might cause this kind of difference?

Thanks again for your suggestions.

Weitin

0 件の賞賛
返信

1,121件の閲覧回数
Sam_Gao
NXP Employee
NXP Employee

Hi,

If the logic code is the same, it seems only involves the RTOS scheduling configuration, you can try to modify the priority of RTOS.

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2175428%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERT595%20FreeRTOS%20DMIC%20%E8%A8%98%E9%8C%B2%3A%20FIFO%2FDMA%20%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%81%AE%E6%9C%80%E5%88%9D%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AE%E3%81%BF%E3%81%8C%E3%82%BC%E3%83%AD%E4%BB%A5%E5%A4%96%20(%E3%83%99%E3%82%A2%E3%83%A1%E3%82%BF%E3%83%AB%E3%81%AF%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2175428%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AE%E7%9A%86%E6%A7%98%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AF%3CSTRONG%3EFreeRTOS%20%E3%81%AE%20RT595%20%E3%81%A7%20DMIC%20%2B%20DMA%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E9%8C%B2%E9%9F%B3%3C%2FSTRONG%3E%E3%81%AB%E5%8F%96%E3%82%8A%E7%B5%84%E3%82%93%E3%81%A7%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%95%8F%E9%A1%8C%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3E%3CSTRONG%3EFIFO_DATA%3C%2FSTRONG%3E%E3%81%8B%E3%82%89%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%E5%A0%B4%E5%90%88%E3%80%81%E6%9C%80%E5%88%9D%E3%81%AE%E5%80%A4%E3%81%AE%E3%81%BF%E3%81%8C%E3%82%BC%E3%83%AD%E4%BB%A5%E5%A4%96%E3%81%AB%E3%81%AA%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E4%BB%A5%E9%99%8D%E3%81%AE%E5%80%A4%E3%81%AF%E3%81%99%E3%81%B9%E3%81%A6%E5%B8%B8%E3%81%AB%200%20%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E5%90%8C%E6%A7%98%E3%81%AB%E3%80%81%20%3CSTRONG%3EDMA%20%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%3C%2FSTRONG%3E%E3%81%A7%E3%81%AF%E3%80%81%E6%9C%80%E5%88%9D%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AE%E3%81%BF%E3%81%8C%E3%82%BC%E3%83%AD%E4%BB%A5%E5%A4%96%E3%81%AE%E5%80%A4%E3%82%92%E6%8C%81%E3%81%A4%E3%81%93%E3%81%A8%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E4%BB%96%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AF%E5%B8%B8%E3%81%AB%200%20%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%E7%A7%81%E3%81%AE%E8%A8%AD%E5%AE%9A%3A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3E%E7%92%B0%E5%A2%83%3A%20RT595%20EVK%E3%80%81FreeRTOS%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%84%AA%E5%85%88%E5%BA%A6%E3%81%AFconfigLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY%E3%81%AB%E5%BE%93%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EDMIC%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A8PDM_DATA%E4%BF%A1%E5%8F%B7%E3%81%8C%E3%83%88%E3%82%B0%E3%83%AB%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82SO%E3%80%81%E5%85%A5%E5%8A%9B%E3%81%AF%E6%9C%89%E5%8A%B9%E3%81%A7%E3%81%82%E3%82%8B%E3%81%A8%E6%80%9D%E3%82%8F%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%3CSTRONG%3E%E9%87%8D%E8%A6%81%E3%81%AA%E6%B3%A8%E6%84%8F%3A%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%E5%90%8C%E3%81%98%E6%A7%8B%E6%88%90%E3%81%A8%E5%90%8C%E3%81%98%E9%96%A2%E6%95%B0%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%3C%2FSTRONG%3E%E3%81%A7%E3%80%81DMIC%20%2B%20DMA%20%E3%81%AF%3CSTRONG%3E%E3%83%99%E3%82%A2%E3%83%A1%E3%82%BF%E3%83%AB%20(RTOS%20%E3%81%AA%E3%81%97)%3C%2FSTRONG%3E%E3%81%A7%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%81%9D%E3%81%AECASE%E3%80%81FIFO_DATA%20%E3%81%A8%20DMA%20%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%AB%E3%80%81%E6%9C%89%E5%8A%B9%E3%81%AA%E3%82%BC%E3%83%AD%E4%BB%A5%E5%A4%96%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%AF%20FreeRTOS%20%E3%81%A7%E3%81%AE%E3%81%BF%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3CSTRONG%3E%E8%B3%AA%E5%95%8F%EF%BC%9A%3C%2FSTRONG%3E%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3ERT595%20%E4%B8%8A%E3%81%AE%20FreeRTOS%20%E3%81%A7%20DMIC%20%E8%A8%98%E9%8C%B2%E3%81%AB%E9%96%A2%E3%81%97%E3%81%A6%E5%90%8C%E6%A7%98%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%AB%E7%9B%B4%E9%9D%A2%E3%81%97%E3%81%9F%E4%BA%BA%E3%81%AF%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81DMA%20%E6%A7%8B%E6%88%90%E3%80%81%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%2F%E3%83%A1%E3%83%A2%E3%83%AA%20%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%80%81%E3%81%BE%E3%81%9F%E3%81%AF%20RTOS%20%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%A7%E3%81%AE%20DMIC%20FIFO%20%E5%87%A6%E7%90%86%E3%81%AB%E9%96%A2%E9%80%A3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%E3%81%94%E6%8F%90%E6%A1%88%E3%80%81%E3%83%92%E3%83%B3%E3%83%88%E3%80%81%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99%E3%81%AA%E3%81%A9%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%E3%82%89%E3%80%81%E3%81%9C%E3%81%B2%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2177857%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20RT595%20FreeRTOS%20DMIC%20recording%3A%20FIFO%2FDMA%20buffer%20only%20first%20sample%20non-zero%20(bare-metal%20works%20fine%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2177857%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%0A%3CP%3E%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E5%90%8C%E3%81%98%E3%81%A7%E3%81%82%E3%82%8C%E3%81%B0%E3%80%81RTOS%20%E3%81%AE%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E6%A7%8B%E6%88%90%E3%81%AE%E3%81%BF%E3%81%8C%E9%96%A2%E4%BF%82%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A8%E6%80%9D%E3%82%8F%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81RTOS%20%E3%81%AE%E5%84%AA%E5%85%88%E5%BA%A6%E3%82%92CAN%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2176492%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20RT595%20FreeRTOS%20DMIC%20recording%3A%20FIFO%2FDMA%20buffer%20only%20first%20sample%20non-zero%20(bare-metal%20works%20fine%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2176492%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%82%B5%E3%83%A0%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E3%81%99%E3%81%A7%E3%81%AB%E4%BA%8C%E9%87%8D%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%92%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E3%83%99%E3%82%A2%E3%83%A1%E3%82%BF%E3%83%AB%E3%81%A8%20RTOS%20%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%82%8B%E9%96%A2%E6%95%B0%E3%81%AF%20100%25%20%E5%90%8C%E3%81%98%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92CAN%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E5%90%8C%E3%81%98%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AF%E3%83%99%E3%82%A2%E3%83%A1%E3%82%BF%E3%83%AB%20%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A7%E3%81%AF%E6%AD%A3%E3%81%97%E3%81%8F%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81FreeRTOS%20%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A7%E3%81%AF%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%83%BC%20%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%E5%B8%B8%E3%81%AB%200x00000000%20%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%93%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E9%81%95%E3%81%84%E3%82%92%E5%BC%95%E3%81%8D%E8%B5%B7%E3%81%93%E3%81%99%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%AE%E3%81%82%E3%82%8B%E4%BB%96%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E8%A8%AD%E5%AE%9A%20(%E3%81%9F%E3%81%A8%E3%81%88%E3%81%B0%E3%80%81MCUXpresso%20IDE%20%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AB%E3%83%BC%20%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%80%81%E3%83%A1%E3%83%A2%E3%83%AA%E9%A0%98%E5%9F%9F%E3%80%81%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%20%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AA%E3%81%A9)%20%E3%81%8C%E3%81%82%E3%82%8B%E3%81%A8%E6%80%9D%E3%82%8F%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E3%81%94%E6%8F%90%E6%A1%88%E3%82%92%E3%81%84%E3%81%9F%E3%81%A0%E3%81%8D%E3%80%81%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%82%A6%E3%82%A7%E3%82%A4%E3%83%86%E3%82%A3%E3%83%B3%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2175566%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20RT595%20FreeRTOS%20DMIC%20recording%3A%20FIFO%2FDMA%20buffer%20only%20first%20sample%20non-zero%20(bare-metal%20works%20fine%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2175566%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%0A%3CP%3E%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%AF%20FreeRTOS%20%E3%81%AB%E8%B5%B7%E5%9B%A0%E3%81%99%E3%82%8B%E3%82%82%E3%81%AE%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E7%A7%81%E3%81%AE%E5%81%B4%E3%81%AE%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%20%E3%83%90%E3%82%B0%E3%81%AE%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%83%99%E3%82%A2%E3%83%A1%E3%82%BF%E3%83%AB%E3%81%BE%E3%81%9F%E3%81%AF%20RTOS%20%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E6%A9%9F%E8%83%BD%E3%81%8C%20100%25%20%E5%90%8C%E3%81%98%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E5%86%8D%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E