cancel
Showing results for 
Search instead for 
Did you mean: 

Loop inside LL_ATON_RT_RunEpochBlock()

rori_newbie
Visitor

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:

  1. Has anyone else experienced this specific issue where LL_ATON_RT_RunEpochBlock() doesn't return WFE?

  2. 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.

  3. 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

 

 

 

0 REPLIES 0