mirror of https://github.com/ArduPilot/ardupilot
HAL_ChibiOS: disable fatal exceptions for DMA errors
this zeros-watchdog was caused by a SPI DMA error on STM32F405: https://discuss.ardupilot.org/t/crash-with-4-2-0-beta-and-4-3-0-daily-bdshot/83297 we had incorrectly left these internal errors enabled when asserts were not enabled. That led to a osalSysHalt() without these we get an spi_fail internal error, caught by the SPIDevice code
This commit is contained in:
parent
d44ad0a2a7
commit
d75e0c7a1c
|
@ -37,6 +37,12 @@
|
||||||
// include generated config
|
// include generated config
|
||||||
#include "hwdef.h"
|
#include "hwdef.h"
|
||||||
|
|
||||||
|
#ifdef HAL_CHIBIOS_ENABLE_ASSERTS
|
||||||
|
#define STM32_DMA_ERROR_HOOK(devp) osalSysHalt("DMA failure")
|
||||||
|
#else
|
||||||
|
#define STM32_DMA_ERROR_HOOK(devp) do {} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(STM32F1)
|
#if defined(STM32F1)
|
||||||
#include "stm32f1_mcuconf.h"
|
#include "stm32f1_mcuconf.h"
|
||||||
#elif defined(STM32F3)
|
#elif defined(STM32F3)
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
||||||
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) STM32_DMA_ERROR_HOOK(i2cp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ICU driver system settings.
|
* ICU driver system settings.
|
||||||
|
@ -154,7 +154,7 @@
|
||||||
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
||||||
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) STM32_DMA_ERROR_HOOK(spip)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings.
|
* ST driver system settings.
|
||||||
|
@ -172,7 +172,7 @@
|
||||||
#define STM32_UART_USART1_DMA_PRIORITY 0
|
#define STM32_UART_USART1_DMA_PRIORITY 0
|
||||||
#define STM32_UART_USART2_DMA_PRIORITY 0
|
#define STM32_UART_USART2_DMA_PRIORITY 0
|
||||||
#define STM32_UART_USART3_DMA_PRIORITY 0
|
#define STM32_UART_USART3_DMA_PRIORITY 0
|
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) STM32_DMA_ERROR_HOOK(uartp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* WDG driver system settings.
|
* WDG driver system settings.
|
||||||
|
|
|
@ -127,7 +127,7 @@
|
||||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
||||||
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) STM32_DMA_ERROR_HOOK(i2cp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ICU driver system settings.
|
* ICU driver system settings.
|
||||||
|
@ -168,7 +168,7 @@
|
||||||
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
||||||
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) STM32_DMA_ERROR_HOOK(spip)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings.
|
* ST driver system settings.
|
||||||
|
@ -186,7 +186,7 @@
|
||||||
#define STM32_UART_USART1_DMA_PRIORITY 0
|
#define STM32_UART_USART1_DMA_PRIORITY 0
|
||||||
#define STM32_UART_USART2_DMA_PRIORITY 0
|
#define STM32_UART_USART2_DMA_PRIORITY 0
|
||||||
#define STM32_UART_USART3_DMA_PRIORITY 0
|
#define STM32_UART_USART3_DMA_PRIORITY 0
|
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) STM32_DMA_ERROR_HOOK(uartp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* WDG driver system settings.
|
* WDG driver system settings.
|
||||||
|
|
|
@ -389,7 +389,7 @@
|
||||||
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) STM32_DMA_ERROR_HOOK(i2cp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I2S driver system settings.
|
* I2S driver system settings.
|
||||||
|
@ -398,7 +398,7 @@
|
||||||
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
|
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
|
||||||
#define STM32_I2S_SPI2_DMA_PRIORITY 1
|
#define STM32_I2S_SPI2_DMA_PRIORITY 1
|
||||||
#define STM32_I2S_SPI3_DMA_PRIORITY 1
|
#define STM32_I2S_SPI3_DMA_PRIORITY 1
|
||||||
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
|
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) STM32_DMA_ERROR_HOOK(i2sp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ICU driver system settings.
|
* ICU driver system settings.
|
||||||
|
@ -485,7 +485,7 @@
|
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI4_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI4_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) STM32_DMA_ERROR_HOOK(spip)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings.
|
* ST driver system settings.
|
||||||
|
@ -523,7 +523,7 @@
|
||||||
#define STM32_UART_UART4_DMA_PRIORITY 0
|
#define STM32_UART_UART4_DMA_PRIORITY 0
|
||||||
#define STM32_UART_UART5_DMA_PRIORITY 0
|
#define STM32_UART_UART5_DMA_PRIORITY 0
|
||||||
#define STM32_UART_USART6_DMA_PRIORITY 0
|
#define STM32_UART_USART6_DMA_PRIORITY 0
|
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) STM32_DMA_ERROR_HOOK(uartp)
|
||||||
|
|
||||||
#define STM32_IRQ_UART1_PRIORITY 12
|
#define STM32_IRQ_UART1_PRIORITY 12
|
||||||
#define STM32_IRQ_UART2_PRIORITY 12
|
#define STM32_IRQ_UART2_PRIORITY 12
|
||||||
|
|
|
@ -239,7 +239,7 @@
|
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C4_DMA_PRIORITY 3
|
#define STM32_I2C_I2C4_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) STM32_DMA_ERROR_HOOK(i2cp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI driver system settings.
|
* SPI driver system settings.
|
||||||
|
@ -252,7 +252,7 @@
|
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI4_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI4_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) STM32_DMA_ERROR_HOOK(spip)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings.
|
* ST driver system settings.
|
||||||
|
@ -276,7 +276,7 @@
|
||||||
#define STM32_UART_USART3_DMA_PRIORITY 0
|
#define STM32_UART_USART3_DMA_PRIORITY 0
|
||||||
#define STM32_UART_UART4_DMA_PRIORITY 0
|
#define STM32_UART_UART4_DMA_PRIORITY 0
|
||||||
#define STM32_UART_UART5_DMA_PRIORITY 0
|
#define STM32_UART_UART5_DMA_PRIORITY 0
|
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) STM32_DMA_ERROR_HOOK(uartp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver system settings.
|
* USB driver system settings.
|
||||||
|
|
|
@ -420,7 +420,7 @@
|
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C4_DMA_PRIORITY 3
|
#define STM32_I2C_I2C4_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) STM32_DMA_ERROR_HOOK(i2cp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ICU driver system settings.
|
* ICU driver system settings.
|
||||||
|
@ -527,7 +527,7 @@
|
||||||
#define STM32_SPI_SPI4_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI4_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI5_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI5_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI6_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI6_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) STM32_DMA_ERROR_HOOK(spip)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings.
|
* ST driver system settings.
|
||||||
|
@ -554,7 +554,7 @@
|
||||||
#define STM32_UART_USART6_DMA_PRIORITY 0
|
#define STM32_UART_USART6_DMA_PRIORITY 0
|
||||||
#define STM32_UART_UART7_DMA_PRIORITY 0
|
#define STM32_UART_UART7_DMA_PRIORITY 0
|
||||||
#define STM32_UART_UART8_DMA_PRIORITY 0
|
#define STM32_UART_UART8_DMA_PRIORITY 0
|
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) STM32_DMA_ERROR_HOOK(uartp)
|
||||||
|
|
||||||
#define STM32_IRQ_LPUART1_PRIORITY 12
|
#define STM32_IRQ_LPUART1_PRIORITY 12
|
||||||
|
|
||||||
|
|
|
@ -220,7 +220,7 @@
|
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C4_DMA_PRIORITY 3
|
#define STM32_I2C_I2C4_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) STM32_DMA_ERROR_HOOK(i2cp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PWM driver system settings.
|
* PWM driver system settings.
|
||||||
|
@ -266,7 +266,7 @@
|
||||||
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) STM32_DMA_ERROR_HOOK(spip)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings.
|
* ST driver system settings.
|
||||||
|
@ -294,7 +294,7 @@
|
||||||
#define STM32_UART_USART3_DMA_PRIORITY 0
|
#define STM32_UART_USART3_DMA_PRIORITY 0
|
||||||
#define STM32_UART_UART4_DMA_PRIORITY 0
|
#define STM32_UART_UART4_DMA_PRIORITY 0
|
||||||
#define STM32_UART_UART5_DMA_PRIORITY 0
|
#define STM32_UART_UART5_DMA_PRIORITY 0
|
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) STM32_DMA_ERROR_HOOK(uartp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver system settings.
|
* USB driver system settings.
|
||||||
|
|
Loading…
Reference in New Issue