Jump to content

    
Sign in to follow this  
jenya7

Определить источник исключения

Recommended Posts

Програма падает в исключениу

/*
** ===================================================================
**     Method      :  Cpu_Cpu_Interrupt (component MK10FN1M0LQ12)
**
**     Description :
**         This ISR services an unused interrupt/exception vector.
**         This method is internal. It is used by Processor Expert only.
** ===================================================================
*/
PE_ISR(Cpu_Interrupt)
{
  /* This code can be changed using the CPU component property "Build Options / Unhandled int code" */
  PE_DEBUGHALT();
}

Как в KDS определить какая функция вызвала исключение? В IAR есть Call Stack окно в котором видна последняя функция.

В KDS есть вкладка Debug и в ней я вижу.

 

debug.png.580617cd26dea861a99028ea2b9ef4c3.png

Это значит что исключение вызвал main()? Но в  main() есть много функций. Как спуститься до причины проблемы?

 

Я вообще не понимаю при чем здесь main(). В проекте включен FreeRTOS с одним таском. По идее main после инициализации передает управление шедулеру. Если я вылетел в исключение то из таска.

Edited by jenya7

Share this post


Link to post
Share on other sites

В стек заглянуть, посмотреть откуда переход в обработчик произошел. только сначала надо определить из пользовательского режима или из привилегированного режима произошел переход, sp же два

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this