ARM Cortex-M ports: moved ARM_ERRATUM_838869 to be unconditional in ISR exit
This commit is contained in:
MMS 2021-01-31 18:45:40 -05:00
parent 3a6276e77b
commit 499889baff
25 changed files with 106 additions and 89 deletions

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, EFM32-SLSTK3401A board, preemptive QK kernel * Product: DPP example, EFM32-SLSTK3401A board, preemptive QK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = l_USART0->RXDATA;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QK_ARM_ERRATUM_838869();
} }
#else #else
void USART0_RX_IRQHandler(void) {} void USART0_RX_IRQHandler(void) {}

View File

@ -1,7 +1,7 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, EFM32-SLSTK3401A board, cooperative QV kernel * Product: DPP example, EFM32-SLSTK3401A board, cooperative QV kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * 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; uint32_t b = l_USART0->RXDATA;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QV_ARM_ERRATUM_838869();
} }
#else #else
void USART0_RX_IRQHandler(void) {} void USART0_RX_IRQHandler(void) {}

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, EFM32-SLSTK3401A board, preemptive QXK kernel * Product: DPP example, EFM32-SLSTK3401A board, preemptive QXK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = l_USART0->RXDATA;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QXK_ARM_ERRATUM_838869();
} }
#else #else
void USART0_RX_IRQHandler(void) {} void USART0_RX_IRQHandler(void) {}

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, EK-TM4C123GXL board, preemptive QK kernel * Product: DPP example, EK-TM4C123GXL board, preemptive QK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = UART0->DR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QK_ARM_ERRATUM_838869();
} }
#else #else
void UART0_IRQHandler(void) {} void UART0_IRQHandler(void) {}

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, EK-TM4C123GXL board, preemptive QK kernel * Product: DPP example, EK-TM4C123GXL board, preemptive QK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = UART0->DR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QK_ARM_ERRATUM_838869();
} }
#else #else
void UART0_IRQHandler(void) {} void UART0_IRQHandler(void) {}

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, EK-TM4C123GXL board, cooperative QV kernel * Product: DPP example, EK-TM4C123GXL board, cooperative QV kernel
* Last updated for version 6.9.2 * Last updated for version 6.9.2a
* Last updated on 2020-12-14 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = UART0->DR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QV_ARM_ERRATUM_838869();
} }
#else #else
void UART0_IRQHandler(void) {} void UART0_IRQHandler(void) {}

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, EK-TM4C123GXL board, preemptive QXK kernel * Product: DPP example, EK-TM4C123GXL board, preemptive QXK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = UART0->DR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QXK_ARM_ERRATUM_838869();
} }
#else #else
void UART0_IRQHandler(void) {} void UART0_IRQHandler(void) {}

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, NUCLEO-L053R8 board, preemptive QK kernel * Product: DPP example, NUCLEO-L053R8 board, preemptive QK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = USART2->RDR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QK_ARM_ERRATUM_838869();
} }
#endif #endif

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, NUCLEO-L053R8 board, cooperative QV kernel * Product: DPP example, NUCLEO-L053R8 board, cooperative QV kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = USART2->RDR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QV_ARM_ERRATUM_838869();
} }
#endif #endif

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, NUCLEO-L053R8 board, preemptive QXK kernel * Product: DPP example, NUCLEO-L053R8 board, preemptive QXK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = USART2->RDR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QXK_ARM_ERRATUM_838869();
} }
#endif #endif

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, STM32 NUCLEO-L152RE board, preemptive QK kernel * Product: DPP example, STM32 NUCLEO-L152RE board, preemptive QK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = USART2->DR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QK_ARM_ERRATUM_838869();
} }
#endif #endif

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, STM32 NUCLEO-L152RE board, preemptive QXK kernel * Product: DPP example, STM32 NUCLEO-L152RE board, preemptive QXK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = USART2->DR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QXK_ARM_ERRATUM_838869();
} }
#endif #endif

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: "DPP" example on STM32F4-Discovery board, preemptive QK kernel * Product: "DPP" example on STM32F4-Discovery board, preemptive QK kernel
* Last Updated for Version: 6.9.1 * Last Updated for Version: 6.9.2a
* Date of the Last Update: 2020-09-22 * Date of the Last Update: 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = USART2->DR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QK_ARM_ERRATUM_838869();
} }
#else #else
void USART2_IRQHandler(void) {} void USART2_IRQHandler(void) {}

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: "DPP" example on STM32F4-Discovery board, dual-mode QXK kernel * Product: "DPP" example on STM32F4-Discovery board, dual-mode QXK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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; uint32_t b = USART2->DR;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QXK_ARM_ERRATUM_838869();
} }
#else #else
void USART2_IRQHandler(void) {} void USART2_IRQHandler(void) {}

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, STM32746G-Discovery board, preemptive QK kernel * Product: DPP example, STM32746G-Discovery board, preemptive QK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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); QS_RX_PUT(b);
l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */ l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */
} }
QK_ARM_ERRATUM_838869();
} }
/*..........................................................................*/ /*..........................................................................*/
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) { void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) {

View File

@ -1,13 +1,13 @@
/***************************************************************************** /*****************************************************************************
* Product: DPP example, STM32746G-Discovery board, dual-mode QXK kernel * Product: DPP example, STM32746G-Discovery board, dual-mode QXK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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); QS_RX_PUT(b);
l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */ l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */
} }
QXK_ARM_ERRATUM_838869();
} }
/*..........................................................................*/ /*..........................................................................*/
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) { void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) {

View File

@ -1,7 +1,7 @@
/***************************************************************************** /*****************************************************************************
* Product: "Fly 'n' Shoot" game example, EFM32-SLSTK3401A board, QK kernel * Product: "Fly 'n' Shoot" game example, EFM32-SLSTK3401A board, QK kernel
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-22 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * 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; uint32_t b = l_USART0->RXDATA;
QS_RX_PUT(b); QS_RX_PUT(b);
} }
QK_ARM_ERRATUM_838869();
} }
#else #else
void USART0_RX_IRQHandler(void) {} void USART0_RX_IRQHandler(void) {}

View File

@ -3,14 +3,14 @@
* @brief QK/C port to ARM Cortex-M, ARM-KEIL toolset (Compiler 5) * @brief QK/C port to ARM Cortex-M, ARM-KEIL toolset (Compiler 5)
* @cond * @cond
****************************************************************************** ******************************************************************************
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-23 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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(); \ QF_INT_DISABLE(); \
if (QK_sched_() != 0U) { \ if (QK_sched_() != 0U) { \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\
QK_ARM_ERRATUM_838869(); \
} \ } \
QF_INT_ENABLE(); \ QF_INT_ENABLE(); \
QK_ARM_ERRATUM_838869(); \
} while (false) } while (false)
#if (__TARGET_ARCH_THUMB == 3) /* Cortex-M0/M0+/M1(v6-M, v6S-M) */ #if (__TARGET_ARCH_THUMB == 3) /* Cortex-M0/M0+/M1(v6-M, v6S-M) */

View File

@ -3,14 +3,14 @@
* @brief QK/C port to ARM Cortex-M, ARM-CLANG toolset * @brief QK/C port to ARM Cortex-M, ARM-CLANG toolset
* @cond * @cond
****************************************************************************** ******************************************************************************
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-23 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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(); \ QF_INT_DISABLE(); \
if (QK_sched_() != 0U) { \ if (QK_sched_() != 0U) { \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\
QK_ARM_ERRATUM_838869(); \
} \ } \
QF_INT_ENABLE(); \ QF_INT_ENABLE(); \
QK_ARM_ERRATUM_838869(); \
} while (false) } while (false)
#if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */

