mirror of https://github.com/rusefi/bldc.git
Added UART interrupt priority hack
This commit is contained in:
parent
3d8df40d7d
commit
aac50698af
|
@ -427,41 +427,43 @@ void sd_lld_start(SerialDriver *sdp, const SerialConfig *config) {
|
|||
if (config == NULL)
|
||||
config = &default_config;
|
||||
|
||||
uint32_t prio = config->speed > 200000 ? 4 : 7;
|
||||
|
||||
if (sdp->state == SD_STOP) {
|
||||
#if STM32_SERIAL_USE_USART1
|
||||
if (&SD1 == sdp) {
|
||||
rccEnableUSART1(FALSE);
|
||||
nvicEnableVector(STM32_USART1_NUMBER, STM32_SERIAL_USART1_PRIORITY);
|
||||
nvicEnableVector(STM32_USART1_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_USART2
|
||||
if (&SD2 == sdp) {
|
||||
rccEnableUSART2(FALSE);
|
||||
nvicEnableVector(STM32_USART2_NUMBER, STM32_SERIAL_USART2_PRIORITY);
|
||||
nvicEnableVector(STM32_USART2_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_USART3
|
||||
if (&SD3 == sdp) {
|
||||
rccEnableUSART3(FALSE);
|
||||
nvicEnableVector(STM32_USART3_NUMBER, STM32_SERIAL_USART3_PRIORITY);
|
||||
nvicEnableVector(STM32_USART3_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_UART4
|
||||
if (&SD4 == sdp) {
|
||||
rccEnableUART4(FALSE);
|
||||
nvicEnableVector(STM32_UART4_NUMBER, STM32_SERIAL_UART4_PRIORITY);
|
||||
nvicEnableVector(STM32_UART4_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_UART5
|
||||
if (&SD5 == sdp) {
|
||||
rccEnableUART5(FALSE);
|
||||
nvicEnableVector(STM32_UART5_NUMBER, STM32_SERIAL_UART5_PRIORITY);
|
||||
nvicEnableVector(STM32_UART5_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_USART6
|
||||
if (&SD6 == sdp) {
|
||||
rccEnableUSART6(FALSE);
|
||||
nvicEnableVector(STM32_USART6_NUMBER, STM32_SERIAL_USART6_PRIORITY);
|
||||
nvicEnableVector(STM32_USART6_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -423,41 +423,43 @@ void sd_lld_start(SerialDriver *sdp, const SerialConfig *config) {
|
|||
if (config == NULL)
|
||||
config = &default_config;
|
||||
|
||||
uint32_t prio = config->speed > 200000 ? 4 : 7;
|
||||
|
||||
if (sdp->state == SD_STOP) {
|
||||
#if STM32_SERIAL_USE_USART1
|
||||
if (&SD1 == sdp) {
|
||||
rccEnableUSART1(FALSE);
|
||||
nvicEnableVector(STM32_USART1_NUMBER, STM32_SERIAL_USART1_PRIORITY);
|
||||
nvicEnableVector(STM32_USART1_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_USART2
|
||||
if (&SD2 == sdp) {
|
||||
rccEnableUSART2(FALSE);
|
||||
nvicEnableVector(STM32_USART2_NUMBER, STM32_SERIAL_USART2_PRIORITY);
|
||||
nvicEnableVector(STM32_USART2_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_USART3
|
||||
if (&SD3 == sdp) {
|
||||
rccEnableUSART3(FALSE);
|
||||
nvicEnableVector(STM32_USART3_NUMBER, STM32_SERIAL_USART3_PRIORITY);
|
||||
nvicEnableVector(STM32_USART3_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_UART4
|
||||
if (&SD4 == sdp) {
|
||||
rccEnableUART4(FALSE);
|
||||
nvicEnableVector(STM32_UART4_NUMBER, STM32_SERIAL_UART4_PRIORITY);
|
||||
nvicEnableVector(STM32_UART4_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_UART5
|
||||
if (&SD5 == sdp) {
|
||||
rccEnableUART5(FALSE);
|
||||
nvicEnableVector(STM32_UART5_NUMBER, STM32_SERIAL_UART5_PRIORITY);
|
||||
nvicEnableVector(STM32_UART5_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
#if STM32_SERIAL_USE_USART6
|
||||
if (&SD6 == sdp) {
|
||||
rccEnableUSART6(FALSE);
|
||||
nvicEnableVector(STM32_USART6_NUMBER, STM32_SERIAL_USART6_PRIORITY);
|
||||
nvicEnableVector(STM32_USART6_NUMBER, prio);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -294,6 +294,8 @@
|
|||
#define STM32_SERIAL_USE_UART4 TRUE
|
||||
#define STM32_SERIAL_USE_UART5 TRUE
|
||||
#define STM32_SERIAL_USE_USART6 TRUE
|
||||
// NOTE: These are ignored as there is a hack in the chibios UART driver to increase these
|
||||
// based on the baud rate.
|
||||
#define STM32_SERIAL_USART1_PRIORITY 7
|
||||
#define STM32_SERIAL_USART2_PRIORITY 7
|
||||
#define STM32_SERIAL_USART3_PRIORITY 7
|
||||
|
|
Loading…
Reference in New Issue