diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/src/Core/main.c | 2 | ||||
-rw-r--r-- | src/common/src/GPIO/usart.c | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/common/src/Core/main.c b/src/common/src/Core/main.c index da3a27b..b308f08 100644 --- a/src/common/src/Core/main.c +++ b/src/common/src/Core/main.c @@ -225,7 +225,7 @@ static void launcher_task(void __attribute__ ((unused))*pvParameters) "TaskNF", 3*configMINIMAL_STACK_SIZE, (void*) NULL, - tskIDLE_PRIORITY + 2UL, + tskIDLE_PRIORITY + 3UL, &task_handle); if (!task_handle) { diff --git a/src/common/src/GPIO/usart.c b/src/common/src/GPIO/usart.c index 535b062..8bcd80a 100644 --- a/src/common/src/GPIO/usart.c +++ b/src/common/src/GPIO/usart.c @@ -134,7 +134,9 @@ void usart_process_char(char c) { usart_debug("Unknown command %c\r\n", c); } -void usart_gps_process_char(char c) { +void usart_gps_process_char(char c) +{ + BaseType_t require_context_switch = pdFALSE; if (nmea_sentence_last_written == 0) { if (c == '$') { @@ -151,7 +153,7 @@ void usart_gps_process_char(char c) { int success = xQueueSendToBackFromISR( usart_nmea_queue, nmea_sentence, - NULL); + &require_context_switch); if (success == pdFALSE) { trigger_fault(FAULT_SOURCE_USART); @@ -165,4 +167,5 @@ void usart_gps_process_char(char c) { usart_clear_nmea_buffer(); } + portYIELD_FROM_ISR(require_context_switch); } |