2026-01-24 4:33 PM
Hi!
I'm new with STM32CubeIDE and STM32N657X0-Q. I'm working with them because of my bachelor's thesis. My model size es 73KB but 432KB because of activations.
The input of my ML is data generated with CMSIS-DSP but I have issues in LL_ATON_RT_RunEpochBlock() line and, I can't see the output.
I've followed these guidelines:
And I have the following code:
LL_ATON_RT_Init_Network(&NN_Instance_Default); // Initialize passed network instance object
do {
/* Execute first/next step */
ll_aton_rt_ret = LL_ATON_RT_RunEpochBlock(&NN_Instance_Default);
/* Wait for next event */
if (ll_aton_rt_ret == LL_ATON_RT_WFE) {
timeout++;
if (timeout > 1000000)
{
printf("STUCK IN WFE\n\r");
break;
}
//LL_ATON_OSAL_WFE();
}
} while (ll_aton_rt_ret != LL_ATON_RT_DONE);The strange part:
The timeout counter never increments because ll_aton_rt_ret == LL_ATON_RT_WFE is never true. It seems like the NPU isn't generating the expected interrupt or the runtime isn't receiving it.
My questions:
Has anyone else experienced this specific issue where LL_ATON_RT_RunEpochBlock() doesn't return WFE?
Could this be related to CACHEAXI initialization? I've seen mentions of this in other threads. But I don't know how to correct this issue, since I don't have enough experience.
Are there specific steps I'm missing in the NPU initialization sequence?
Any guidance would be greatly appreciated. I feel like I'm close but stuck on this final hurdle!
Thanks in advance for your help.
Tags: stm32n6, nucleo-n657x0q, x-cube-ai, npu, ll_aton, inference, wfe, threadx