View File

@ -3,14 +3,14 @@
* @brief QK/C port to ARM Cortex-M, GNU-ARM toolset * @brief QK/C port to ARM Cortex-M, GNU-ARM toolset
* @cond * @cond
****************************************************************************** ******************************************************************************
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-23 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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(); \ QF_INT_DISABLE(); \
if (QK_sched_() != 0U) { \ if (QK_sched_() != 0U) { \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\
QK_ARM_ERRATUM_838869(); \
} \ } \
QF_INT_ENABLE(); \ QF_INT_ENABLE(); \
QK_ARM_ERRATUM_838869(); \
} while (false) } while (false)
#if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */

View File

@ -3,14 +3,14 @@
* @brief QK/C port to ARM Cortex-M, IAR-ARM toolset * @brief QK/C port to ARM Cortex-M, IAR-ARM toolset
* @cond * @cond
****************************************************************************** ******************************************************************************
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-23 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * modify it under the terms of the GNU General Public License as published
@ -49,9 +49,9 @@
QF_INT_DISABLE(); \ QF_INT_DISABLE(); \
if (QK_sched_() != 0U) { \ if (QK_sched_() != 0U) { \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\
QK_ARM_ERRATUM_838869(); \
} \ } \
QF_INT_ENABLE(); \ QF_INT_ENABLE(); \
QK_ARM_ERRATUM_838869(); \
} while (false) } while (false)
#if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */

View File

