Hello
Our application runs over nRF52840 + SDK16 + freeRTOS. While integrating libuarte library with our application we found an issue whereby if nrf_libuarte_async_init() is called with p_config->int_prio = 6 then this functions returns NRF_ERROR_INVALID_PARAM because of the condition below:
ret_code_t nrf_libuarte_async_init(const nrf_libuarte_async_t * const p_libuarte, nrf_libuarte_async_config_t const * p_config, nrf_libuarte_async_evt_handler_t evt_handler, void * context) { ret_code_t ret; if (p_config->int_prio == APP_IRQ_PRIORITY_LOWEST || ((p_libuarte->p_app_timer && NRF_LIBUARTE_ASYNC_WITH_APP_TIMER) && (p_config->int_prio > APP_TIMER_CONFIG_IRQ_PRIORITY))) { // [8Power] Change here from ">=" to ">" NRF_LOG_ERROR("Too low priority. Lowest possible priority is %d", APP_IRQ_PRIORITY_LOW); return NRF_ERROR_INVALID_PARAM; } ... ... }
We think that the check (p_config->int_prio >= APP_TIMER_CONFIG_IRQ_PRIORITY) is wrong and should be replaced with (p_config->int_prio > APP_TIMER_CONFIG_IRQ_PRIORITY) since priority of 6 should be acceptable in a system with Softdevice enabled.
Please share your thoughts.
Kind regards
Shrey