This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Intermittent System Failure

Hello,

I'm building an embedded application on a Dallas DS89C450 microcontroller. RTX-51 Full Version is used as the RTOS.

Everything seems to work fine although I'm facing with two abnormal intermittent system failures which will be tried to be described as follows:

1. The system hangs for a while and the watchdog timer resets the system. However, there is no infinite loop in a critical section inside the code which may cause the task with the highest priority in the system to be ceased to work. This task is responsible for kicking the watchdog circuitry.

2. The flow of the code somehow jumps to somewhere which is not supposed to work at that moment. And this section of the code is responsible for clearing the EEPROM content on a user request. EEPROM is accessed by the processor thru its data/address bus.

A same simple test procedure is applied on the system repeatedly and thus, the state of the system doesn't seem to change. However, 2 or 3 times / 30 trials ends up with such a catastrophic result.

Here are my questions:

1. Can it be caused by a stack overflow?
2. Would you recommend me to increase task stack sizes? If yes, how much?

Any ideas?

Thanks in advance.
Hakan

Parents
  • What I could find in my *.map file goes as follows:

    * * * * * * * * * * * D A T A M E M O R Y * * * * * * * * * * * * *
    000000H 000007H 000008H --- AT.. DATA "REG BANK 0"
    000008H 00000DH 000006H BYTE UNIT DATA ?RTX?INT_MASK?RTXCONF
    00000EH 00000FH 000002H BYTE UNIT DATA ?C?LIB_DATA
    000010H 000017H 000008H --- AT.. DATA "REG BANK 2"
    000018H 00001FH 000008H --- AT.. DATA "REG BANK 3"
    000020H 000021H 000002H BYTE BITADDR DATA ?RTX?RTX_BIT_RELBYTE_SEG
    000022H.0 000023H.5 000001H.6 BIT UNIT BIT ?RTX?RTX_BIT_SEG
    000023H.6 000023H.7 000000H.2 BIT UNIT BIT ?RTX?FLT_BITSEG
    000024H.0 000024H.0 000000H.1 BIT UNIT BIT _BIT_GROUP_
    000024H.1 000024H 000000H.7 --- --- **GAP**
    000025H 000047H 000023H BYTE UNIT DATA ?RTX?RTX_RELBYTE_SEG
    000048H 00005FH 000018H BYTE UNIT IDATA ?RTX?FTASKDATA?2
    000060H 000077H 000018H BYTE UNIT IDATA ?RTX?FTASKDATA?3
    000078H 00007DH 000006H BYTE UNIT IDATA _IDATA_GROUP_
    00007EH 000091H 000014H BYTE UNIT IDATA ?STACK

    Are you asking about the last line that I made bold?

Reply
  • What I could find in my *.map file goes as follows:

    * * * * * * * * * * * D A T A M E M O R Y * * * * * * * * * * * * *
    000000H 000007H 000008H --- AT.. DATA "REG BANK 0"
    000008H 00000DH 000006H BYTE UNIT DATA ?RTX?INT_MASK?RTXCONF
    00000EH 00000FH 000002H BYTE UNIT DATA ?C?LIB_DATA
    000010H 000017H 000008H --- AT.. DATA "REG BANK 2"
    000018H 00001FH 000008H --- AT.. DATA "REG BANK 3"
    000020H 000021H 000002H BYTE BITADDR DATA ?RTX?RTX_BIT_RELBYTE_SEG
    000022H.0 000023H.5 000001H.6 BIT UNIT BIT ?RTX?RTX_BIT_SEG
    000023H.6 000023H.7 000000H.2 BIT UNIT BIT ?RTX?FLT_BITSEG
    000024H.0 000024H.0 000000H.1 BIT UNIT BIT _BIT_GROUP_
    000024H.1 000024H 000000H.7 --- --- **GAP**
    000025H 000047H 000023H BYTE UNIT DATA ?RTX?RTX_RELBYTE_SEG
    000048H 00005FH 000018H BYTE UNIT IDATA ?RTX?FTASKDATA?2
    000060H 000077H 000018H BYTE UNIT IDATA ?RTX?FTASKDATA?3
    000078H 00007DH 000006H BYTE UNIT IDATA _IDATA_GROUP_
    00007EH 000091H 000014H BYTE UNIT IDATA ?STACK

    Are you asking about the last line that I made bold?

Children