2024-12-03 01:30 AM - edited 2024-12-03 02:49 AM
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:
Observations:
Questions:
Your assistance and guidance on this matter would be greatly appreciated.
Thank you in advance!
2024-12-03 02:51 AM - edited 2024-12-03 02:52 AM
Hello @qqzlqqzlqqzl ,
NanoEdgeAI Studio dev team has remarked that a bug of the ARMCC toolchains (V5 & V6) impact the execution of most NanoEdgeAI libraries, due to a wrong management of some specific calculations in FPU.
I insist on the fact that the bug is on ARMCC toolchain side, not in NanoEdgeAI libraries. Other libraries than NanoEdge are probably affected.
We have already contacted ARM support several months ago and wait for a new toolchain release fixing this issue.
In the meantime, we see 2 solutions:
Of course we understand that both solutions may affect your developments and execution performance.
Independently of this bug, we also suggest to avoid using ARMCC V5 toolchain, NanoEdgeAI libraries are not fully compatible with this version in terms of floating-point calculations.
Best regards,
Julian
2024-12-03 06:58 PM
Hello Julian,
Thank you very much for your detailed explanation. I appreciate your support on this matter.
In NanoEdge AI Studio 4.5.X, this issue did not occur. Could you please provide the last version of 4.5.X for me to reinstall? I updated to 4.6.0 because it seemed necessary to continue using NanoEdge due to the update requirements of 4.5.X.
Thank you again for your assistance!