NEAI_COMPILER_ERROR with NanoEdge AI Studio 4.6.0 on STM32H7 Deployment
I am encountering an issue when deploying a classification model generated with NanoEdge AI Studio 4.6.0 to my STM32H7 development board. Below are the details:
Issue: When calling neai_classification_init(knowledge), the function returns NEAI_COMPILER_ERROR. Debugging further, I found the following comment in the generated NanoEdgeAI.h file:
enum neai_state {
NEAI_OK = 0,
NEAI_INIT_FCT_NOT_CALLED = 123,
NEAI_BOARD_ERROR,
NEAI_KNOWLEDGE_BUFFER_ERROR,
NEAI_NOT_ENOUGH_CALL_TO_LEARNING, //This is a fail-safe to prevent users from learning one or even no signals.
NEAI_MINIMAL_RECOMMENDED_LEARNING_DONE,
NEAI_UNKNOWN_ERROR,
/* Error due to a potential compatibility issue affecting user of the ARMCC toolchain.
* Contact our support for further details or consider using a different toolchain */
NEAI_COMPILER_ERROR
};
Setup:
- Toolchain: Keil MDK 5.37 with ARMCC (AC5) compiler.
- Initialization Code: Generated with STM32CubeMX.
- NanoEdge Versions:
- Models generated with NanoEdge AI Studio 4.5.x work perfectly on the same setup and provide correct class IDs.
- Models generated with NanoEdge AI Studio 4.6.0 exhibit the error.
Observations:
- The issue is specific to the 4.6.0 version of NanoEdge AI Studio. The same hardware and project setup works fine with files generated by 4.5.x.
- The classification output does not change when using the 4.6.0 generated files, which suggests the inference process does not work correctly.
Questions:
- Is there a known compatibility issue between NanoEdge AI Studio 4.6.0 and ARMCC (AC5)?
- Are there any specific toolchain settings or alternative methods to resolve this issue without switching compilers (e.g., to ARMCLANG or GCC)?
- Should I use a particular configuration in NanoEdge AI Studio 4.6.0 to ensure compatibility with my current setup?
Your assistance and guidance on this matter would be greatly appreciated.
Thank you in advance!
