JStamp Home

JStamp Tutorials - Charade Debugger Tips


When I start Charade, what does the "BIST Fail" message mean?
BIST is an acronym for Built In Self Test. BIST looks for some specific patterns in external memory. This information will always be present if you are resetting JStamp and attempting to boot from memory which does not contain a valid program. In other words if you are powering up JStamp, and it is booting from SRAM instead of flash, the contents of SRAM will be random, BIST will not find its configuration data when it boots up and you will see the "BIST Fail" message. If you have a valid, verified program in flash or SRAM you should never see this message. If your aJile chip is damaged it's possible for this message to display. If you see "BIST Fail" even after loading and verifying a valid program, contact us about repair.

Charade can't connect to my JTAG adapter hardware
Please start with the JTAG setup and debugging tutorial here. If the parallel port selection is correct, CharadeDrv is installed and running (this is the parallel port access driver used by Charade to access the JTAG hardware using our parallel port adapter), and the hardware isn't damaged, it has to work.

What does the Charade "**** Bus Interface Locked ****" message mean?
Charade looks at the address and strobe pins on the controller. If they don't seem to be acting "normal", Charade issues this message. You can move past this by using the halt and reset buttons in the Charade user interface. Hit the PC Escape key a couple of times to get Charade's attention. If Charade just can't seem to re-synch with the target system, exit and restart it.

What is the Charade inline test?
Inline runs through all the Java instructions. It executes out of external memory, so it tests the data bus and a portion of address lines. Inline runs a counter on IOA, and also increments some values which can be displayed in a Charade poll window. JStamp and SaJe both have an LED on IOA0, so if it blinks and the poll values are changing, the test is running successfully.

What are the Charade ".sod" files?

".sod" files are simply ascii text script files which automate using Charade. Read some of the provided sod files for some ideas of how they are useful. You can create your own in a text editor. For example, I create a simple sod file to change to a project directory, since Charade always starts up in the directory in which its executables are located. Here's one that changes to a directory and loads another script file there:

cd x:\incoming\ajile_java\mac
@eeprommacs.sod


Customizing Charade's configuration file - charade.cfg

The file charade.cfg is located in the Charade sub-folder, one level below your aJile tools root. In my case this is e:\ajile\Charade\charade.cfg

charade.cfg is simply a text file which, among other things, contains the data used to create the pulldown "Device" list on the Charade toolbar. Devices appear in the menu in the same order in which they appear in the file. The first device is Charade's startup default. So you can easily re-order your device list or add a new device (your own board which uses a JStamp or aJile chips) by editting this file.

However this is not all you need to add a device and program it. There is a Charade Configurations folder which contains additional files used to fully define a "device".


I can't seem to set a breakpoint on a data value or range of values
This feature was supported by an earlier version of the aJile chips. The current aJ80 and aJ100 can only set a breakpoint on access to an address, not a specific data value or range of values.

On JStamp I can only seem to set the lowest byte in memory...
This memory problem is due to having the wrong Charade device selected. If I have the aJ-100 selected in Charade and am really connected to JStamp, here's my result:
-> set 0 12345678
-> du
00000000 = 00000078 0000005c 00000004 000000ba x.\...:.

Note that a dump also shows only the low byte - this is because of the mismatch between Charade thinking there is a 32-bit external memory path when it's really 8 bits.

Now if I change the Charade device to aJ-80, and try this again, here's the result:
-> set 0 12345678
-> du 0
00000000 = 12345678 162eec5c fe00df04 46fd69ba x4\...:}