====== Frequently Asked Questions ======
===== Questions Related to the Development Environment =====
Press the button "Reopen Connection" and try again. If you are using openOCD: did the server start correctly? On Windows, a separate command window should have opened where you can see log output by this server. Check your deep preferences if this command window does not open.
When the connection to the target seems to work erratically, check the power supply of the target.
Go to [[eclipse:views#classtreeview|ClassTreeView]].
To inquire the load of your system together with all active tasks go to [[eclipse:views#taskview|TaskView]].
===== Questions Related to the Runtime Library =====
Probably you wrote code in Java like "System.out.println("val=" + a). The '+' operator is currently not supported with strings, as there is no class StringBuilder in the runtime library.
Various causes may lead to this:
* You have to define which interface is dedicated for System.out and you also have to initialize this interface.
* If you use SCI1 and the USB-BDI interface: the serial communication will be tunneled through the USB connection. You can display this connection with any terminal program or in the terminal view of Eclipse. For this the USB connection must be open. Try to reopen the connection by pressing "Reopen USB-Connection". Make sure that the USB-Target-Log is not in suspend mode.
* Check if the settings (e.g. baudrate) for the interface on the target correspond with the settings on the host.
This can have several causes, see [[runtime_library:exceptions:start|Exceptions and Errors]]. At boot time, the code section is checked for proper content. If this check fails, the LED starts blinking and the program execution stops. \\
Later on when a stack check fails, the LED blinks with a different blink pattern. The blinking can also indicate that a java exception occurred.
Make sure that the reset pin of the processor is not connected to ground. The reset signal will be internally tied to ground for a certain time until it is released.
The inputs Int5, Int6 and Int7 must not be tied to Gnd at startup. If so, the processor will choose a wrong mode and the PLL cannot lock. Debugging is possible, but the processor runs in limp mode.
Division of two values of type long is a rather expensive operation in terms of cycles used. If the divisor is smaller than 2^15 floating point register are used for the division. In an exception service routine or any other method which is called by such an exception service routine the floating point unit is not available by default. Dividing two longs then causes a floating point unavailable exception. You have to enable floats by using **US.ENABLE_FLOATS()**.
Yes. Each time a new object is created on the heap, the remaining free heap size is checked and if considered to be to small, an automatic garbage collection is run.
The heap manager throws a ''RuntimeException'' when no free space is left on the heap. A ''RuntimeException'' is also thrown if the size of an array exceeds 216 bytes.