This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F5419: Reason for going MSP430 in to exit or abort condition.

Part Number: MSP430F5419
Other Parts Discussed in Thread: MSP430FR5889,

Can we know on what fault conditions the controller decides itself to go to exit or abort condition ?

I am using only UART and timer Module , Many devices are connected in RS-485 bus.  One of the Device is using PIC Microcontroller. But all the Devices connected are having same baud rate.

Any framing error of UART causes MSP430 controller to goto exit stae?

Regards,

Century

  • What you mean by exit or abort condition? Please describe

  • Perhaps the exit() or abort() function(s) of the standard C library. They are executed if a program is terminated normally or aborted (signaled by the OS to abort).

    A MCU application should not use it, i.e. never return from the main function.

  • This is a duplicate of the earlier thread MSP430F5419 - Controller gets hanged.

    And the answer is the same: check the call stack. (And if you don't know what that is or where to find it, ask.)

  • We are not using it anywhere in our program. But the PC goes and sit there . We are not able to find the reason for this. Further more developments with above problem is described below.
    if we work with 19200 baud rate and talk with connected slaves then microcontroller gets hanged after few iterations.
    same logic if we try 9600 baud rate it never gets hang. out of connected slaves we have one from PIC Microcontrollers (19231 baud rate) and one from TERIDIAN microcontroller(19200 Baud rate) and two from MSP (19200 Baud rate).


    MASTER : MSP430FR5438

    SLAVES : 1) MSP430FR5889
    2) MSP430F5419
    3) PIC Microcontroller
    4) TERIDIAN Microcontroller

    Protocol : MODBUS - RTU

    Case 1 : when all slaves connected to master.
    Observation : Controller gets hanged.

    case 2 : When MSP and TERIDIAN is connected master.
    Observation : Controller never get hanged.

    case 3 : When MSP and PIC connected to master.
    Observation : Controllers gets hanged

    case 4 : when MSP and TERIDIAN connected to master .
    Observation : Controller never gets hanged.

    So from the above observations we found that when connected with PIC microcontroller Master controller gets hanged.
    Then we reduced the baud rate of all to 9600. Still the issue remained.
    Now we gave a small delay for the PIC slave before it responds back with the data. what we saw was magic. works perfectly . But still we are concerned about the issue since we are not knowing on what faults the controller will go to exit or abort conditions. We are expecting specific answer by now since the problem is defined rather clearly.

    Regards,
    Century
  • This is where my control is sitting now . 

  • Can you please guide as to how to find the stack call. ?
  • I don't use CCS. As far as I know, this should be shown in the "Debug" tab, but there is nothing else in your screenshot.

    What is the value of the SP register? What are the contents of the memory at that address?
  • Clemens Ladisch said:
    I don't use CCS.

    Neither do I. The stack size is usually part of the project settings. Check the CCS documentation.

    However, upon a stack overflow, the core rather ends up in the hardfault handler, and does not do a controlled termination.

    We are not using it anywhere in our program.

    When using a C lib, you pull in that exit/abort function as well. I still suspect you are dropping out of the main function. Check the call stack when the debugger ends up there.

  • Vijeth K Shastry said:
    Can you please guide as to how to find the stack call. ?

    Your screen shot shows you are using the now obsolete Code Composer Essentials. As I don't have Code Composer Essentials I can't comment on how to find the complete stack call.

    Can you upgrade to Code Composer Studio?

    That is because Code Composer Studio is an active produce, and so you will get better support.

    Also, does your program use any RTOS or any other library which may call exit() or abort() after detecting an error?

**Attention** This is a public forum