mirror of
https://github.com/QuantumLeaps/qpcpp.git
synced 2025-01-14 05:42:57 +08:00
6.9.2a
ARM Cortex-M ports: moved ARM_ERRATUM_838869 to be unconditional in ISR exit
This commit is contained in:
parent
03311175c7
commit
2ad0fa37f6
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -148,6 +148,7 @@ void USART0_RX_IRQHandler(void) {
|
||||
uint32_t b = DPP::l_USART0->RXDATA;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART0_RX_IRQHandler(void) {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, EFM32-SLSTK3401A board, cooperative QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -118,12 +118,14 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void GPIO_EVEN_IRQHandler(void); // prototype
|
||||
void GPIO_EVEN_IRQHandler(void) {
|
||||
// for testing...
|
||||
AO_Table->POST(Q_NEW(QP::QEvt, MAX_PUB_SIG), &l_GPIO_EVEN_IRQHandler);
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
|
||||
//............................................................................
|
||||
@ -139,6 +141,7 @@ void USART0_RX_IRQHandler(void) {
|
||||
uint32_t b = DPP::l_USART0->RXDATA;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART0_RX_IRQHandler(void) {}
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -155,6 +155,7 @@ void USART0_RX_IRQHandler(void) {
|
||||
uint32_t b = DPP::l_USART0->RXDATA;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QXK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART0_RX_IRQHandler(void) {}
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -151,6 +151,7 @@ void UART0_IRQHandler(void) {
|
||||
uint8_t b = static_cast<uint8_t>(UART0->DR);
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void UART0_IRQHandler(void) {}
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -151,6 +151,7 @@ void UART0_IRQHandler(void) {
|
||||
uint8_t b = static_cast<uint8_t>(UART0->DR);
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void UART0_IRQHandler(void) {}
|
||||
|
@ -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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -118,6 +118,7 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void GPIOPortA_IRQHandler(void); // prototype
|
||||
@ -125,6 +126,7 @@ void GPIOPortA_IRQHandler(void) {
|
||||
// for testing..
|
||||
DPP::AO_Table->POST(Q_NEW(QP::QEvt, DPP::MAX_PUB_SIG),
|
||||
&l_GPIOPortA_IRQHandler);
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
|
||||
//............................................................................
|
||||
@ -143,6 +145,7 @@ void UART0_IRQHandler(void) {
|
||||
uint8_t b = static_cast<uint8_t>(UART0->DR);
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void UART0_IRQHandler(void) {}
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -153,6 +153,7 @@ void UART0_IRQHandler(void) {
|
||||
uint8_t b = static_cast<uint8_t>(UART0->DR);
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QXK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void UART0_IRQHandler(void) {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, NXP mbed-LPC1768 board, coopearative QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -117,6 +117,7 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void EINT0_IRQHandler(void); // prototype
|
||||
@ -124,6 +125,7 @@ void EINT0_IRQHandler(void) {
|
||||
// for testing..
|
||||
DPP::AO_Table->POST(Q_NEW(QP::QEvt, DPP::MAX_PUB_SIG),
|
||||
&l_EINT0_IRQHandler);
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, NUCLEO-H743ZI board, premptive QK kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -131,6 +131,7 @@ void USART3_IRQHandler(void) {
|
||||
QP::QS::rxPut(b);
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; // clear interrupt
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif // Q_SPY
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, NUCLEO-H743ZI board, cooperative QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -109,6 +109,7 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
|
||||
//............................................................................
|
||||
@ -125,6 +126,7 @@ void USART3_IRQHandler(void) {
|
||||
QP::QS::rxPut(b);
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; // clear interrupt
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif // Q_SPY
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, NUCLEO-H743ZI board, dual-mode QXK kernel
|
||||
// Last Updated for Version: 6.9.1
|
||||
// Date of the Last Update: 2020-09-21
|
||||
// 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
|
||||
@ -131,6 +131,7 @@ void USART3_IRQHandler(void) {
|
||||
QP::QS::rxPut(b);
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; // clear interrupt
|
||||
}
|
||||
QXK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif // Q_SPY
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, STM32 NUCLEO-L053R8 board, preemptive QK kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -136,6 +136,7 @@ void USART2_IRQHandler(void) { // used in QS-RX (kernel UNAWARE interrutp)
|
||||
uint32_t b = USART2->RDR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, STM32 NUCLEO-L053R8 board, cooperative QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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
|
||||
// ------------------------
|
||||
@ -111,6 +111,7 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void EXTI0_1_IRQHandler(void); // prototype
|
||||
@ -118,6 +119,7 @@ void EXTI0_1_IRQHandler(void) {
|
||||
// for testing..
|
||||
DPP::AO_Table->POST(Q_NEW(QP::QEvt, DPP::MAX_PUB_SIG),
|
||||
&l_EXTI0_1_IRQHandler);
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
#ifdef Q_SPY
|
||||
@ -128,6 +130,7 @@ void USART2_IRQHandler(void) { // used in QS-RX (kernel UNAWARE interrutp)
|
||||
uint32_t b = USART2->RDR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, STM32 NUCLEO-L053R8 board, preemptive QXK kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -140,6 +140,7 @@ void USART2_IRQHandler(void) { // used in QS-RX (kernel UNAWARE interrupt)
|
||||
uint32_t b = USART2->RDR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QXK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -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-30
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -134,6 +134,7 @@ void USART2_IRQHandler(void) { // kernel UNAWARE interrupt
|
||||
uint32_t b = USART2->DR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, STM32 NUCLEO-L152RE board, cooperative QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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
|
||||
// ------------------------
|
||||
@ -110,6 +110,7 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void EXTI0_IRQHandler(void); // prototype
|
||||
@ -117,6 +118,7 @@ void EXTI0_IRQHandler(void) {
|
||||
// for testing..
|
||||
DPP::AO_Table->POST(Q_NEW(QP::QEvt, DPP::MAX_PUB_SIG),
|
||||
&l_EXTI0_IRQHandler);
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
#if Q_SPY
|
||||
@ -126,6 +128,7 @@ void USART2_IRQHandler(void) { // kernel UNAWARE interrupt
|
||||
uint32_t b = USART2->DR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -136,6 +136,7 @@ void USART2_IRQHandler(void) { // kernel UNAWARE interrupt
|
||||
uint32_t b = USART2->DR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QXK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, STM32F4-Discovery board, preemptive QK kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -139,6 +139,7 @@ void USART2_IRQHandler(void) {
|
||||
uint32_t b = USART2->DR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART2_IRQHandler(void) {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, STM32F4-Discovery board, cooperative QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -120,6 +120,7 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
|
||||
//............................................................................
|
||||
@ -135,6 +136,7 @@ void USART2_IRQHandler(void) {
|
||||
uint32_t b = USART2->DR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART2_IRQHandler(void) {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, STM32F4-Discovery board, dual-mode QXK kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -139,6 +139,7 @@ void USART2_IRQHandler(void) {
|
||||
uint32_t b = USART2->DR;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QXK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART2_IRQHandler(void) {}
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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,8 +135,9 @@ void USART1_IRQHandler(void) {
|
||||
if ((DPP::l_uartHandle.Instance->ISR & USART_ISR_RXNE) != 0) {
|
||||
uint32_t b = DPP::l_uartHandle.Instance->RDR;
|
||||
QP::QS::rxPut(b);
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear int. */
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif // Q_SPY
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, STM32746G-Discovery board, cooperative QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -108,12 +108,14 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
//void GPIO_EVEN_IRQHandler(void); // prototype
|
||||
//void GPIO_EVEN_IRQHandler(void) {
|
||||
// // for testing...
|
||||
// AO_Table->POST(Q_NEW(QP::QEvt, MAX_PUB_SIG), &l_GPIO_EVEN_IRQHandler);
|
||||
// QV_ARM_ERRATUM_838869();
|
||||
//}
|
||||
|
||||
//............................................................................
|
||||
@ -128,8 +130,9 @@ void USART1_IRQHandler(void) {
|
||||
if ((DPP::l_uartHandle.Instance->ISR & USART_ISR_RXNE) != 0) {
|
||||
uint32_t b = DPP::l_uartHandle.Instance->RDR;
|
||||
QP::QS::rxPut(b);
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear int. */
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif // Q_SPY
|
||||
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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,8 +135,9 @@ void USART1_IRQHandler(void) {
|
||||
if ((DPP::l_uartHandle.Instance->ISR & USART_ISR_RXNE) != 0) {
|
||||
uint32_t b = DPP::l_uartHandle.Instance->RDR;
|
||||
QP::QS::rxPut(b);
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear interrupt */
|
||||
DPP::l_uartHandle.Instance->ISR &= ~USART_ISR_RXNE; /* clear int. */
|
||||
}
|
||||
QXK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#endif // Q_SPY
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: "Fly 'n' Shoot" game example, EFM32-SLSTK3401A board, QK kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -157,6 +157,7 @@ void USART0_RX_IRQHandler(void) {
|
||||
uint32_t b = GAME::l_USART0->RXDATA;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART0_RX_IRQHandler(void) {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: "Fly 'n' Shoot" game example, EFM32-SLSTK3401A board, QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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,12 +127,14 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&trigEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void GPIO_EVEN_IRQHandler(void); // prototype
|
||||
void GPIO_EVEN_IRQHandler(void) {
|
||||
// for testing...
|
||||
AO_Tunnel->POST(Q_NEW(QP::QEvt, MAX_PUB_SIG), &l_GPIO_EVEN_IRQHandler);
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
|
||||
//............................................................................
|
||||
@ -149,6 +151,7 @@ void USART0_RX_IRQHandler(void) {
|
||||
uint32_t b = GAME::l_USART0->RXDATA;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART0_RX_IRQHandler(void) {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
//****************************************************************************
|
||||
// Product: "Low-Power" example, cooperative QV kernel
|
||||
// Last Updated for Version: 6.4.0
|
||||
// Date of the Last Update: 2019-02-25
|
||||
// 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-2019 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
|
||||
@ -74,11 +74,13 @@ enum {
|
||||
// ISRs used in this project =================================================
|
||||
void SysTick_Handler(void) {
|
||||
QP::QF::TICK_X(0U, nullptr); // process time events for rate 0
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void Timer0A_IRQHandler(void) {
|
||||
TIMER0->ICR |= (1U << 0); // clear the Timer0 interrupt source
|
||||
QP::QF::TICK_X(1U, nullptr); // process time events for rate 1
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void GPIOPortF_IRQHandler(void) {
|
||||
@ -87,6 +89,7 @@ void GPIOPortF_IRQHandler(void) {
|
||||
QP::QF::PUBLISH(&pressedEvt, &l_SysTick_Handler);
|
||||
}
|
||||
GPIOF->ICR = 0xFFU; // clear interrupt sources
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
|
||||
// BSP functions =============================================================
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -147,6 +147,7 @@ void USART0_RX_IRQHandler(void) {
|
||||
uint32_t b = DPP::l_USART0->RXDATA;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART0_RX_IRQHandler(void) {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
///***************************************************************************
|
||||
// Product: DPP example, EFM32-SLSTK3401A board, cooperative QV kernel
|
||||
// Last updated for version 6.9.1
|
||||
// Last updated on 2020-09-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -117,12 +117,14 @@ void SysTick_Handler(void) {
|
||||
QP::QF::PUBLISH(&serveEvt, &l_SysTick_Handler);
|
||||
}
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
//............................................................................
|
||||
void GPIO_EVEN_IRQHandler(void); // prototype
|
||||
void GPIO_EVEN_IRQHandler(void) {
|
||||
// for testing...
|
||||
AO_Table->POST(Q_NEW(QP::QEvt, MAX_PUB_SIG), &l_GPIO_EVEN_IRQHandler);
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
|
||||
//............................................................................
|
||||
@ -138,6 +140,7 @@ void USART0_RX_IRQHandler(void) {
|
||||
uint32_t b = DPP::l_USART0->RXDATA;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QV_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART0_RX_IRQHandler(void) {}
|
||||
|
@ -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-21
|
||||
// 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. All rights reserved.
|
||||
// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -159,6 +159,7 @@ void USART0_RX_IRQHandler(void) {
|
||||
uint32_t b = DPP::l_USART0->RXDATA;
|
||||
QP::QS::rxPut(b);
|
||||
}
|
||||
QXK_ARM_ERRATUM_838869();
|
||||
}
|
||||
#else
|
||||
void USART0_RX_IRQHandler(void) {}
|
||||
|
@ -2,14 +2,14 @@
|
||||
/// @brief QK/C++ port to ARM Cortex-M, preemptive QK kernel, 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. All rights reserved.
|
||||
/// Copyright (C) 2005-2021 Quantum Leaps. 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 (__ARM_ARCH == 6) // Cortex-M0/M0+/M1 (v6-M, v6S-M)?
|
||||
|
@ -2,14 +2,14 @@
|
||||
/// @brief QK/C++ port to ARM Cortex-M, preemptive QK kernel, 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. All rights reserved.
|
||||
/// Copyright (C) 2005-2021 Quantum Leaps. 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 (__ARM_ARCH == 6) // Cortex-M0/M0+/M1 (v6-M, v6S-M)?
|
||||
|
@ -2,14 +2,14 @@
|
||||
/// @brief QK/C++ port to ARM Cortex-M, preemptive QK kernel, 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. All rights reserved.
|
||||
/// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -48,9 +48,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)?
|
||||
|
@ -2,14 +2,14 @@
|
||||
/// @brief QXK/C++ port to ARM Cortex-M, ARM-CLANG 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. All rights reserved.
|
||||
/// Copyright (C) 2005-2021 Quantum Leaps. 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 (__ARM_ARCH == 6) // Cortex-M0/M0+/M1 (v6-M, v6S-M)?
|
||||
|
@ -2,14 +2,14 @@
|
||||
/// @brief QXK/C++ port to ARM Cortex-M, GNU-ARM 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. All rights reserved.
|
||||
/// Copyright (C) 2005-2021 Quantum Leaps. 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 (__ARM_ARCH == 6) // Cortex-M0/M0+/M1 (v6-M, v6S-M)?
|
||||
|
@ -2,14 +2,14 @@
|
||||
/// @brief QXK/C++ port to ARM Cortex-M, QXK kernel, IAR-ARM 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. All rights reserved.
|
||||
/// Copyright (C) 2005-2021 Quantum Leaps. 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
|
||||
@ -42,9 +42,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)
|
||||
@ -55,6 +54,7 @@
|
||||
QXK_CONTEXT_SWITCH_(); \
|
||||
} \
|
||||
QF_INT_ENABLE(); \
|
||||
QXK_ARM_ERRATUM_838869(); \
|
||||
} while (false)
|
||||
|
||||
#if (__ARM_ARCH == 6) // Cortex-M0/M0+/M1 (v6-M, v6S-M)?
|
||||
|
Loading…
x
Reference in New Issue
Block a user