Hopefully will be able to get this such that only those objects that are used will be brought in by the system...main
| @@ -1,6 +1,6 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2017 PJRC.COM, LLC. | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| @@ -62,58 +62,6 @@ | |||
| #define UART_CLOCK 24000000 | |||
| #ifndef SERIAL1_TX_BUFFER_SIZE | |||
| #define SERIAL1_TX_BUFFER_SIZE 64 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL1_RX_BUFFER_SIZE | |||
| #define SERIAL1_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL2_TX_BUFFER_SIZE | |||
| #define SERIAL2_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL2_RX_BUFFER_SIZE | |||
| #define SERIAL2_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL3_TX_BUFFER_SIZE | |||
| #define SERIAL3_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL3_RX_BUFFER_SIZE | |||
| #define SERIAL3_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL4_TX_BUFFER_SIZE | |||
| #define SERIAL4_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL4_RX_BUFFER_SIZE | |||
| #define SERIAL4_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL5_TX_BUFFER_SIZE | |||
| #define SERIAL5_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL5_RX_BUFFER_SIZE | |||
| #define SERIAL5_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL6_TX_BUFFER_SIZE | |||
| #define SERIAL6_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL6_RX_BUFFER_SIZE | |||
| #define SERIAL6_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL7_TX_BUFFER_SIZE | |||
| #define SERIAL7_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL7_RX_BUFFER_SIZE | |||
| #define SERIAL7_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL8_TX_BUFFER_SIZE | |||
| #define SERIAL8_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL8_RX_BUFFER_SIZE | |||
| #define SERIAL8_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| #define CTRL_ENABLE (LPUART_CTRL_TE | LPUART_CTRL_RE | LPUART_CTRL_RIE | LPUART_CTRL_ILIE) | |||
| #define CTRL_TX_ACTIVE (CTRL_ENABLE | LPUART_CTRL_TIE) | |||
| @@ -535,210 +483,3 @@ void HardwareSerial::IRQHandler() | |||
| } | |||
| //digitalWrite(4, LOW); | |||
| } | |||
| void IRQHandler_Serial1() | |||
| { | |||
| Serial1.IRQHandler(); | |||
| } | |||
| void IRQHandler_Serial2() | |||
| { | |||
| Serial2.IRQHandler(); | |||
| } | |||
| void IRQHandler_Serial3() | |||
| { | |||
| Serial3.IRQHandler(); | |||
| } | |||
| void IRQHandler_Serial4() | |||
| { | |||
| Serial4.IRQHandler(); | |||
| } | |||
| void IRQHandler_Serial5() | |||
| { | |||
| Serial5.IRQHandler(); | |||
| } | |||
| void IRQHandler_Serial6() | |||
| { | |||
| Serial6.IRQHandler(); | |||
| } | |||
| void IRQHandler_Serial7() | |||
| { | |||
| Serial7.IRQHandler(); | |||
| } | |||
| void IRQHandler_Serial8() | |||
| { | |||
| Serial8.IRQHandler(); | |||
| } | |||
| // Serial1 | |||
| static BUFTYPE tx_buffer1[SERIAL1_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer1[SERIAL1_RX_BUFFER_SIZE]; | |||
| const HardwareSerial::hardware_t UART6_Hardware = { | |||
| IRQ_LPUART6, &IRQHandler_Serial1, | |||
| CCM_CCGR3, CCM_CCGR3_LPUART6(CCM_CCGR_ON), | |||
| 0, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_03, // pin 0 | |||
| 1, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_02, // pin 1 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART6_RX_SELECT_INPUT, | |||
| 2, // page 473 | |||
| 2, // page 472 | |||
| 0, // No CTS | |||
| 1, // page 861 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial1(&IMXRT_LPUART6, &UART6_Hardware, tx_buffer1, SERIAL1_TX_BUFFER_SIZE, | |||
| rx_buffer1, SERIAL1_RX_BUFFER_SIZE); | |||
| // Serial2 | |||
| static BUFTYPE tx_buffer2[SERIAL2_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer2[SERIAL2_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART4_Hardware = { | |||
| IRQ_LPUART4, &IRQHandler_Serial2, | |||
| CCM_CCGR1, CCM_CCGR1_LPUART4(CCM_CCGR_ON), | |||
| 6, //IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_01, // pin 6 | |||
| 7, // IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_00, // pin 7 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART4_RX_SELECT_INPUT, | |||
| 2, // page 521 | |||
| 2, // page 520 | |||
| 0, // No CTS | |||
| 2, // page 858 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial2(&IMXRT_LPUART4, &UART4_Hardware, tx_buffer2, SERIAL2_TX_BUFFER_SIZE, | |||
| rx_buffer2, SERIAL2_RX_BUFFER_SIZE); | |||
| // Serial3 | |||
| static BUFTYPE tx_buffer3[SERIAL3_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer3[SERIAL3_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART2_Hardware = { | |||
| IRQ_LPUART2, &IRQHandler_Serial3, | |||
| CCM_CCGR0, CCM_CCGR0_LPUART2(CCM_CCGR_ON), | |||
| 15, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_03, // pin 15 | |||
| 14, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_02, // pin 14 | |||
| 18, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_01, // 18 | |||
| IOMUXC_LPUART2_RX_SELECT_INPUT, | |||
| 2, // page 491 | |||
| 2, // page 490 | |||
| 2, // page 473 | |||
| 1, // Page 855 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial3(&IMXRT_LPUART2, &UART2_Hardware,tx_buffer3, SERIAL3_TX_BUFFER_SIZE, | |||
| rx_buffer3, SERIAL3_RX_BUFFER_SIZE); | |||
| // Serial4 | |||
| static BUFTYPE tx_buffer4[SERIAL4_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer4[SERIAL4_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART3_Hardware = { | |||
| IRQ_LPUART3, &IRQHandler_Serial4, | |||
| CCM_CCGR0, CCM_CCGR0_LPUART3(CCM_CCGR_ON), | |||
| 16, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_07, // pin 16 | |||
| 17, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_06, // pin 17 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART3_RX_SELECT_INPUT, | |||
| 2, // page 495 | |||
| 2, // page 494 | |||
| 0, // No CTS | |||
| 0, // Page 857 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial4(&IMXRT_LPUART3, &UART3_Hardware, tx_buffer4, SERIAL4_TX_BUFFER_SIZE, | |||
| rx_buffer4, SERIAL4_RX_BUFFER_SIZE); | |||
| // Serial5 | |||
| static BUFTYPE tx_buffer5[SERIAL5_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer5[SERIAL5_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART8_Hardware = { | |||
| IRQ_LPUART8, &IRQHandler_Serial5, | |||
| CCM_CCGR6, CCM_CCGR6_LPUART8(CCM_CCGR_ON), | |||
| 21, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_11, // pin 21 | |||
| 20, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_10, // pin 20 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART8_RX_SELECT_INPUT, | |||
| 2, // page 499 | |||
| 2, // page 498 | |||
| 0, // No CTS | |||
| 1, // Page 864-5 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial5(&IMXRT_LPUART8, &UART8_Hardware, tx_buffer5, SERIAL5_TX_BUFFER_SIZE, | |||
| rx_buffer5, SERIAL5_RX_BUFFER_SIZE); | |||
| // Serial6 | |||
| static BUFTYPE tx_buffer6[SERIAL6_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer6[SERIAL6_RX_BUFFER_SIZE]; | |||
| uint32_t IOMUXC_LPUART1_RX_SELECT_INPUT; // bugbug - does not exist so hack | |||
| static HardwareSerial::hardware_t UART1_Hardware = { | |||
| IRQ_LPUART1, &IRQHandler_Serial6, | |||
| CCM_CCGR5, CCM_CCGR5_LPUART1(CCM_CCGR_ON), | |||
| 25, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_13, // pin 25 | |||
| 24, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_12, // pin 24 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART1_RX_SELECT_INPUT, | |||
| 2, // page 486 | |||
| 2, // page 485 | |||
| 0, // No CTS | |||
| 0, // ??? Does not have one ??? | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial6(&IMXRT_LPUART1, &UART1_Hardware, tx_buffer6, SERIAL6_TX_BUFFER_SIZE, | |||
| rx_buffer6, SERIAL6_RX_BUFFER_SIZE); | |||
| // Serial7 | |||
| static BUFTYPE tx_buffer7[SERIAL7_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer7[SERIAL7_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART7_Hardware = { | |||
| IRQ_LPUART7, &IRQHandler_Serial7, | |||
| CCM_CCGR5, CCM_CCGR5_LPUART7(CCM_CCGR_ON), | |||
| 28, //IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_32, // pin 28 | |||
| 29, //IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_31, // pin 29 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART7_RX_SELECT_INPUT, | |||
| 2, // page 458 | |||
| 2, // page 457 | |||
| 0, // No CTS | |||
| 1, // Page 863 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial7(&IMXRT_LPUART7, &UART7_Hardware, tx_buffer7, SERIAL7_TX_BUFFER_SIZE, | |||
| rx_buffer7, SERIAL7_RX_BUFFER_SIZE); | |||
| // Serial8 | |||
| static BUFTYPE tx_buffer8[SERIAL8_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer8[SERIAL8_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART5_Hardware = { | |||
| IRQ_LPUART5, &IRQHandler_Serial8, | |||
| CCM_CCGR3, CCM_CCGR3_LPUART5(CCM_CCGR_ON), | |||
| 30, //IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_24, // pin 30 | |||
| 31, // IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_23, // pin 31 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART5_RX_SELECT_INPUT, | |||
| 2, // page 450 | |||
| 2, // page 449 | |||
| 0, // No CTS | |||
| 0, | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial8(&IMXRT_LPUART5, &UART5_Hardware, tx_buffer8, SERIAL8_TX_BUFFER_SIZE, | |||
| rx_buffer8, SERIAL8_RX_BUFFER_SIZE); | |||
| @@ -0,0 +1,68 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| * "Software"), to deal in the Software without restriction, including | |||
| * without limitation the rights to use, copy, modify, merge, publish, | |||
| * distribute, sublicense, and/or sell copies of the Software, and to | |||
| * permit persons to whom the Software is furnished to do so, subject to | |||
| * the following conditions: | |||
| * | |||
| * 1. The above copyright notice and this permission notice shall be | |||
| * included in all copies or substantial portions of the Software. | |||
| * | |||
| * 2. If the Software is incorporated into a build system that allows | |||
| * selection among a list of target devices, then similar target | |||
| * devices manufactured by PJRC.COM must be included in the list of | |||
| * target devices and selectable in the same manner. | |||
| * | |||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |||
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| * SOFTWARE. | |||
| */ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #ifndef SERIAL1_TX_BUFFER_SIZE | |||
| #define SERIAL1_TX_BUFFER_SIZE 64 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL1_RX_BUFFER_SIZE | |||
| #define SERIAL1_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| void IRQHandler_Serial1() | |||
| { | |||
| Serial1.IRQHandler(); | |||
| } | |||
| // Serial1 | |||
| static BUFTYPE tx_buffer1[SERIAL1_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer1[SERIAL1_RX_BUFFER_SIZE]; | |||
| const HardwareSerial::hardware_t UART6_Hardware = { | |||
| IRQ_LPUART6, &IRQHandler_Serial1, | |||
| CCM_CCGR3, CCM_CCGR3_LPUART6(CCM_CCGR_ON), | |||
| 0, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_03, // pin 0 | |||
| 1, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_02, // pin 1 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART6_RX_SELECT_INPUT, | |||
| 2, // page 473 | |||
| 2, // page 472 | |||
| 0, // No CTS | |||
| 1, // page 861 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial1(&IMXRT_LPUART6, &UART6_Hardware, tx_buffer1, SERIAL1_TX_BUFFER_SIZE, | |||
| rx_buffer1, SERIAL1_RX_BUFFER_SIZE); | |||
| void serialEvent1() __attribute__((weak)); | |||
| void serialEvent1() {} | |||
| @@ -0,0 +1,71 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| * "Software"), to deal in the Software without restriction, including | |||
| * without limitation the rights to use, copy, modify, merge, publish, | |||
| * distribute, sublicense, and/or sell copies of the Software, and to | |||
| * permit persons to whom the Software is furnished to do so, subject to | |||
| * the following conditions: | |||
| * | |||
| * 1. The above copyright notice and this permission notice shall be | |||
| * included in all copies or substantial portions of the Software. | |||
| * | |||
| * 2. If the Software is incorporated into a build system that allows | |||
| * selection among a list of target devices, then similar target | |||
| * devices manufactured by PJRC.COM must be included in the list of | |||
| * target devices and selectable in the same manner. | |||
| * | |||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |||
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| * SOFTWARE. | |||
| */ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #ifndef SERIAL2_TX_BUFFER_SIZE | |||
| #define SERIAL2_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL2_RX_BUFFER_SIZE | |||
| #define SERIAL2_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| void IRQHandler_Serial2() | |||
| { | |||
| Serial2.IRQHandler(); | |||
| } | |||
| // Serial2 | |||
| static BUFTYPE tx_buffer2[SERIAL2_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer2[SERIAL2_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART4_Hardware = { | |||
| IRQ_LPUART4, &IRQHandler_Serial2, | |||
| CCM_CCGR1, CCM_CCGR1_LPUART4(CCM_CCGR_ON), | |||
| 6, //IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_01, // pin 6 | |||
| 7, // IOMUXC_SW_MUX_CTL_PAD_GPIO_B1_00, // pin 7 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART4_RX_SELECT_INPUT, | |||
| 2, // page 521 | |||
| 2, // page 520 | |||
| 0, // No CTS | |||
| 2, // page 858 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial2(&IMXRT_LPUART4, &UART4_Hardware, tx_buffer2, SERIAL2_TX_BUFFER_SIZE, | |||
| rx_buffer2, SERIAL2_RX_BUFFER_SIZE); | |||
| void serialEvent2() __attribute__((weak)); | |||
| void serialEvent2() {} | |||
| @@ -0,0 +1,68 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| * "Software"), to deal in the Software without restriction, including | |||
| * without limitation the rights to use, copy, modify, merge, publish, | |||
| * distribute, sublicense, and/or sell copies of the Software, and to | |||
| * permit persons to whom the Software is furnished to do so, subject to | |||
| * the following conditions: | |||
| * | |||
| * 1. The above copyright notice and this permission notice shall be | |||
| * included in all copies or substantial portions of the Software. | |||
| * | |||
| * 2. If the Software is incorporated into a build system that allows | |||
| * selection among a list of target devices, then similar target | |||
| * devices manufactured by PJRC.COM must be included in the list of | |||
| * target devices and selectable in the same manner. | |||
| * | |||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |||
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| * SOFTWARE. | |||
| */ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #ifndef SERIAL3_TX_BUFFER_SIZE | |||
| #define SERIAL3_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL3_RX_BUFFER_SIZE | |||
| #define SERIAL3_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| void IRQHandler_Serial3() | |||
| { | |||
| Serial3.IRQHandler(); | |||
| } | |||
| // Serial3 | |||
| static BUFTYPE tx_buffer3[SERIAL3_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer3[SERIAL3_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART2_Hardware = { | |||
| IRQ_LPUART2, &IRQHandler_Serial3, | |||
| CCM_CCGR0, CCM_CCGR0_LPUART2(CCM_CCGR_ON), | |||
| 15, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_03, // pin 15 | |||
| 14, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_02, // pin 14 | |||
| 18, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_01, // 18 | |||
| IOMUXC_LPUART2_RX_SELECT_INPUT, | |||
| 2, // page 491 | |||
| 2, // page 490 | |||
| 2, // page 473 | |||
| 1, // Page 855 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial3(&IMXRT_LPUART2, &UART2_Hardware,tx_buffer3, SERIAL3_TX_BUFFER_SIZE, | |||
| rx_buffer3, SERIAL3_RX_BUFFER_SIZE); | |||
| void serialEvent3() __attribute__((weak)); | |||
| void serialEvent3() {} | |||
| @@ -0,0 +1,71 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| * "Software"), to deal in the Software without restriction, including | |||
| * without limitation the rights to use, copy, modify, merge, publish, | |||
| * distribute, sublicense, and/or sell copies of the Software, and to | |||
| * permit persons to whom the Software is furnished to do so, subject to | |||
| * the following conditions: | |||
| * | |||
| * 1. The above copyright notice and this permission notice shall be | |||
| * included in all copies or substantial portions of the Software. | |||
| * | |||
| * 2. If the Software is incorporated into a build system that allows | |||
| * selection among a list of target devices, then similar target | |||
| * devices manufactured by PJRC.COM must be included in the list of | |||
| * target devices and selectable in the same manner. | |||
| * | |||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |||
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| * SOFTWARE. | |||
| */ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #ifndef SERIAL4_TX_BUFFER_SIZE | |||
| #define SERIAL4_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL4_RX_BUFFER_SIZE | |||
| #define SERIAL4_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| void IRQHandler_Serial4() | |||
| { | |||
| Serial4.IRQHandler(); | |||
| } | |||
| // Serial4 | |||
| static BUFTYPE tx_buffer4[SERIAL4_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer4[SERIAL4_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART3_Hardware = { | |||
| IRQ_LPUART3, &IRQHandler_Serial4, | |||
| CCM_CCGR0, CCM_CCGR0_LPUART3(CCM_CCGR_ON), | |||
| 16, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_07, // pin 16 | |||
| 17, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_06, // pin 17 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART3_RX_SELECT_INPUT, | |||
| 2, // page 495 | |||
| 2, // page 494 | |||
| 0, // No CTS | |||
| 0, // Page 857 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial4(&IMXRT_LPUART3, &UART3_Hardware, tx_buffer4, SERIAL4_TX_BUFFER_SIZE, | |||
| rx_buffer4, SERIAL4_RX_BUFFER_SIZE); | |||
| void serialEvent4() __attribute__((weak)); | |||
| void serialEvent4() {} | |||
| @@ -0,0 +1,71 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| * "Software"), to deal in the Software without restriction, including | |||
| * without limitation the rights to use, copy, modify, merge, publish, | |||
| * distribute, sublicense, and/or sell copies of the Software, and to | |||
| * permit persons to whom the Software is furnished to do so, subject to | |||
| * the following conditions: | |||
| * | |||
| * 1. The above copyright notice and this permission notice shall be | |||
| * included in all copies or substantial portions of the Software. | |||
| * | |||
| * 2. If the Software is incorporated into a build system that allows | |||
| * selection among a list of target devices, then similar target | |||
| * devices manufactured by PJRC.COM must be included in the list of | |||
| * target devices and selectable in the same manner. | |||
| * | |||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |||
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| * SOFTWARE. | |||
| */ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #ifndef SERIAL5_TX_BUFFER_SIZE | |||
| #define SERIAL5_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL5_RX_BUFFER_SIZE | |||
| #define SERIAL5_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| void IRQHandler_Serial5() | |||
| { | |||
| Serial5.IRQHandler(); | |||
| } | |||
| // Serial5 | |||
| static BUFTYPE tx_buffer5[SERIAL5_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer5[SERIAL5_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART8_Hardware = { | |||
| IRQ_LPUART8, &IRQHandler_Serial5, | |||
| CCM_CCGR6, CCM_CCGR6_LPUART8(CCM_CCGR_ON), | |||
| 21, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_11, // pin 21 | |||
| 20, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_10, // pin 20 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART8_RX_SELECT_INPUT, | |||
| 2, // page 499 | |||
| 2, // page 498 | |||
| 0, // No CTS | |||
| 1, // Page 864-5 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial5(&IMXRT_LPUART8, &UART8_Hardware, tx_buffer5, SERIAL5_TX_BUFFER_SIZE, | |||
| rx_buffer5, SERIAL5_RX_BUFFER_SIZE); | |||
| void serialEvent5() __attribute__((weak)); | |||
| void serialEvent5() {} | |||
| @@ -0,0 +1,71 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| * "Software"), to deal in the Software without restriction, including | |||
| * without limitation the rights to use, copy, modify, merge, publish, | |||
| * distribute, sublicense, and/or sell copies of the Software, and to | |||
| * permit persons to whom the Software is furnished to do so, subject to | |||
| * the following conditions: | |||
| * | |||
| * 1. The above copyright notice and this permission notice shall be | |||
| * included in all copies or substantial portions of the Software. | |||
| * | |||
| * 2. If the Software is incorporated into a build system that allows | |||
| * selection among a list of target devices, then similar target | |||
| * devices manufactured by PJRC.COM must be included in the list of | |||
| * target devices and selectable in the same manner. | |||
| * | |||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |||
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| * SOFTWARE. | |||
| */ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #ifndef SERIAL6_TX_BUFFER_SIZE | |||
| #define SERIAL6_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL6_RX_BUFFER_SIZE | |||
| #define SERIAL6_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| void IRQHandler_Serial6() | |||
| { | |||
| Serial6.IRQHandler(); | |||
| } | |||
| // Serial6 | |||
| static BUFTYPE tx_buffer6[SERIAL6_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer6[SERIAL6_RX_BUFFER_SIZE]; | |||
| uint32_t IOMUXC_LPUART1_RX_SELECT_INPUT; // bugbug - does not exist so hack | |||
| static HardwareSerial::hardware_t UART1_Hardware = { | |||
| IRQ_LPUART1, &IRQHandler_Serial6, | |||
| CCM_CCGR5, CCM_CCGR5_LPUART1(CCM_CCGR_ON), | |||
| 25, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_13, // pin 25 | |||
| 24, //IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_12, // pin 24 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART1_RX_SELECT_INPUT, | |||
| 2, // page 486 | |||
| 2, // page 485 | |||
| 0, // No CTS | |||
| 0, // ??? Does not have one ??? | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial6(&IMXRT_LPUART1, &UART1_Hardware, tx_buffer6, SERIAL6_TX_BUFFER_SIZE, | |||
| rx_buffer6, SERIAL6_RX_BUFFER_SIZE); | |||
| void serialEvent6() __attribute__((weak)); | |||
| void serialEvent6() {} | |||
| @@ -0,0 +1,70 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| * "Software"), to deal in the Software without restriction, including | |||
| * without limitation the rights to use, copy, modify, merge, publish, | |||
| * distribute, sublicense, and/or sell copies of the Software, and to | |||
| * permit persons to whom the Software is furnished to do so, subject to | |||
| * the following conditions: | |||
| * | |||
| * 1. The above copyright notice and this permission notice shall be | |||
| * included in all copies or substantial portions of the Software. | |||
| * | |||
| * 2. If the Software is incorporated into a build system that allows | |||
| * selection among a list of target devices, then similar target | |||
| * devices manufactured by PJRC.COM must be included in the list of | |||
| * target devices and selectable in the same manner. | |||
| * | |||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |||
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| * SOFTWARE. | |||
| */ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #ifndef SERIAL7_TX_BUFFER_SIZE | |||
| #define SERIAL7_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL7_RX_BUFFER_SIZE | |||
| #define SERIAL7_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| void IRQHandler_Serial7() | |||
| { | |||
| Serial7.IRQHandler(); | |||
| } | |||
| // Serial7 | |||
| static BUFTYPE tx_buffer7[SERIAL7_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer7[SERIAL7_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART7_Hardware = { | |||
| IRQ_LPUART7, &IRQHandler_Serial7, | |||
| CCM_CCGR5, CCM_CCGR5_LPUART7(CCM_CCGR_ON), | |||
| 28, //IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_32, // pin 28 | |||
| 29, //IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_31, // pin 29 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART7_RX_SELECT_INPUT, | |||
| 2, // page 458 | |||
| 2, // page 457 | |||
| 0, // No CTS | |||
| 1, // Page 863 | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial7(&IMXRT_LPUART7, &UART7_Hardware, tx_buffer7, SERIAL7_TX_BUFFER_SIZE, | |||
| rx_buffer7, SERIAL7_RX_BUFFER_SIZE); | |||
| void serialEvent7() __attribute__((weak)); | |||
| void serialEvent7() {} | |||
| @@ -0,0 +1,68 @@ | |||
| /* Teensyduino Core Library | |||
| * http://www.pjrc.com/teensy/ | |||
| * Copyright (c) 2019 PJRC.COM, LLC. | |||
| * | |||
| * Permission is hereby granted, free of charge, to any person obtaining | |||
| * a copy of this software and associated documentation files (the | |||
| * "Software"), to deal in the Software without restriction, including | |||
| * without limitation the rights to use, copy, modify, merge, publish, | |||
| * distribute, sublicense, and/or sell copies of the Software, and to | |||
| * permit persons to whom the Software is furnished to do so, subject to | |||
| * the following conditions: | |||
| * | |||
| * 1. The above copyright notice and this permission notice shall be | |||
| * included in all copies or substantial portions of the Software. | |||
| * | |||
| * 2. If the Software is incorporated into a build system that allows | |||
| * selection among a list of target devices, then similar target | |||
| * devices manufactured by PJRC.COM must be included in the list of | |||
| * target devices and selectable in the same manner. | |||
| * | |||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |||
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| * SOFTWARE. | |||
| */ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #ifndef SERIAL8_TX_BUFFER_SIZE | |||
| #define SERIAL8_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| #endif | |||
| #ifndef SERIAL8_RX_BUFFER_SIZE | |||
| #define SERIAL8_RX_BUFFER_SIZE 64 // number of incoming bytes to buffer | |||
| #endif | |||
| #define IRQ_PRIORITY 64 // 0 = highest priority, 255 = lowest | |||
| void IRQHandler_Serial8() | |||
| { | |||
| Serial8.IRQHandler(); | |||
| } | |||
| // Serial8 | |||
| static BUFTYPE tx_buffer8[SERIAL8_TX_BUFFER_SIZE]; | |||
| static BUFTYPE rx_buffer8[SERIAL8_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART5_Hardware = { | |||
| IRQ_LPUART5, &IRQHandler_Serial8, | |||
| CCM_CCGR3, CCM_CCGR3_LPUART5(CCM_CCGR_ON), | |||
| 30, //IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_24, // pin 30 | |||
| 31, // IOMUXC_SW_MUX_CTL_PAD_GPIO_EMC_23, // pin 31 | |||
| 0xff, // No CTS pin | |||
| IOMUXC_LPUART5_RX_SELECT_INPUT, | |||
| 2, // page 450 | |||
| 2, // page 449 | |||
| 0, // No CTS | |||
| 0, | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| }; | |||
| HardwareSerial Serial8(&IMXRT_LPUART5, &UART5_Hardware, tx_buffer8, SERIAL8_TX_BUFFER_SIZE, | |||
| rx_buffer8, SERIAL8_RX_BUFFER_SIZE); | |||
| void serialEvent7() __attribute__((weak)); | |||
| void serialEvent7() {} | |||