IPC@CHIP® RTOS-PPC – API Documentation

Header image

Main page


ERRORS Command

The ERRORS shell command lists system and application program faults to the screen.

System Shut-Down Faults

This error record is held in the system's non-volatile RAM area. It indicates the cause of the most recent system fatal error which lead to a watchdog reset when the system was not able to continue operation.

The total number of shut-down faults that have occurred since the last time the system's fault history was reset ('R' command line option) will be indicated.

The set of shut-down faults listed here are followed by a brief explanation as to what causes the respective fault.

"Critical heap memory shortage"

The system required additional heap memory for page table adjustments and this memory was not available.

"Fault in ISR"

One of the exception faults listed in the next section has occurred within an Interrupt Service Routine. Provided that no additional exception faults have occurred in the mean-time (the exception fault buffer is only one deep), the nature of this fault will be printed out on the console below this shut-down fault report.

"Interrupt Controller vector invalid"

This fault should never be seen unless perhaps a hardware problem.

"Interrupt Request Blocks exhausted"

The system's 31 slot RTX ISR service request queue was exhausted. This fault could be caused by too long a dwell inside an RTX ISR callback.

"Task kill failed"

The system was trying to kill a task which had caused one of the exception faults that are listed below. This kill operation failed, possibly due to the system's supply of 128 message envelopes being exhausted. The system may momentarily require one of these objects to perform the task kill.

This indication can also result when a task exit callback executing in Supervisor triggers an exception.



Exception Faults

This error record is held in the system's non-volatile RAM area. A one deep buffer records the most recent exception such as an MMU violation. These errors do not necessarily lead to a system shut-down, but in some cases they may. Faults which occur within interrupt service procedures will lead to a system shut-down. Faults in tasks will lead to that specific task being automatically killed by the system, unless this task has registered a TRY/CATCH exception handler on its program stack.

A count of the total number of recorded faults is displayed, followed by details for the most recent fault. Data is stored only for this most recent exception, which will be overwritten by any subsequent.

The 'D' command line argument to the ERRORS shell command can be used to dump the contents of the CPU's registers at the time of this exception to allow lower level fault analysis. Note that the floating point registers are not recorded unless the task owned the FPU at the time of the exception.

Here is a mapping between PowerPC exception vectors and the corresponding text messages shown on the console.

Exception 0x0200:

     "Machine Check Exception"
A hardware error has occurred, most likely due to accessing an area of the system's address space in which no hardware is responding.

Exception 0x0300:

     "Illegal data read from location 0x..."
     "Illegal data write to location 0x..."
An attempt to access data in an area of the system address space where this form of access is not permitted has failed. This will usually be due to an attempted write. Each program may write only to its own memory space, unless write access into another program's space was obtained via the RTX_MemWindow() function.
The system's policy for reading memory is less restrictive. Programs can read any of the system's low memory RAM, or read from other program's space.

Exception 0x0400:

     "Instruction access exception at 0x..."
An attempt to execute an instruction in an area of the system address space which is not marked as executable has failed.

Exception 0x0600:

     "Alignment at address 0x..."
An alignment exception has occurred.

Exception 0x0700:

     "Trap"
     "User executed privileged instruction"
     "Illegal opcode"
A program exception has occurred.

Exception 0x0900:

     "Time-out, n TB ticks"

A task which had a execution time limit has exceeded its specified limit.

Exception 0x0C00:

     "Invalid System Call"

A program has made a system call with an invalid service index in r0.

Exception 0x1000:

     "Instruction TLB miss"

The attempted IP was not within the system's virtual address space, resulting in a TLB miss which could not be resolved by the system's page tables.

Exception 0x1100:

     "Data load TLB miss from location 0x..."

The attempted read was not within the system's virtual address space, resulting in a TLB miss which could not be resolved by the system's page tables.

Exception 0x1200:

     "Data store TLB miss from location 0x..."

The attempted write was not within the system's virtual address space, resulting in a TLB miss which could not be resolved by the system's page tables.



Run-Time Faults

These messages indicate various system problems.

The flash memory problems and the internal error highlighted below with bold print are non-volatile messages. These will persist across power resets until the ERRORS RESET command is used to clear them.

All other messages are cleared by a power reset.

Message

Meaning

CORRUPT MEMORY ERROR

Memory corruption detected

TCP/IP INTERNAL FATAL ERROR, Task taskID

The specified task has been suspended due to encountering a fatal error in the system's TCP/IP stack.

REACHED TCP/IP MEMORY LIMIT

The TCP/IP memory limit specified in the chip.ini file has been reached.

TCP/IP MEMORY ALLOC ERROR

TCP/IP stack attempted an allocation from the system heap. This allocation failed.

FATAL NETWORK ERROR: n

The Ethernet device driver has encountered a failure. The number provides an indication where this failure was detected.

  • 1 - Ethernet driver open failed
  • 2 - Ethernet device restart failed

FLASH WRITE (or ERASE) ERROR ...

Flash memory is defective. Repeated attempts to modify flash memory contents failed. (Flash memory holds the A: drive and @CHIP-RTOS-PPC image.)

FLASH WRITE (or ERASE) WEAK ...

Flash write required more than a single write attempt before it verified. (This error would indicate that the flash memory is nearing the end of its life span.)

LOW MEMORY ERROR: Task taskID

An attempt to allocate memory from the system heap has failed. The most recent task for which this has occurred is indicated by task ID.

LOW SPACE ERROR: Task taskID

An attempt to increase the size of the program heap space has failed due to lack of available address space to extend this program's image. In some cases this problem can be avoided by reserving the program additional address space using the setSpaceReserve macro.

HARDWARE ERROR: n

A hardware error has been detected. The number indicates where this detection occurred.

  • 1 - USB Host Controller reset failed

EEPROM ERROR

The readout from the EEPROM where the system serial number is stored has failed.

USB HUB ERROR: x

The USB hub driver encountered an error. The displayed hex number is encoded as follows:
Byte 3 (MSB):

  • 1 - Hub has an unexpected configuration.
  • 2 - Hub could not be handled. (e.g. communication error)
  • 3 - There's a problem with the power supply of an attached hub
  • 4 - Hub has detected an over current condition.
  • 5 - Hub has detected a general port error. (e.g. due to babble)

Byte 2:
Address of the corresponding hub. (0 refers to the root hub)
Byte 1:
Number of the resp. port. (0 refers to the hub itself, 1 to the first port etc.)
Byte 0 (LSB):
Reserved for future use (currently 0)

INTERNAL ERROR

Some assertion has failed in the @CHIP-RTOS-PPC software. A path code will indicate which assert failed.

WATCHDOG MANAGER NOT REFRESHED: handle

The process that has registered to the watchdog manager under the given handle has failed to refresh the watchdog manager in time.

BECK DRIVER ERROR n: x

A Beck driver or library has asserted a fatal error.
n: Error number
x: Additional information (hex number), error dependent

APPLICATION ERROR n: x

A user application has asserted a fatal error. (See BIOS_Set_Error() API.)
n: Error number
x: Additional information (hex number), error dependent

Note: Information for only the most recent error of each catagory in the above table is maintained. For example, if a second APPLICATION ERROR is reported, this will overwrite any previously recorded APPLICATION ERROR.





Top of page | Main page

Copyright © 2017 Beck IPC GmbH
Generated on Thu Jan 26 16:21:35 2017 by Doxygen 1.6.1