FAQs about Software Tools JEMBuilder and Charade

Discussion regarding tools such as JEMBuilder/Charade/JDEBUG etc.

Postby admin » Sun Nov 05, 2006 7:39 am

What does "BIST fail" mean?

The Charade target status window typically one displays "aj-PC/104: BIST Fail" whenever the target system has just been powered up with uninitialized memory. Assuming RAM memory is strapped at 0 or flash is not loaded.) This status condition is displayed whenever Charade detects the JEM fail status discrete is set. Only a RESET will awaken JEM from this state.

If the target status window displays "BIST Fail" after the operator has properly loaded memory and commanded a GO or Halt, RESET and RUN; then JEM has detected a failure with can be displayed with the Charade "Show status" command.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:39 am

How do I determine my parallel port address in Windows 2000

Log in as administrator and open the control panel. Then open the Computer Management short cut and select the Device Manager. Expand the Ports item in the tree on the right hand side of the window and double click on Printer Port (LPT1). When the Printer Port (LPT1) Properties page opens, select the Resources tab. The Input/Output Range entry will show the port address. It is typically 0378 - 037F, but other values are allowed.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:40 am

My program throws an exception in "RTS_Exception.trapExtendHeap(II)V" what is going on?

Your thread has consumed all the memory allocated to it.

quick Fix:

In JemBuilder: JVM0:Memory enlarge the memory allocated in the "inital heap size". If you are getting this error before you reach the main program, it is probably the executive heap that is running out of space. Enlarge the "Exec heap size" instead of the "initial heap size".

If the problem still persists, set a breakpoint just before the you enter the trapExtendHeap method. Run the program to that point and do a "show heap". This will report the status on all the heaps. From this information you will be able to determine which thread is consuming all the free heap.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:40 am

I seem to be missing interrupts when charade is in the background

If you move charade to the background it still tries to continue talking to the board. To do reads on the JEM2, the Charade drivers "halt" the board then scan the request in, get the data and report the results. If Charade is in the background, it will occasionally be swapped out after it has halted the JEM2. Causing serial buffer overruns, and I assume ethernet issues as well. This will be an issue using any feature of Charade that polls the board. For example the poll window, heap usage, charadeIO etc.

This will not be a problem on the aJ100 as it does not have to do a halt to read memory. It is only due to the bug in the JEM2, that the charade drivers have to halt the processor before reading data.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:40 am

I am debugging a program in flash, how do I get symbolics loaded?

To load symbolics into Charade for a program running out of flash use the following command "load build.jcf 1". Where build.jcf is the build.jcf for the program burned into flash. This command causes the map file containing the program's symbolic information to be loaded.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:41 am

My program stops in RTS_Exception.trapExecutionError what is going on?

On of the threads in the system has had a severe error. To find which thread use the "show thread" command. This will list the state of all the threads in the system. Scroll through this list, one of the threads should have a status other than "normal". This is the thread that generated the error.

For example:

[0x49fe00] com/ajile/drivers/ethernet/tcpip/tcp/TCPInput
Status: execution error -data misalignment
State: ready
Heap Control Block: [0x402100]
elapsedTime: 9.286ms
Priority base:[0xe] active:[0xe]
call stack:
[0] 000281c0 com/ajile/drivers/ethernet/tcpip/Packet.getChar(II)C
[1] 00023ec1 com/ajile/drivers/ethernet/tcpip/tcp/TCPHeader.mss(Lcom/ajile/drivers/ethernet/tcpip/Packet;ILjava/net/TCPSegment;)I
[2] 00023f2a com/ajile/drivers/ethernet/tcpip/tcp/TCPHeader.processOptions(Lcom/ajile/drivers/ethernet/tcpip/Packet;Ljava/net/TCPSegment;I)I
[3] 0002406f com/ajile/drivers/ethernet/tcpip/tcp/TCPHeader.createSegment(Lcom/ajile/drivers/ethernet/tcpip/Packet;)Ljava/net/TCPSegment;
[4] 00023c65 com/ajile/drivers/ethernet/tcpip/tcp/TCPInput.run()V
[5] 0001e5ab com/ajile/jem/RTS_Thread.outerExceptionHandler()V
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:41 am

When I iStep, I never get into my interrupt handers

When istep'ing in Charade interrupts are "held off". If you need to be getting interrupts services use the breakpoint commands instead of single stepping
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:42 am

My program stops in RTS_Exception.trapExecutionError what is going on?

Your program has generated a fatal trap. Use the Charade command "show thread". And scroll through the threads one of them will have a status other than normal. This is the thread that generated the execution error.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:42 am

How do I view the contents of previous stack frames?

The Byte Code View in Charade contains a drop down box. This contains the current call stack. By selecting items, you can see where in the byte stream and what the process stack contained when the succeeding method was called.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:43 am

Charade's "show map" command does not show all the methods in my class

The slink tool used by JemBuilder removes methods that are never referenced. If the method does not show up in the "show map" command. Make sure that you are referencing the method.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:43 am

What does "vm.0 breakPoint(0x12)" mean when my program stops?

The 0x12 represents the system trap number that was called. In this case 0x12 means the ExtendHeap trap was called. This happens when a thread exhausts its heap, and no garbage collector has been allocated to that heap. Most often this is caused when the executive thread has not been allocated enough memory. This is a option in JemBuilder: JVM0|Memory|Exec heap size. You can also verify that out of heap is the problem by using Charade's "show heap" command.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:44 am

Why can't Charade erase flash?

The current versions of Charade (2.62 and before) Have a bug in the "user flash erase all [offset]". The offset parameter is not interpreted correctly. The Charade command "user flash erase all" should be used instead.

If you use the command "user flash erase all" with out specifing an offset Charade assumes that flash is located at zero. You locate the flash at memory location zero, on the PC104 board by removing the jumper on JP1.

If it is not, the flash will not be erased. And Charade will hang trying to erase flash.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:44 am

"Unknown symbolic name" when flash loading an application

Currently when flash loading a program, the load.sod file does not load the symbolic data into Charade by default. If you try to set a breakpoint via its symbolic name, or more commonly, your default setup macro trys to set the breakpoint Charade will report "Unknown symbolic name" since it does not have the map file loaded. To set a breakpoint based on the symbolics, see the FAQ answer about loading symbolics.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:44 am

Stack Overflow

If when you run your program you get output similar to:

[TEXTIO.0]->Stack Overflow Trap:
[TEXTIO.0]-> Thread=0x0002b750
[TEXTIO.0]-> CSA=0x000bb1c4

Your program consumed all the allocated stack for the thread. JemBuilder allows the developer to assign the amount of stack space allocated to the main thread and any new threads via entries on the memory page.
Try using these options to increase the stack space for the thread that is running out of stack space.
If you are unable to increase the stack large enough for the program to run, check to see if recursion in the program is
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

Postby admin » Sun Nov 05, 2006 7:45 am

Why does my program stop with "TARGET HALTED BY EXT BKPT"?

If your program access invalid memory such as the charade command: "di #8000000", will generate an external breakpoint.
admin
Site Admin
 
Posts: 80
Joined: Sat Oct 28, 2006 6:14 am

PreviousNext

Return to Tools

Who is online

Users browsing this forum: No registered users and 1 guest

cron