Java offers exception and errors. Errors are thrown by the virtual machine and we do not currently use them as we have no virtual machine at all.
Exceptions can be devided into checked and unchecked exceptions. Checked exceptions must be caught by a calling method, which is ensured by the Java compiler. Unchecked exceptions, such as
NullPointerException, must be caught when initializing classes or when calling thread or task methods. Of course, you are free to catch such unchecked methods in your code by yourself.
All unchecked Java exceptions must be caught by the system. In such a case, an string is written to the System.err stream. Make sure, that you have directed this stream to an existing serial interface.
SCI sci = SCI.getInstance(SCI.pSCI1); sci.start(9600, SCI.NO_PARITY, (short)8); System.out = new PrintStream(sci.out); System.err = System.out
UART3.start(9600, UART3.NO_PARITY, (short)8); System.out = new PrintStream(UART3.out); System.err = System.out
Interrupts must be globally enabled for the serial interface to work. This is done automatically as soon as the Decrementer class is loaded, which itself is a system class and does not have to be manually included.
|1x every second||code was loaded with error||FCS error in kernel|
|1x once||exception thrown in command||unchecked exception caught in Task.loop|
|2x once||exception thrown in command||unchecked exception caught in Kernel.loop|
|3x once||exception thrown in action method of task command||unchecked exception caught in Task.loop|
|5x every second||Exception thrown||unchecked exception caught in kernel|
|1x followed by 2x every second||Machine Check Exception||bus error, PPC exception|
|1x followed by 3x every second||System Call||sc-instruction, PPC exception|
|1x followed by 4x every second||Floating Point Unavailable Exception||FPU switched off, PPC exception|
The RCPU of the mpc555 has a built-in debug feature. Some of the PPC exceptions can cause the processor to enter debug mode, instead of running the appropriate exception handler. However, this can happen only in case of the processor running out of RAM. If you run the program out of flash, you can never enter debug mode (which wouldn't make sense).
Debug mode is indicated on the MPC555 USB Background Debugging Interface (USB-BDI) with the blue LED.