From 499889baff4d2d48f6d1696bb2dd41055cc87ebe Mon Sep 17 00:00:00 2001 From: MMS Date: Sun, 31 Jan 2021 18:45:40 -0500 Subject: [PATCH] 6.9.2a ARM Cortex-M ports: moved ARM_ERRATUM_838869 to be unconditional in ISR exit --- examples/arm-cm/dpp_efm32-slstk3401a/qk/bsp.c | 7 ++++--- examples/arm-cm/dpp_efm32-slstk3401a/qv/bsp.c | 5 +++-- examples/arm-cm/dpp_efm32-slstk3401a/qxk/bsp.c | 7 ++++--- examples/arm-cm/dpp_ek-tm4c123gxl/qk/bsp.c | 7 ++++--- .../qk/gnu_with-stack-prot/bsp_stack-prot.c | 7 ++++--- examples/arm-cm/dpp_ek-tm4c123gxl/qv/bsp.c | 7 ++++--- examples/arm-cm/dpp_ek-tm4c123gxl/qxk/bsp.c | 7 ++++--- examples/arm-cm/dpp_nucleo-l053r8/qk/bsp.c | 7 ++++--- examples/arm-cm/dpp_nucleo-l053r8/qv/bsp.c | 7 ++++--- examples/arm-cm/dpp_nucleo-l053r8/qxk/bsp.c | 7 ++++--- examples/arm-cm/dpp_nucleo-l152re/qk/bsp.c | 7 ++++--- examples/arm-cm/dpp_nucleo-l152re/qxk/bsp.c | 7 ++++--- examples/arm-cm/dpp_stm32f4-discovery/qk/bsp.c | 7 ++++--- examples/arm-cm/dpp_stm32f4-discovery/qxk/bsp.c | 7 ++++--- examples/arm-cm/dpp_stm32f746g-discovery/qk/bsp.c | 7 ++++--- examples/arm-cm/dpp_stm32f746g-discovery/qxk/bsp.c | 7 ++++--- examples/arm-cm/game_efm32-slstk3401a/qk/bsp.c | 5 +++-- ports/arm-cm/qk/arm/qk_port.h | 8 ++++---- ports/arm-cm/qk/armclang/qk_port.h | 8 ++++---- ports/arm-cm/qk/gnu/qk_port.h | 8 ++++---- ports/arm-cm/qk/iar/qk_port.h | 8 ++++---- ports/arm-cm/qxk/arm/qxk_port.h | 12 ++++++------ ports/arm-cm/qxk/armclang/qxk_port.h | 12 ++++++------ ports/arm-cm/qxk/gnu/qxk_port.h | 12 ++++++------ ports/arm-cm/qxk/iar/qxk_port.h | 12 ++++++------ 25 files changed, 106 insertions(+), 89 deletions(-) diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qk/bsp.c b/examples/arm-cm/dpp_efm32-slstk3401a/qk/bsp.c index efdab6cc..77d0ec3c 100644 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qk/bsp.c +++ b/examples/arm-cm/dpp_efm32-slstk3401a/qk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, EFM32-SLSTK3401A board, preemptive QK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -144,6 +144,7 @@ void USART0_RX_IRQHandler(void) { uint32_t b = l_USART0->RXDATA; QS_RX_PUT(b); } + QK_ARM_ERRATUM_838869(); } #else void USART0_RX_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qv/bsp.c b/examples/arm-cm/dpp_efm32-slstk3401a/qv/bsp.c index 42d3c763..220a60a0 100644 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qv/bsp.c +++ b/examples/arm-cm/dpp_efm32-slstk3401a/qv/bsp.c @@ -1,7 +1,7 @@ /***************************************************************************** * Product: DPP example, EFM32-SLSTK3401A board, cooperative QV kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ @@ -137,6 +137,7 @@ void USART0_RX_IRQHandler(void) { uint32_t b = l_USART0->RXDATA; QS_RX_PUT(b); } + QV_ARM_ERRATUM_838869(); } #else void USART0_RX_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qxk/bsp.c b/examples/arm-cm/dpp_efm32-slstk3401a/qxk/bsp.c index 4a9b2e19..322a711c 100644 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qxk/bsp.c +++ b/examples/arm-cm/dpp_efm32-slstk3401a/qxk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, EFM32-SLSTK3401A board, preemptive QXK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -149,6 +149,7 @@ void USART0_RX_IRQHandler(void) { uint32_t b = l_USART0->RXDATA; QS_RX_PUT(b); } + QXK_ARM_ERRATUM_838869(); } #else void USART0_RX_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_ek-tm4c123gxl/qk/bsp.c b/examples/arm-cm/dpp_ek-tm4c123gxl/qk/bsp.c index 05943d25..5a2c70cd 100644 --- a/examples/arm-cm/dpp_ek-tm4c123gxl/qk/bsp.c +++ b/examples/arm-cm/dpp_ek-tm4c123gxl/qk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, EK-TM4C123GXL board, preemptive QK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -149,6 +149,7 @@ void UART0_IRQHandler(void) { uint32_t b = UART0->DR; QS_RX_PUT(b); } + QK_ARM_ERRATUM_838869(); } #else void UART0_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_ek-tm4c123gxl/qk/gnu_with-stack-prot/bsp_stack-prot.c b/examples/arm-cm/dpp_ek-tm4c123gxl/qk/gnu_with-stack-prot/bsp_stack-prot.c index c5ceaea7..74e9c72c 100644 --- a/examples/arm-cm/dpp_ek-tm4c123gxl/qk/gnu_with-stack-prot/bsp_stack-prot.c +++ b/examples/arm-cm/dpp_ek-tm4c123gxl/qk/gnu_with-stack-prot/bsp_stack-prot.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, EK-TM4C123GXL board, preemptive QK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -149,6 +149,7 @@ void UART0_IRQHandler(void) { uint32_t b = UART0->DR; QS_RX_PUT(b); } + QK_ARM_ERRATUM_838869(); } #else void UART0_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_ek-tm4c123gxl/qv/bsp.c b/examples/arm-cm/dpp_ek-tm4c123gxl/qv/bsp.c index 8046bb1c..d6dcde30 100644 --- a/examples/arm-cm/dpp_ek-tm4c123gxl/qv/bsp.c +++ b/examples/arm-cm/dpp_ek-tm4c123gxl/qv/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, EK-TM4C123GXL board, cooperative QV kernel -* Last updated for version 6.9.2 -* Last updated on 2020-12-14 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -142,6 +142,7 @@ void UART0_IRQHandler(void) { uint32_t b = UART0->DR; QS_RX_PUT(b); } + QV_ARM_ERRATUM_838869(); } #else void UART0_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_ek-tm4c123gxl/qxk/bsp.c b/examples/arm-cm/dpp_ek-tm4c123gxl/qxk/bsp.c index eab14be5..d1f76a62 100644 --- a/examples/arm-cm/dpp_ek-tm4c123gxl/qxk/bsp.c +++ b/examples/arm-cm/dpp_ek-tm4c123gxl/qxk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, EK-TM4C123GXL board, preemptive QXK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -152,6 +152,7 @@ void UART0_IRQHandler(void) { uint32_t b = UART0->DR; QS_RX_PUT(b); } + QXK_ARM_ERRATUM_838869(); } #else void UART0_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_nucleo-l053r8/qk/bsp.c b/examples/arm-cm/dpp_nucleo-l053r8/qk/bsp.c index 3ad29ad1..58191595 100644 --- a/examples/arm-cm/dpp_nucleo-l053r8/qk/bsp.c +++ b/examples/arm-cm/dpp_nucleo-l053r8/qk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, NUCLEO-L053R8 board, preemptive QK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -129,6 +129,7 @@ void USART2_IRQHandler(void) { /* used in QS-RX (kernel UNAWARE interrutp) */ uint32_t b = USART2->RDR; QS_RX_PUT(b); } + QK_ARM_ERRATUM_838869(); } #endif diff --git a/examples/arm-cm/dpp_nucleo-l053r8/qv/bsp.c b/examples/arm-cm/dpp_nucleo-l053r8/qv/bsp.c index d2984fa4..bb5fbe14 100644 --- a/examples/arm-cm/dpp_nucleo-l053r8/qv/bsp.c +++ b/examples/arm-cm/dpp_nucleo-l053r8/qv/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, NUCLEO-L053R8 board, cooperative QV kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -125,6 +125,7 @@ void USART2_IRQHandler(void) { /* used in QS-RX (kernel UNAWARE interrutp) */ uint32_t b = USART2->RDR; QS_RX_PUT(b); } + QV_ARM_ERRATUM_838869(); } #endif diff --git a/examples/arm-cm/dpp_nucleo-l053r8/qxk/bsp.c b/examples/arm-cm/dpp_nucleo-l053r8/qxk/bsp.c index 8fdbd5ce..961b7452 100644 --- a/examples/arm-cm/dpp_nucleo-l053r8/qxk/bsp.c +++ b/examples/arm-cm/dpp_nucleo-l053r8/qxk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, NUCLEO-L053R8 board, preemptive QXK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -129,6 +129,7 @@ void USART2_IRQHandler(void) { /* used in QS-RX (kernel UNAWARE interrutp) */ uint32_t b = USART2->RDR; QS_RX_PUT(b); } + QXK_ARM_ERRATUM_838869(); } #endif diff --git a/examples/arm-cm/dpp_nucleo-l152re/qk/bsp.c b/examples/arm-cm/dpp_nucleo-l152re/qk/bsp.c index b47a0cb1..423a912a 100644 --- a/examples/arm-cm/dpp_nucleo-l152re/qk/bsp.c +++ b/examples/arm-cm/dpp_nucleo-l152re/qk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, STM32 NUCLEO-L152RE board, preemptive QK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -119,6 +119,7 @@ void USART2_IRQHandler(void) { /* kernel UNAWARE interrupt */ uint32_t b = USART2->DR; QS_RX_PUT(b); } + QK_ARM_ERRATUM_838869(); } #endif diff --git a/examples/arm-cm/dpp_nucleo-l152re/qxk/bsp.c b/examples/arm-cm/dpp_nucleo-l152re/qxk/bsp.c index d7ecdd57..86e0b96d 100644 --- a/examples/arm-cm/dpp_nucleo-l152re/qxk/bsp.c +++ b/examples/arm-cm/dpp_nucleo-l152re/qxk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, STM32 NUCLEO-L152RE board, preemptive QXK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -119,6 +119,7 @@ void USART2_IRQHandler(void) { /* kernel UNAWARE interrupt */ uint32_t b = USART2->DR; QS_RX_PUT(b); } + QXK_ARM_ERRATUM_838869(); } #endif diff --git a/examples/arm-cm/dpp_stm32f4-discovery/qk/bsp.c b/examples/arm-cm/dpp_stm32f4-discovery/qk/bsp.c index 381da39b..f00ebae8 100644 --- a/examples/arm-cm/dpp_stm32f4-discovery/qk/bsp.c +++ b/examples/arm-cm/dpp_stm32f4-discovery/qk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: "DPP" example on STM32F4-Discovery board, preemptive QK kernel -* Last Updated for Version: 6.9.1 -* Date of the Last Update: 2020-09-22 +* Last Updated for Version: 6.9.2a +* Date of the Last Update: 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -135,6 +135,7 @@ void USART2_IRQHandler(void) { uint32_t b = USART2->DR; QS_RX_PUT(b); } + QK_ARM_ERRATUM_838869(); } #else void USART2_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_stm32f4-discovery/qxk/bsp.c b/examples/arm-cm/dpp_stm32f4-discovery/qxk/bsp.c index 52468763..6c90bbbc 100644 --- a/examples/arm-cm/dpp_stm32f4-discovery/qxk/bsp.c +++ b/examples/arm-cm/dpp_stm32f4-discovery/qxk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: "DPP" example on STM32F4-Discovery board, dual-mode QXK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -135,6 +135,7 @@ void USART2_IRQHandler(void) { uint32_t b = USART2->DR; QS_RX_PUT(b); } + QXK_ARM_ERRATUM_838869(); } #else void USART2_IRQHandler(void) {} diff --git a/examples/arm-cm/dpp_stm32f746g-discovery/qk/bsp.c b/examples/arm-cm/dpp_stm32f746g-discovery/qk/bsp.c index 1cad4586..cfdc791d 100644 --- a/examples/arm-cm/dpp_stm32f746g-discovery/qk/bsp.c +++ b/examples/arm-cm/dpp_stm32f746g-discovery/qk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, STM32746G-Discovery board, preemptive QK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -127,6 +127,7 @@ void USART1_IRQHandler(void) { QS_RX_PUT(b); l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */ } + QK_ARM_ERRATUM_838869(); } /*..........................................................................*/ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) { diff --git a/examples/arm-cm/dpp_stm32f746g-discovery/qxk/bsp.c b/examples/arm-cm/dpp_stm32f746g-discovery/qxk/bsp.c index 813d943f..4bd3902b 100644 --- a/examples/arm-cm/dpp_stm32f746g-discovery/qxk/bsp.c +++ b/examples/arm-cm/dpp_stm32f746g-discovery/qxk/bsp.c @@ -1,13 +1,13 @@ /***************************************************************************** * Product: DPP example, STM32746G-Discovery board, dual-mode QXK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -129,6 +129,7 @@ void USART1_IRQHandler(void) { QS_RX_PUT(b); l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */ } + QXK_ARM_ERRATUM_838869(); } /*..........................................................................*/ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) { diff --git a/examples/arm-cm/game_efm32-slstk3401a/qk/bsp.c b/examples/arm-cm/game_efm32-slstk3401a/qk/bsp.c index 70ce588d..41e3adfd 100644 --- a/examples/arm-cm/game_efm32-slstk3401a/qk/bsp.c +++ b/examples/arm-cm/game_efm32-slstk3401a/qk/bsp.c @@ -1,7 +1,7 @@ /***************************************************************************** * Product: "Fly 'n' Shoot" game example, EFM32-SLSTK3401A board, QK kernel -* Last updated for version 6.9.1 -* Last updated on 2020-09-22 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ @@ -158,6 +158,7 @@ void USART0_RX_IRQHandler(void) { uint32_t b = l_USART0->RXDATA; QS_RX_PUT(b); } + QK_ARM_ERRATUM_838869(); } #else void USART0_RX_IRQHandler(void) {} diff --git a/ports/arm-cm/qk/arm/qk_port.h b/ports/arm-cm/qk/arm/qk_port.h index 623f2f3c..9fd4a9d8 100644 --- a/ports/arm-cm/qk/arm/qk_port.h +++ b/ports/arm-cm/qk/arm/qk_port.h @@ -3,14 +3,14 @@ * @brief QK/C port to ARM Cortex-M, ARM-KEIL toolset (Compiler 5) * @cond ****************************************************************************** -* Last updated for version 6.9.1 -* Last updated on 2020-09-23 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -55,9 +55,9 @@ static __inline uint32_t QK_get_IPSR(void) { QF_INT_DISABLE(); \ if (QK_sched_() != 0U) { \ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ - QK_ARM_ERRATUM_838869(); \ } \ QF_INT_ENABLE(); \ + QK_ARM_ERRATUM_838869(); \ } while (false) #if (__TARGET_ARCH_THUMB == 3) /* Cortex-M0/M0+/M1(v6-M, v6S-M) */ diff --git a/ports/arm-cm/qk/armclang/qk_port.h b/ports/arm-cm/qk/armclang/qk_port.h index ad711027..a0822eac 100644 --- a/ports/arm-cm/qk/armclang/qk_port.h +++ b/ports/arm-cm/qk/armclang/qk_port.h @@ -3,14 +3,14 @@ * @brief QK/C port to ARM Cortex-M, ARM-CLANG toolset * @cond ****************************************************************************** -* Last updated for version 6.9.1 -* Last updated on 2020-09-23 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -56,9 +56,9 @@ static inline uint32_t QK_get_IPSR(void) { QF_INT_DISABLE(); \ if (QK_sched_() != 0U) { \ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ - QK_ARM_ERRATUM_838869(); \ } \ QF_INT_ENABLE(); \ + QK_ARM_ERRATUM_838869(); \ } while (false) #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ diff --git a/ports/arm-cm/qk/gnu/qk_port.h b/ports/arm-cm/qk/gnu/qk_port.h index 3eca4087..4e79c3c8 100644 --- a/ports/arm-cm/qk/gnu/qk_port.h +++ b/ports/arm-cm/qk/gnu/qk_port.h @@ -3,14 +3,14 @@ * @brief QK/C port to ARM Cortex-M, GNU-ARM toolset * @cond ****************************************************************************** -* Last updated for version 6.9.1 -* Last updated on 2020-09-23 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -56,9 +56,9 @@ static inline uint32_t QK_get_IPSR(void) { QF_INT_DISABLE(); \ if (QK_sched_() != 0U) { \ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ - QK_ARM_ERRATUM_838869(); \ } \ QF_INT_ENABLE(); \ + QK_ARM_ERRATUM_838869(); \ } while (false) #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ diff --git a/ports/arm-cm/qk/iar/qk_port.h b/ports/arm-cm/qk/iar/qk_port.h index 22b19211..8be76203 100644 --- a/ports/arm-cm/qk/iar/qk_port.h +++ b/ports/arm-cm/qk/iar/qk_port.h @@ -3,14 +3,14 @@ * @brief QK/C port to ARM Cortex-M, IAR-ARM toolset * @cond ****************************************************************************** -* Last updated for version 6.9.1 -* Last updated on 2020-09-23 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -49,9 +49,9 @@ QF_INT_DISABLE(); \ if (QK_sched_() != 0U) { \ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ - QK_ARM_ERRATUM_838869(); \ } \ QF_INT_ENABLE(); \ + QK_ARM_ERRATUM_838869(); \ } while (false) #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ diff --git a/ports/arm-cm/qxk/arm/qxk_port.h b/ports/arm-cm/qxk/arm/qxk_port.h index 58caeb4d..51b75f55 100644 --- a/ports/arm-cm/qxk/arm/qxk_port.h +++ b/ports/arm-cm/qxk/arm/qxk_port.h @@ -3,14 +3,14 @@ * @brief QXK/C port to ARM Cortex-M, ARM-KEIL toolset * @cond ****************************************************************************** -* Last updated for version 6.9.1 -* Last updated on 2020-09-28 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -49,9 +49,8 @@ static __inline uint32_t QXK_get_IPSR(void) { } /* trigger the PendSV exception to pefrom the context switch */ -#define QXK_CONTEXT_SWITCH_() \ - *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ - QXK_ARM_ERRATUM_838869() +#define QXK_CONTEXT_SWITCH_() \ + *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U) /* QXK ISR entry and exit */ #define QXK_ISR_ENTRY() ((void)0) @@ -62,6 +61,7 @@ static __inline uint32_t QXK_get_IPSR(void) { QXK_CONTEXT_SWITCH_(); \ } \ QF_INT_ENABLE(); \ + QXK_ARM_ERRATUM_838869(); \ } while (false) #if (__TARGET_ARCH_THUMB == 3) /* Cortex-M0/M0+/M1(v6-M, v6S-M)? */ diff --git a/ports/arm-cm/qxk/armclang/qxk_port.h b/ports/arm-cm/qxk/armclang/qxk_port.h index f18c5377..c89b8040 100644 --- a/ports/arm-cm/qxk/armclang/qxk_port.h +++ b/ports/arm-cm/qxk/armclang/qxk_port.h @@ -3,14 +3,14 @@ * @brief QXK/C port to ARM Cortex-M, ARM-CLANG compiler * @cond ****************************************************************************** -* Last updated for version 6.9.1 -* Last updated on 2020-09-28 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -50,9 +50,8 @@ static inline uint32_t QXK_get_IPSR(void) { } /* trigger the PendSV exception to pefrom the context switch */ -#define QXK_CONTEXT_SWITCH_() \ - *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ - QXK_ARM_ERRATUM_838869() +#define QXK_CONTEXT_SWITCH_() \ + *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U) /* QXK ISR entry and exit */ #define QXK_ISR_ENTRY() ((void)0) @@ -63,6 +62,7 @@ static inline uint32_t QXK_get_IPSR(void) { QXK_CONTEXT_SWITCH_(); \ } \ QF_INT_ENABLE(); \ + QXK_ARM_ERRATUM_838869(); \ } while (false) #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ diff --git a/ports/arm-cm/qxk/gnu/qxk_port.h b/ports/arm-cm/qxk/gnu/qxk_port.h index 53275005..2fc78a0c 100644 --- a/ports/arm-cm/qxk/gnu/qxk_port.h +++ b/ports/arm-cm/qxk/gnu/qxk_port.h @@ -3,14 +3,14 @@ * @brief QXK/C port to ARM Cortex-M, GNU-ARM compiler * @cond ****************************************************************************** -* Last updated for version 6.9.1 -* Last updated on 2020-09-28 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -50,9 +50,8 @@ static inline uint32_t QXK_get_IPSR(void) { } /* trigger the PendSV exception to pefrom the context switch */ -#define QXK_CONTEXT_SWITCH_() \ - *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ - QXK_ARM_ERRATUM_838869() +#define QXK_CONTEXT_SWITCH_() \ + *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U) /* QXK ISR entry and exit */ #define QXK_ISR_ENTRY() ((void)0) @@ -63,6 +62,7 @@ static inline uint32_t QXK_get_IPSR(void) { QXK_CONTEXT_SWITCH_(); \ } \ QF_INT_ENABLE(); \ + QXK_ARM_ERRATUM_838869(); \ } while (false) #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ diff --git a/ports/arm-cm/qxk/iar/qxk_port.h b/ports/arm-cm/qxk/iar/qxk_port.h index cea04ba1..982cc4ad 100644 --- a/ports/arm-cm/qxk/iar/qxk_port.h +++ b/ports/arm-cm/qxk/iar/qxk_port.h @@ -3,14 +3,14 @@ * @brief QXK/C port to ARM Cortex-M, IAR-ARM compiler * @cond ****************************************************************************** -* Last updated for version 6.9.1 -* Last updated on 2020-09-28 +* Last updated for version 6.9.2a +* Last updated on 2021-01-31 * * Q u a n t u m L e a P s * ------------------------ * Modern Embedded Software * -* Copyright (C) 2005-2020 Quantum Leaps, LLC. All rights reserved. +* Copyright (C) 2005-2021 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -43,9 +43,8 @@ #define QXK_ISR_CONTEXT_() (__get_IPSR() != 0U) /* trigger the PendSV exception to pefrom the context switch */ -#define QXK_CONTEXT_SWITCH_() \ - *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ - QXK_ARM_ERRATUM_838869() +#define QXK_CONTEXT_SWITCH_() \ + *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U) /* QXK ISR entry and exit */ #define QXK_ISR_ENTRY() ((void)0) @@ -56,6 +55,7 @@ QXK_CONTEXT_SWITCH_(); \ } \ QF_INT_ENABLE(); \ + QXK_ARM_ERRATUM_838869(); \ } while (false) #if (__CORE__ == __ARM6M__) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */