From 277977b60b2b1349578863dd16e4095121d6c749 Mon Sep 17 00:00:00 2001 From: David Crocker Date: Sat, 9 Jan 2021 15:24:16 +0000 Subject: Fixes for gcc version 10 Also fixed shadow definitions --- src/Hardware/ExceptionHandlers.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/Hardware/ExceptionHandlers.cpp') diff --git a/src/Hardware/ExceptionHandlers.cpp b/src/Hardware/ExceptionHandlers.cpp index eb936130..ce6d81bc 100644 --- a/src/Hardware/ExceptionHandlers.cpp +++ b/src/Hardware/ExceptionHandlers.cpp @@ -89,7 +89,7 @@ extern "C" [[noreturn]] void hardFaultDispatcher(const uint32_t *pulFaultStackAd } // The fault handler implementation calls a function called hardFaultDispatcher() -extern "C" [[noreturn]] void HardFault_Handler() noexcept __attribute__((naked)); +extern "C" void HardFault_Handler() noexcept __attribute__((naked)); void HardFault_Handler() noexcept { __asm volatile @@ -113,7 +113,7 @@ extern "C" [[noreturn]] void memManageDispatcher(const uint32_t *pulFaultStackAd } // The fault handler implementation calls a function called memManageDispatcher() -extern "C" [[noreturn]] void MemManage_Handler() noexcept __attribute__((naked)); +extern "C" void MemManage_Handler() noexcept __attribute__((naked)); void MemManage_Handler() noexcept { __asm volatile @@ -137,16 +137,16 @@ extern "C" [[noreturn]] void wdtFaultDispatcher(const uint32_t *pulFaultStackAdd } #ifdef __LPC17xx__ -extern "C" [[noreturn]] void WDT_IRQHandler() noexcept __attribute__((naked)); +extern "C" void WDT_IRQHandler() noexcept __attribute__((naked)); void WDT_IRQHandler() noexcept { LPC_WDT->MOD &=~((uint32_t)(1<<2)); //SD::clear timout flag before resetting to prevent the Smoothie bootloader going into DFU mode #else # if SAME70 // SAME70 has a separate interrupt line for the RSWDT -extern "C" [[noreturn]] void RSWDT_Handler() noexcept __attribute__((naked)); +extern "C" void RSWDT_Handler() noexcept __attribute__((naked)); void RSWDT_Handler() noexcept # else -extern "C" [[noreturn]] void WDT_Handler() noexcept __attribute__((naked)); +extern "C" void WDT_Handler() noexcept __attribute__((naked)); void WDT_Handler() noexcept # endif { @@ -171,7 +171,7 @@ extern "C" [[noreturn]] void otherFaultDispatcher(const uint32_t *pulFaultStackA // 2017-05-25: A user is getting 'otherFault' reports, so now we do a stack dump for those too. // The fault handler implementation calls a function called otherFaultDispatcher() -extern "C" [[noreturn]] void OtherFault_Handler() noexcept __attribute__((naked)); +extern "C" void OtherFault_Handler() noexcept __attribute__((naked)); void OtherFault_Handler() noexcept { __asm volatile @@ -189,10 +189,13 @@ void OtherFault_Handler() noexcept // We could set up the following fault handlers to retrieve the program counter in the same way as for a Hard Fault, // however these exceptions are unlikely to occur, so for now we just report the exception type. -extern "C" [[noreturn]] void NMI_Handler () noexcept { SoftwareReset(SoftwareResetReason::NMI); } -extern "C" [[noreturn]] void UsageFault_Handler () noexcept { SoftwareReset(SoftwareResetReason::usageFault); } +extern "C" void NMI_Handler () noexcept __attribute__((naked)); +extern "C" void UsageFault_Handler () noexcept __attribute__((naked)); +extern "C" void DebugMon_Handler () noexcept __attribute__((naked)); -extern "C" [[noreturn]] void DebugMon_Handler () noexcept __attribute__ ((alias("OtherFault_Handler"))); +extern "C" void NMI_Handler () noexcept { SoftwareReset(SoftwareResetReason::NMI); } +extern "C" void UsageFault_Handler () noexcept { SoftwareReset(SoftwareResetReason::usageFault); } +extern "C" void DebugMon_Handler () noexcept __attribute__ ((alias("OtherFault_Handler"))); // FreeRTOS hooks that we need to provide extern "C" [[noreturn]] void stackOverflowDispatcher(const uint32_t *pulFaultStackAddress, char* pcTaskName) noexcept -- cgit v1.2.3