Page 1 of 1

EOS S3 Interrupt Numbers

Posted: Thu Jul 02, 2020 6:45 am
by btashton
I have searched through the datasheet and the reference manual and I see lots of documentation on the NVIC and the interrupt configuration for the peripherals, but no listing of the interrupt numbers for them. I see them defined in the HAL on antmicro, but I do not see where these came from. Additionally there is a inrt_ctrl peripheral that is undocumented but seems to gate the peripheral interrupts to the M4 or AP and it is critical to use interrupts with these device.

Re: EOS S3 Interrupt Numbers

Posted: Wed Jul 08, 2020 1:07 pm
by gmartin
Here is a snippet of code from the HAL that specified the Interrupt numbers

Code: Select all

typedef enum
{
/******  Cortex-M4 Processor Exceptions Numbers ****************************************************************/
  NonMaskableInt_IRQn         = -14,    /*!< 2 Non Maskable Interrupt                                          */
  MemoryManagement_IRQn       = -12,    /*!< 4 Cortex-M4 Memory Management Interrupt                           */
  BusFault_IRQn               = -11,    /*!< 5 Cortex-M4 Bus Fault Interrupt                                   */
  UsageFault_IRQn             = -10,    /*!< 6 Cortex-M4 Usage Fault Interrupt                                 */
  SVCall_IRQn                 = -5,     /*!< 11 Cortex-M4 SV Call Interrupt                                    */
  DebugMonitor_IRQn           = -4,     /*!< 12 Cortex-M4 Debug Monitor Interrupt                              */
  PendSV_IRQn                 = -2,     /*!< 14 Cortex-M4 Pend SV Interrupt                                    */
  SysTick_IRQn                = -1,     /*!< 15 Cortex-M4 System Tick Interrupt                                */
/******  Specific Interrupt Numbers **********************************************************************/
  SwInt2_IRQn                    = 0,
  SwInt1_IRQn                            = 1,
  Reserved1_IRQn                     = 2,
  Ffe0Msg_IRQn                = 3,
  FbMsg_IRQn                        = 4,
  Gpio_IRQn                   = 5,
  SramSleep_IRQn              = 6,
  Uart_IRQn                   = 7,
  Timer_IRQn                  = 8,
  CpuWdtInt_IRQn              = 9,
  CpuWdtRst_IRQn              = 10,
  BusTimeout_IRQn             = 11,
  Fpu_IRQn                    = 12,
  Pkfb_IRQn                   = 13,
  Reserved_I2s_IRQn           = 14,
  Reserved_Audio_IRQn         = 15,
  SpiMs_IRQn                  = 16,
  CfgDma_IRQn                 = 17,
  PmuTimer_IRQn               = 18,
  AdcDone_IRQn                = 19,
  RtcAlarm_IRQn               = 20,
  ResetInt_IRQn               = 21,
  Ffe0_IRQn                   = 22,
  FfeWdt_IRQn                 = 23,
  ApBoot_IRQn                 = 24,
  Ldo30_pg_IRQn               = 25,
  Ldo50_pg_IRQn               = 26,
  Sram_to_IRQn                = 27,
  Lpsd_IRQn                                                                   = 28,
  Dmic_IRQn                                                                  = 29,
  Reserved2_IRQn                                          = 30,
  Sdma_Done1_IRQn                                     = 31,
  Sdma_Done2_IRQn                                     = 32,
  Sdma_Done3_IRQn                                     = 33,
  Sdma_Done4_IRQn                                     = 34,
  Sdma_Done5_IRQn                                     = 35,
  Sdma_Done6_IRQn                                     = 36,
  Sdma_Done7_IRQn                                     = 37,
  Sdma_Done8_IRQn                                     = 38,
  Sdma_Done9_IRQn                                     = 39,
  Sdma_Done10_IRQn                    = 40,
  Sdma_Done11_IRQn                    = 41,
  Ap_Pdm_Clock_On_IRQn                          = 42,
  Ap_Pdm_Clock_Off_IRQn       = 43,
  Dmac0_Block_Done_IRQn          = 44,
  Dmac0_Buffer_Done_IRQn      = 45,
  Dmac1_Block_Done_IRQn       = 46,
  Dmac1_Buffer_Done_IRQn      = 47,
  Sdma_Done0_IRQn                                     = 48,
  Sdma_Err_IRQn                                 = 49,
  I2SSlv_M4_IRQn                                = 50,
  Lpsd_Voice_Off_IRQn                  = 51,
  Dmic_Voice_Off_IRQn                 = 52

} IRQn_Type;

Re: EOS S3 Interrupt Numbers

Posted: Wed Jul 08, 2020 4:31 pm
by btashton
Thanks for posted that. I did see that code in the SDK, but I was wondering if it was in documentation anywhere. There is another part of this which is the the INTR_CTRL (0x40004800) this seems to be the top level interrupt controller that routes interrupts between the AP and the M4 from looking at the SDK, but once again I had to go digging into the the HAL for the registers. One bit that is especially not clear is how to clear interrupts with this. With the M4 normally the NVIC will clear the handled interrupts, but with this it appears from implementing the UART driver that I need to clear the detect bit in the INTR_CTRL for the UART. Your SDK only does this when setting it up, but I would keep getting the interrupt called even when UART_MIS register would return 0, clearing the interrupt det bit in this top level controller provided the expected behaviour. Is there an additional datasheet that goes into this, or is this only in the HAL?

Re: EOS S3 Interrupt Numbers

Posted: Wed Jul 08, 2020 5:22 pm
by gmartin
Looking to get the information you requested. We will be updating our TRM as appropriate, but will reply separately with the information you requested.

Re: EOS S3 Interrupt Numbers

Posted: Wed Jul 08, 2020 11:58 pm
by gmartin
A better description of the Interrupt structure is available at
https://www.quicklogic.com/products/soc ... ntroller/
This information will be incorporated into the Technical Reference Manual.

Re: EOS S3 Interrupt Numbers

Posted: Thu Jul 09, 2020 5:28 am
by btashton
Really appreciate it, this is the information I was looking for.

Re: EOS S3 Interrupt Numbers

Posted: Fri Apr 23, 2021 4:58 am
by tejar37
Well, I totally agree with you. this is something amazing. I highly admire. Love it. This is something amazing and extra ordinary.

Re: EOS S3 Interrupt Numbers

Posted: Tue Nov 02, 2021 11:05 am
by Tratc1956
Thanks @gmartin for the answers. I am looking forward to more answers about this one as I have the same problem.

atlanta mobile detailing

Re: EOS S3 Interrupt Numbers

Posted: Mon Jun 27, 2022 10:42 am
by tejar37
This guide provides users with functional descriptions, configuration options for the QuickLogic Thing Plus EOS S3. It also serves as a “Getting Started".