I've not been able to get the Audio Recorder in the demonstration software working. I'm using V1.2 of the software, as supplied with Cube V1.6.0.
- Compile Demo V1.2 in Cube V1.6.0 using Eclipse 4.6.2 / Ac6 SystemWorkbench.
- Program the board with the software. (The first time I did this I used the STM32 ST-LINK Utility with the MX25L512G_STM32F769I-DISCO external loader so as to program both the software and the quad SPI flash images data. Thereafter, I programmed the board directly from Eclipse by starting an OpenOCD debugging session).
- Insert a USB drive that is known to work with the Audio Player. (I've found that not all USB drives are compatible).
- Reboot the board.
- Click "Audio Recorder".
- Click the circular Red button.
When I do this, the red button goes blue and the software hangs (including the UI and the USB driver) until the board is rebooted.
I've tried debugging the recorder and found that:
- HAL_DFSDM_FilterRegularStart_DMA at line 1535 of stm32f7xx_hal_dfsdm.c is called twice; each time calling HAL_DMA_Start_IT().
- HAL_DMA_IRQHandler() at line 753 of stm32f7xx_hal_dma.c is called and completes with no errors.
- HAL_DFSDM_FilterRegConvHalfCpltCallback() at line 1101 of stm32769i_discovery_audio.c is called re the top-right filter.
- If HAL_DMA_Start_IT() at line 1579 of stm32f7xx_hal_dfsdm.c is commented out, and hence the DMA is not started, then the software does not hang.
- When the software hangs, clicking "Suspend" in the debugger causes execution to stop in Default_Handler of startup_stm32f769xx.s. According to the comment there, this means that an unexpected interrupt has occurred.
Ideas on any or all of the following would be most welcome:
- What might be wrong.
- How to proceed with debugging. In particular, if an unexpected interrupt has indeed occurred, how to find out more about it.
- How to report the problem to ST.