diff --git a/ci-matrix-config.yml b/ci-matrix-config.yml index 553fdc4d..3e31969c 100644 --- a/ci-matrix-config.yml +++ b/ci-matrix-config.yml @@ -37,41 +37,41 @@ fqbn: - infineon:xmc:kit_xmc_2go_xmc1100_v1 sketch: -# - libraries/LED -# - libraries/RTC/examples/SimpleRTC + - libraries/LED + - libraries/RTC/examples/SimpleRTC - libraries/SPI - libraries/Wire -# - libraries/DeviceControlXMC/examples/DieTemperatureMeasurement/DieTemperatureMeasurement.ino -# - libraries/DeviceControlXMC/examples/HeapMemoryMeasurement/HeapMemoryMeasurement.ino -# - libraries/DeviceControlXMC/examples/StackMemoryMeasurement/StackMemoryMeasurement.ino + - libraries/DeviceControlXMC/examples/DieTemperatureMeasurement/DieTemperatureMeasurement.ino + - libraries/DeviceControlXMC/examples/HeapMemoryMeasurement/HeapMemoryMeasurement.ino + - libraries/DeviceControlXMC/examples/StackMemoryMeasurement/StackMemoryMeasurement.ino -# include: -# - fqbn: infineon:xmc:kit_xmc11_boot_001 -# sketch: -# - libraries/I2S -# - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino -# - fqbn: infineon:xmc:kit_xmc_2go_xmc1100_v1 -# sketch: -# - libraries/I2S -# - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino -# - fqbn: infineon:xmc:kit_xmc13_boot_001 -# sketch: -# - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino -# - fqbn: infineon:xmc:kit_xmc14_2go -# sketch: -# - libraries/I2S -# - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino -# - libraries/CAN -# - fqbn: infineon:xmc:kit_xmc1400_arduino -# sketch: -# - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino -# - fqbn: infineon:xmc:kit_xmc47_relax -# sketch: -# - libraries/I2S -# - libraries/DeviceControlXMC/examples/SleepModeXMC4700/SleepModeXMC4700.ino -# - libraries/DMA -# - libraries/RTC/examples/AlarmRTC/AlarmRTC.ino -# - libraries/CAN +include: + - fqbn: infineon:xmc:kit_xmc11_boot_001 + sketch: + - libraries/I2S + - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino + - fqbn: infineon:xmc:kit_xmc_2go_xmc1100_v1 + sketch: + - libraries/I2S + - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino + - fqbn: infineon:xmc:kit_xmc13_boot_001 + sketch: + - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino + - fqbn: infineon:xmc:kit_xmc14_2go + sketch: + - libraries/I2S + - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino + - libraries/CAN + - fqbn: infineon:xmc:kit_xmc1400_arduino + sketch: + - libraries/DeviceControlXMC/examples/SleepModeXMC1100/SleepModeXMC1100.ino + - fqbn: infineon:xmc:kit_xmc47_relax + sketch: + - libraries/I2S + - libraries/DeviceControlXMC/examples/SleepModeXMC4700/SleepModeXMC4700.ino + - libraries/DMA + - libraries/RTC/examples/AlarmRTC/AlarmRTC.ino + - libraries/CAN exclude: - fqbn: infineon:xmc:kit_xmc11_boot_001 diff --git a/libraries/DMA/src/DMA.cpp b/libraries/DMA/src/DMA.cpp index c7602c12..4db1e8b3 100644 --- a/libraries/DMA/src/DMA.cpp +++ b/libraries/DMA/src/DMA.cpp @@ -35,7 +35,7 @@ #include #include "DMA.h" -static interrupt_cb_t event_handler = NULL; +static voidFuncPtr event_handler = NULL; event_t event; void DMA::beginDMA(XMC_DMA_t *const dma) { @@ -217,7 +217,7 @@ void DMA::configDMA_P2P(XMC_DMA_t *const dma, void DMA::attachDMAInterrupt(XMC_DMA_t *const dma, uint8_t channel, - interrupt_cb_t _event_handler, + voidFuncPtr _event_handler, event_t _event) { event = _event; XMC_DMA_CH_EnableEvent(dma, channel, event); diff --git a/libraries/DMA/src/DMA.h b/libraries/DMA/src/DMA.h index 3eb31e8e..c57d9312 100644 --- a/libraries/DMA/src/DMA.h +++ b/libraries/DMA/src/DMA.h @@ -156,7 +156,7 @@ class DMA { // Interrupt configuration void attachDMAInterrupt(XMC_DMA_t *const dma, uint8_t channel, - interrupt_cb_t _event_handler, + voidFuncPtr _event_handler, event_t event); void detachDMAInterrupt(XMC_DMA_t *const dma, uint8_t channel, XMC_DMA_CH_EVENT_t event); diff --git a/variants/XMC1100/config/KIT_XMC11_BOOT_001/pins_arduino.h b/variants/XMC1100/config/KIT_XMC11_BOOT_001/pins_arduino.h index 91c9cd07..0d113b26 100644 --- a/variants/XMC1100/config/KIT_XMC11_BOOT_001/pins_arduino.h +++ b/variants/XMC1100/config/KIT_XMC11_BOOT_001/pins_arduino.h @@ -299,26 +299,24 @@ XMC_I2C_t XMC_I2C_0 = {.channel = XMC_I2C0_CH0, .protocol_irq_num = (IRQn_Type)USIC0_5_IRQn, .protocol_irq_service_request = 5}; - // // XMC_I2S instance - // XMC_I2S_t i2s_config = {.input_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE, - // .input_hysteresis = - // XMC_GPIO_INPUT_HYSTERESIS_STANDARD, .output_level = - // XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .sclk_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7, - // .input_hysteresis = - // XMC_GPIO_INPUT_HYSTERESIS_STANDARD, .output_level = - // XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .wa_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7, - // .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, - // .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .protocol_irq_num = (IRQn_Type)USIC0_2_IRQn, - // .protocol_irq_service_request = 2}; +// XMC_I2S instance +XMC_I2S_t i2s_config = {.input_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .sclk_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .wa_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .protocol_irq_num = (IRQn_Type)USIC0_2_IRQn, + .protocol_irq_service_request = 2}; // Serial Interrupt and event handling #ifdef __cplusplus diff --git a/variants/XMC1100/config/KIT_XMC_2GO_XMC1100_V1/pins_arduino.h b/variants/XMC1100/config/KIT_XMC_2GO_XMC1100_V1/pins_arduino.h index a4e7913c..4051f1ba 100644 --- a/variants/XMC1100/config/KIT_XMC_2GO_XMC1100_V1/pins_arduino.h +++ b/variants/XMC1100/config/KIT_XMC_2GO_XMC1100_V1/pins_arduino.h @@ -269,26 +269,24 @@ XMC_I2C_t XMC_I2C_1 = {.channel = XMC_I2C0_CH0, .protocol_irq_num = (IRQn_Type)USIC0_3_IRQn, .protocol_irq_service_request = 3}; - // // XMC_I2S instance - // XMC_I2S_t i2s_config = {.input_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE, - // .input_hysteresis = - // XMC_GPIO_INPUT_HYSTERESIS_STANDARD, .output_level = - // XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .sclk_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7, - // .input_hysteresis = - // XMC_GPIO_INPUT_HYSTERESIS_STANDARD, .output_level = - // XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .wa_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7, - // .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, - // .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .protocol_irq_num = (IRQn_Type)USIC0_2_IRQn, - // .protocol_irq_service_request = 2}; +// XMC_I2S instance +XMC_I2S_t i2s_config = {.input_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .sclk_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .wa_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .protocol_irq_num = (IRQn_Type)USIC0_2_IRQn, + .protocol_irq_service_request = 2}; // Serial Interrupt and event handling #ifdef __cplusplus diff --git a/variants/XMC1400/config/KIT_XMC14_2GO/pins_arduino.h b/variants/XMC1400/config/KIT_XMC14_2GO/pins_arduino.h index 03410783..a82a456d 100644 --- a/variants/XMC1400/config/KIT_XMC14_2GO/pins_arduino.h +++ b/variants/XMC1400/config/KIT_XMC14_2GO/pins_arduino.h @@ -322,26 +322,24 @@ XMC_I2C_t XMC_I2C_0 = {.channel = XMC_I2C0_CH1, .protocol_irq_num = (IRQn_Type)USIC0_5_IRQn, .protocol_irq_service_request = 5}; - // XMC_I2S_t i2s_config = {.input_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE, - // .input_hysteresis = - // XMC_GPIO_INPUT_HYSTERESIS_STANDARD, .output_level = - // XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .sclk_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT8, - // .input_hysteresis = - // XMC_GPIO_INPUT_HYSTERESIS_STANDARD, .output_level = - // XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .wa_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT8, - // .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, - // .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH - - // }, - // .protocol_irq_num = (IRQn_Type)USIC1_2_IRQn, - // .protocol_irq_service_request = 2, - // .protocol_irq_source = XMC_SCU_IRQCTRL_USIC1_SR2_IRQ11}; +XMC_I2S_t i2s_config = {.input_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .sclk_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT8, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .wa_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT8, + .input_hysteresis = XMC_GPIO_INPUT_HYSTERESIS_STANDARD, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH + + }, + .protocol_irq_num = (IRQn_Type)USIC1_2_IRQn, + .protocol_irq_service_request = 2, + .protocol_irq_source = XMC_SCU_IRQCTRL_USIC1_SR2_IRQ11}; // XMC CAN instance #ifdef CAN_xmc diff --git a/variants/XMC4700/config/KIT_XMC47_RELAX/pins_arduino.h b/variants/XMC4700/config/KIT_XMC47_RELAX/pins_arduino.h index 216c8f39..b5d4a134 100644 --- a/variants/XMC4700/config/KIT_XMC47_RELAX/pins_arduino.h +++ b/variants/XMC4700/config/KIT_XMC47_RELAX/pins_arduino.h @@ -575,30 +575,30 @@ XMC_I2C_t XMC_I2C_1 = {.channel = XMC_I2C1_CH0, .protocol_irq_num = (IRQn_Type)94, .protocol_irq_service_request = 4}; - // // XMC_I2S instance - // XMC_I2S_t i2s_config = {.input_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE, - // .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH}, - // .sclk_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT1, - // .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH}, - // .wa_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT1, - // .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH}, - // .protocol_irq_num = (IRQn_Type)USIC2_2_IRQn, - // .protocol_irq_service_request = 2}; - - // // XMC CAN instance - // #ifdef CAN_xmc - // XMC_ARD_CAN_t XMC_CAN_0 = {.can_node = CAN_NODE1, - // .can_node_num = XMC_NODE_NUM_1, - // .can_clock = XMC_CAN_CANCLKSRC_FPERI, - // .can_frequency = (uint32_t)144000000, - // .rx = {.port = (XMC_GPIO_PORT_t *)PORT1_BASE, .pin = (uint8_t)13}, - // .rx_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE}, - // .tx = {.port = (XMC_GPIO_PORT_t *)PORT1_BASE, .pin = (uint8_t)12}, - // .tx_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2}, - // .node_input = CAN_NODE1_RXD_P1_13, - // .irq_num = CAN0_7_IRQn, - // .irq_service_request = 7u}; - // #endif +// XMC_I2S instance +XMC_I2S_t i2s_config = {.input_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH}, + .sclk_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT1, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH}, + .wa_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT1, + .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH}, + .protocol_irq_num = (IRQn_Type)USIC2_2_IRQn, + .protocol_irq_service_request = 2}; + + // XMC CAN instance + #ifdef CAN_xmc +XMC_ARD_CAN_t XMC_CAN_0 = {.can_node = CAN_NODE1, + .can_node_num = XMC_NODE_NUM_1, + .can_clock = XMC_CAN_CANCLKSRC_FPERI, + .can_frequency = (uint32_t)144000000, + .rx = {.port = (XMC_GPIO_PORT_t *)PORT1_BASE, .pin = (uint8_t)13}, + .rx_config = {.mode = XMC_GPIO_MODE_INPUT_TRISTATE}, + .tx = {.port = (XMC_GPIO_PORT_t *)PORT1_BASE, .pin = (uint8_t)12}, + .tx_config = {.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2}, + .node_input = CAN_NODE1_RXD_P1_13, + .irq_num = CAN0_7_IRQn, + .irq_service_request = 7u}; + #endif // Serial Interrupt and event handling #ifdef __cplusplus