cancel
Showing results for 
Search instead for 
Did you mean: 

NanoEdge AI integration

mpeton
Associate II

Hi,

I am a research intern working on edge AI for anomaly detection.

I am trying to integrate my anomaly detection NEAI model with a Network Management Card project which is in C++(cpp) running on STM32MP1.

I would like to know the possibility of integration NEAI anomaly detection static library with a C++ project running on ST MCU.

 

 

Thanks in advance!

1 ACCEPTED SOLUTION

Accepted Solutions
_sam_
ST Employee

Hi,

There are no restrictions on using the NEAI static library in a C++ project.

Sam

View solution in original post

7 REPLIES 7
_sam_
ST Employee

Hi,

There are no restrictions on using the NEAI static library in a C++ project.

Sam

Thank you Sam for the solution.

Do I need to take any precautions for using neai static library and its functions while integrating in a C++ project or I do it as I would to integrate with a C project.

 

Mansi

_sam_
ST Employee

Hi Mansi,

I don't see any specific precautions to take when integrating the NEAI library into a C++ project.

Just make sure to follow the Studio's documentation:

NanoEdge AI Studio 

Hi Sam,

After integrating neai lib with my C++ project, I am getting the below incompatible error when I build my project locally on my Ubuntu VM.

Due to the error I skipped the local build and went ahead to build my neai integrated Yocto based project on STM32MP1 target with Linux .

mpeton_0-1723628728902.png

I need some help to understand the cause of the incompatibility build error on my VM and confirm if neai library can run on my STM32MP1 target with Yocto based C++ firmware and Linux.

Thanks in advance!

_sam_
ST Employee

Hello Mansi,

The incompatibility issue could have multiple causes.
Can you please check if the float ABI settings are matching ?

And activate the verbose mode in Yocto, and provide me with the linker log files ?

Thanks,
Sam

Hi Sam,

Thank you for the prompt response. 


I am attaching the screenshot of error linker logs for Cortex A7 (STM32MP1) target and warning related to floatABI and architecture.

While exporting the neai library I have selected hard-float ABI and checked fshort nums which gives below output.

  • error - "conflicting architecture profiles M/A " and
  • warning " (NanoEdgeAI.o) uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail"

mpeton_0-1723636744767.png


Thanks,

Mansi

Hi Sam,

Adding to the above message, as my target is an STM32MP1 (Cortex A7 + Cortex M4)  and my NEAI project was created for cortex - M4 as STM32MP1 target was not available but I intend to deploy it on Cortex A7 because -

  • AI model inputs are available on Cortex A7 (for my target) so running AI model on Cortex M4 requires inter processor communication between CA7 and CM4 via RPMsgs and OpenAMP which is complicated.

I could see a solution to my problem could be to create NEAI project for Cortex A7 as a target but unfortunately  it seems that NanoEdge AI doesn't have support for Cortex A7 in target selection.

Can you please advise the way around for my case?

mpeton_0-1723645659801.png