@ -3,14 +3,14 @@
* @brief QXK/C port to ARM Cortex-M, ARM-KEIL toolset * @brief QXK/C port to ARM Cortex-M, ARM-KEIL toolset
* @cond * @cond
****************************************************************************** ******************************************************************************
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-28 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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 */ /* trigger the PendSV exception to pefrom the context switch */
#define QXK_CONTEXT_SWITCH_() \ #define QXK_CONTEXT_SWITCH_() \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U)
QXK_ARM_ERRATUM_838869()
/* QXK ISR entry and exit */ /* QXK ISR entry and exit */
#define QXK_ISR_ENTRY() ((void)0) #define QXK_ISR_ENTRY() ((void)0)
@ -62,6 +61,7 @@ static __inline uint32_t QXK_get_IPSR(void) {
QXK_CONTEXT_SWITCH_(); \ QXK_CONTEXT_SWITCH_(); \
} \ } \
QF_INT_ENABLE(); \ QF_INT_ENABLE(); \
QXK_ARM_ERRATUM_838869(); \
} while (false) } while (false)
#if (__TARGET_ARCH_THUMB == 3) /* Cortex-M0/M0+/M1(v6-M, v6S-M)? */ #if (__TARGET_ARCH_THUMB == 3) /* Cortex-M0/M0+/M1(v6-M, v6S-M)? */

View File

@ -3,14 +3,14 @@
* @brief QXK/C port to ARM Cortex-M, ARM-CLANG compiler * @brief QXK/C port to ARM Cortex-M, ARM-CLANG compiler
* @cond * @cond
****************************************************************************** ******************************************************************************
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-28 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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 */ /* trigger the PendSV exception to pefrom the context switch */
#define QXK_CONTEXT_SWITCH_() \ #define QXK_CONTEXT_SWITCH_() \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U)
QXK_ARM_ERRATUM_838869()
/* QXK ISR entry and exit */ /* QXK ISR entry and exit */
#define QXK_ISR_ENTRY() ((void)0) #define QXK_ISR_ENTRY() ((void)0)
@ -63,6 +62,7 @@ static inline uint32_t QXK_get_IPSR(void) {
QXK_CONTEXT_SWITCH_(); \ QXK_CONTEXT_SWITCH_(); \
} \ } \
QF_INT_ENABLE(); \ QF_INT_ENABLE(); \
QXK_ARM_ERRATUM_838869(); \
} while (false) } while (false)
#if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */

View File

@ -3,14 +3,14 @@
* @brief QXK/C port to ARM Cortex-M, GNU-ARM compiler * @brief QXK/C port to ARM Cortex-M, GNU-ARM compiler
* @cond * @cond
****************************************************************************** ******************************************************************************
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-28 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * 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 */ /* trigger the PendSV exception to pefrom the context switch */
#define QXK_CONTEXT_SWITCH_() \ #define QXK_CONTEXT_SWITCH_() \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U)
QXK_ARM_ERRATUM_838869()
/* QXK ISR entry and exit */ /* QXK ISR entry and exit */
#define QXK_ISR_ENTRY() ((void)0) #define QXK_ISR_ENTRY() ((void)0)
@ -63,6 +62,7 @@ static inline uint32_t QXK_get_IPSR(void) {
QXK_CONTEXT_SWITCH_(); \ QXK_CONTEXT_SWITCH_(); \
} \ } \
QF_INT_ENABLE(); \ QF_INT_ENABLE(); \
QXK_ARM_ERRATUM_838869(); \
} while (false) } while (false)
#if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ #if (__ARM_ARCH == 6) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */

View File

@ -3,14 +3,14 @@
* @brief QXK/C port to ARM Cortex-M, IAR-ARM compiler * @brief QXK/C port to ARM Cortex-M, IAR-ARM compiler
* @cond * @cond
****************************************************************************** ******************************************************************************
* Last updated for version 6.9.1 * Last updated for version 6.9.2a
* Last updated on 2020-09-28 * Last updated on 2021-01-31
* *
* Q u a n t u m L e a P s * Q u a n t u m L e a P s
* ------------------------ * ------------------------
* Modern Embedded Software * 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 * 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 * modify it under the terms of the GNU General Public License as published
@ -43,9 +43,8 @@
#define QXK_ISR_CONTEXT_() (__get_IPSR() != 0U) #define QXK_ISR_CONTEXT_() (__get_IPSR() != 0U)
/* trigger the PendSV exception to pefrom the context switch */ /* trigger the PendSV exception to pefrom the context switch */
#define QXK_CONTEXT_SWITCH_() \ #define QXK_CONTEXT_SWITCH_() \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\ *Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U)
QXK_ARM_ERRATUM_838869()
/* QXK ISR entry and exit */ /* QXK ISR entry and exit */
#define QXK_ISR_ENTRY() ((void)0) #define QXK_ISR_ENTRY() ((void)0)
@ -56,6 +55,7 @@
QXK_CONTEXT_SWITCH_(); \ QXK_CONTEXT_SWITCH_(); \
} \ } \
QF_INT_ENABLE(); \ QF_INT_ENABLE(); \
QXK_ARM_ERRATUM_838869(); \
} while (false) } while (false)
#if (__CORE__ == __ARM6M__) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */ #if (__CORE__ == __ARM6M__) /* Cortex-M0/M0+/M1 (v6-M, v6S-M)? */