With these changes SPI started to work.
extern void can2HighLevelInterrupt(void);
extern void mibspi3HighInterruptLevel(void);
extern void mibspi3LowLevelInterrupt(void);
+extern void mibspi5HighLevelInterrupt(void);
+extern void mibspi5LowLevelInterrupt(void);
extern void can3HighLevelInterrupt(void);
extern void spi4HighLevelInterrupt(void);
extern void adc2Group1Interrupt(void);
spi_tms570_isr(3 - 1, flags);
}
+
+#pragma INTERRUPT(mibspi5HighLevelInterrupt, IRQ)
+void mibspi5HighLevelInterrupt(void)
+{
+ uint32_t flags = mibspi_compat_REG5->FLG; // & (~mibspiREG5->LVL & 0x035F);
+
+ spi_tms570_isr(5 - 1, flags);
+}
+
+#pragma INTERRUPT(mibspi5LowLevelInterrupt, IRQ)
+void mibspi5LowLevelInterrupt(void)
+{
+ uint32_t flags = mibspi_compat_REG5->FLG; // & (~mibspiREG5->LVL & 0x035F);
+
+ spi_tms570_isr(5 - 1, flags);
+}
rpp_initialized = TRUE;
#ifndef FREERTOS_POSIX
+
dmmInit();
gioInit();
hetInit();
rpp_eth_init();
#endif
rpp_gio_init(RPP_GIO_PORT_ALL);
+#ifdef TARGET_HAS_SPI
+ rpp_spi_init();
+#endif
_enable_IRQ();
+
#endif
return SUCCESS;
&phantomInterrupt,
&phantomInterrupt, // 10
&phantomInterrupt,
- &phantomInterrupt,
+ &mibspi1HighLevelInterrupt,
/*#if serialLine == scilinREG
&sciHighLevelinterrupt,
#else
&phantomInterrupt,
&adc1Group1Interrupt, // 15
&phantomInterrupt,
- &phantomInterrupt,
+ &spi2HighLevelInterrupt,
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt, // 20
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt, // 25
+ &mibspi1LowLevelInterrupt,
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt,
- &phantomInterrupt,
- &phantomInterrupt, // 30
+ &spi2LowLevelInterrupt, // 30
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt, // 35
&phantomInterrupt,
- &phantomInterrupt,
- &phantomInterrupt,
+ &mibspi3HighInterruptLevel,
+ &mibspi3LowLevelInterrupt,
&phantomInterrupt,
&phantomInterrupt, // 40
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt,
- &phantomInterrupt,
+ &spi4HighLevelInterrupt,
&phantomInterrupt, // 50
&adc2Group1Interrupt,
&phantomInterrupt,
- &phantomInterrupt,
- &phantomInterrupt,
+ &mibspi5HighLevelInterrupt,
+ &spi4LowLevelInterrupt,
&phantomInterrupt, // 55
- &phantomInterrupt,
+ &mibspi5LowLevelInterrupt,
&phantomInterrupt,
&phantomInterrupt,
&phantomInterrupt,
| (0U << 18U)
| (1U << 19U)
| (0U << 20U)
- | (0U << 21U)
+ | (1U << 21U)
| (1U << 22U)
| (0U << 23U)
- | (0U << 24U)
+ | (1U << 24U)
| (0U << 25U)
| (0U << 26U)
| (0U << 27U)
{
mibspi->CLRINTENARDY = 1 << group;
}
-
-
-
-/** @fn void mibspi5HighLevelInterrupt(void)
-* @brief Level 0 Interrupt for MIBSPI5
-*/
-#pragma INTERRUPT(mibspi5HighLevelInterrupt, IRQ)
-
-void mibspi5HighLevelInterrupt(void)
-{
- uint32_t vec = mibspiREG5->INTVECT0;
-
- if (vec > 0x21U)
- {
- uint32_t flags = mibspiREG5->FLG & (~mibspiREG5->LVL & 0x035F);
- mibspiREG5->FLG = flags;
- mibspiNotification(mibspiREG5, flags);
- }
- else
- {
- mibspiGroupNotification(mibspiREG5, ((vec & 0x3FU) >> 1U) - 1U);
- }
-}
-
-
-/** @fn void mibspi5LowLevelInterrupt(void)
-* @brief Level 1 Interrupt for MIBSPI5
-*/
-#pragma INTERRUPT(mibspi5LowLevelInterrupt, IRQ)
-
-void mibspi5LowLevelInterrupt(void)
-{
- uint32_t vec = mibspiREG5->INTVECT1;
-
- if (vec > 0x21U)
- {
- uint32_t flags = mibspiREG5->FLG & (mibspiREG5->LVL & 0x035F);
- mibspiREG5->FLG = flags;
- mibspiNotification(mibspiREG5, flags);
- }
- else
- {
- mibspiGroupNotification(mibspiREG5, ((vec & 0x3FU) >> 1U) - 1U);
- }
-}