cancel
Showing results for 
Search instead for 
Did you mean: 

OPUS Codec library for STM32 MCU

MHoop.1
Senior

I am trying to develop an OPUS Codec library for an STM32H723 Nucleo board. But I am running into build issues related to the specific STM32 target and/or intrinsics available.

Has anyone successfully done this (created an Opus.lib)? If so, can you share some tips on how to get things properly configured for the H7??

I started by using CubeIDE to generate an empty library project with the STM32H723 as the target. I then imported all of the relevant source code from the Opus Profiling Tool application (which is excellent by the way!). But getting my new project to build has been a struggle. I have manually linked all of the (apparently) necessary folders, but continue to struggle with build errors.

The latest hurdle is with an error dealing with inline code that is not "inlining" properly. It seems to imply that there is a "target specific option mismatch" but doesn't elaborate. This all seems to revolve around the "neon" version of the intrinsic fft code.

0693W00000aJst2QAC.png 

FYI, Opus has a LOT of different target and OS variations (embedded and PC/Mac). You have to weed through and eliminate many of these extraneous options to arrive at a buildable project for an embedded processor. This is the crux of the issue here....figuring out what to keep and what to "Exclude from build". Sometimes excluding the wrong code can cause all kinds of build problems.

Anyway, if anyone has successfully built an Opus library for an STM32 project, I would very much like to hear about how you went about doing so.

Thanks,

MikeH

4 REPLIES 4
LR.2
Associate III

Hi,

Did you find a way to resolve this issue?

Cavitcem
Associate II

Hi MikeH,

I'm having the same problem. Did you find a solution?

Thanks & Regards

Fr10
Associate II

Hi friend!

 

Did you solve this problem? I have same issue here.

 

Best Regards.

AFraz.1
Associate II

Try enabling compiler flag OPUS_DISABLE_INTRINSICS

 

Looking at https://developer.arm.com/Architectures/Neon, seems that there is architecture incompatibilities where opus is providing arm neon architecture extension for the A-profile and R-profile processors whereas STM32H723 Nucleo is based on the M-profile processor.
 
Someone correct me if wrong.