AnsweredAssumed Answered

LPUART_DRV_SendDataBlocking in bootloader not allowing User application to print logs

Question asked by Akshay Kulkarni on Mar 3, 2020
Latest reply on Mar 5, 2020 by Rares Vasile

Hello,

I have two applications bootloader and UserApp. In bootloader, I am using UART to print my trace logs using LPUART_DRV_SendDataBlocking API. Before jumping to UserApp, I am doing all deinit calls

ex. 

LPUART_DRV_AbortSendingData(INST_LPUART1);
LPUART_DRV_Deinit(INST_LPUART1);
INT_SYS_DisableIRQGlobal();
EDMA_DRV_Deinit();
RTC_DRV_Deinit(RTCTIMER1);

JumpToUserApplication(<given address>);

But after that , I do not get any print from UserApp (it appears as if UserApp is not running at all from serial terminal, but I suspect UART is not working.)

 

To have an experiment, I changed a UART call from  LPUART_DRV_SendDataBlocking to  LPUART_DRV_SendData (no blocking) then with above deinitializations, I can see proper debug logs getting printed from application. 

 

Can you please help me on, how I can still use  LPUART_DRV_SendDataBlocking and can get proper logs from application as well ?

I feel, I am missing something in the process of deinitiazation in bootloader before jumping to UserApp. 

More details about the setup :

-Board S32K148 EVB

-Flashing a binary (having bootloader as well as UserApp) in one go with JLink.exe

- For UART logs , I am using Teraterm and OpenSDA micro USB

 

Outcomes