This section will be updated periodically, and included in the help file downloadable from our web site. Last update: 08/18/2002
Troubleshooting for Win2000, WinNT installation:
If you get driverX error messages while running our software for
the first time in Win2000, WinXP or WinNT, try the following procedure:
(The error is probably due to an earlier installation of driverX.
)
1) Go to the Windows\system32\drivers directory (Note that the name
may not be “Windows”, it is the name of your “Windows directory” for Win
NT or Win2000). Look for a file called “driverx.sys” and rename it
driverx.sys.old , or delete it if you are more courageous. ( Our software
will reinstall the current version of driverX)
2) Reboot your system and run the AQ430 tools.
3) Click on “Options/hardware check”. You should get a message about
“successful installation of driverx” and, unfortunately, rebooting....
4) Reboot (last time if all goes well) and run the AQ430 tools.
5) Click on “Options/hardware check” This time, if you have a FET
tools attached to your parallel port, the system should tell you that it
found the MSP430 chip on your LPTx port
In the registry, the "parameters" key under driverX should have
2 entries , if you had an IAR tool installed previously: FET (for the IAR
tools), and AQ430 for our tools
The function keys don’t seem to have any effect and the corresponding menu options are greyed:
when menu options are greyed, it is generally because the chip is running and the corresponding operation cannot be performed while the chip is running. There is a blinking yellow icon (of a running figure) on the icon bar when the chip is running. Another indication is at the bottom on the screen, in the second information pane. This text window displays the current status of the chip (stopped, running, etc…). There are 2 stop icons to stop the chip. Click here for a description of the icons in the debug menu If you use the “stop now” option, you may end up in asm mode. To reset your C program, click on F10 and then F4.
How can I step over C functions?:
when in C mode, you can use the “step over” debug menu command (F8) to step over C instructions. However, this command only works in non-real-time mode, which can be painfully slow depending on the C instruction being stepped over (for example, a function call). A faster way to perform this task is to use the “run to cursor” debug command (Shift F10): place the cursor on the source line you want to “run to”, and then click on SHFT+ F10. This will run the program at full speed until the line where the cursor is positioned is hit. Since this command uses a hardware breakpoint, it is only available if not all hardware breakpoints are set.
Can I put breakpoints in asm mode and C mode?:
It is possible to have breakpoints in both modes. However, when you run in C mode and encounter a breakpoint that was created in asm mode (i.e. “in-between” C lines), AQ430 will stop, then try to resynchronize with the C source code (i.e. stop on a PC address that is at the beginning of the assembly code generated for a C line) . Depending on where exactly the breakpoint was hit, this resynchronization can take a long time. It is indicated by the blinking “running” icon, and also by a message in the user information window. To stop the chip during this period, use the “stop now” icon.
How do I add files to a project?:
If the project is compiled and loaded, you
need to “unload” the project first. There are two ways to do this:
· close the CPU window (use the X at
the top right corner of the CPU window), which will close all project related
windows except the project window and , possibly, the opened source files
· Use the Project/Unload menu option
Once the extra windows are closed, you can
use the INS key (if the project window has the focus), or the Project/Add
Files command to add files to a project. To remove files from a project,
use the DEL key (after selecting the file you want to remove), or the Project/Delete
File menu option.
Why do sometimes several lines seem to be associated with a single breakpoint?
A breakpoint is associated with a program counter value. If, due to optimization or other causes, several source lines end up associated with the same program counter value, they will all be highlighted in red if a breakpoint is set at that PC value.
How can I find the size of my program, and how much RAM it uses?
This information can be found in the map file
that is automatically created by the linker. Starting from version 2.0.0.8,
it will also be displayed in the "User Info" window at link time. The map
file has the same name as the project, and extension ".rxc.map". It contains
a list of the segments (SG) and symboles (SY) defined in the program. It
also contains information on the starts and ends of RAM and ROM areas.
The first available RAM location can be found on the line in the map file
containing "SY __end_ram0_"
How can I port a C project from one PC to another?
There are certain precautions to take to port a C project from one
PC to another. The easiest way is to make sure that the files are located
in exactly the same directory structure (including drive letters) on both
PCs. Of course , this method is not always possible, so
AQ430 offers another way to accomplish the porting task.
When a project is saved, the file names are saved with their path
RELATIVE to the project’s file name. In other words, if the same relative
structure is conserved between the two computers, the project can be ported
easily, but for one detail: the cstart.asm file!
This file is automatically included when a C project is cretaed,
and we use the file that is diistributed with the AQ430 software. This
file is located in the main AQ430 directory, and it is unlikely that its
relative path with respect to the project file will be conserved, when
porting a project to a different PC (unless both directory structures are
identical, but we want to avoid this constraint).
Since the cstart.asm file is a general purpose file, it is doubtful
that it will be used as is in many real world applications, so it
is a good idea for the user to create their own cstart.asm file, and put
it in the project directory (where the project file resides). For the time
being, the user would have to perform this operation “manually” remove
the original cstart.asm from the project, then add the “custom” cstart.asm.
When a project is copied to another PC, the user should always use
the “rebuild all” command, otherwise the AQ430 tools will not be able to
find the source code in C source level debugging: the reason is that the
full path names to the source files is included in the object files (and
the executable file). The “make” command will think that nothing has to
be rebuilt, since the executable file will be more recent than all the
object files. This is why a “rebuild all” is necessary when trying to run
a “ported project” for the first time. Symptoms of this problem would be
the system not stopping at the “main” label when starting a C project in
“C mode” after a “make”.
Note that upon opening a project, the system automatically appends
the AQ430 include directory to the list of include directories (if not
already present), so that the user does not have do anything in this area.
However, if other include diretories were entered with their full paths
(including drive letter), they may not exist on the second system and this
may cause a problem during compiling.
Future versions of the AQ430 tools will include a scheme to avoid
this potential pitfall.
How can I locate const variables at specific
address?
For example:
I would like to place:
const int Tab[1,2,3];
const long lo=123435;
starting at address 0x1200, and be sure
that there is free space up to 0x13ff (whole memory segment);
If your source file is called "myfile.c", then you can place
all const data starting at location 0x1200 using the linker command
line option
"ldseg=myfile_data_const=0x1200".
There is no way to reserve the balance of the space between
the end of the const data and 0x13ff, however, except perhaps by
declaring a const array of a suitable size follow your declarations
or by just writing the whole thing in assembler.
To locate a program segment at a particular address:
For example
the code corresponding to:
void loader(void)
{
.....
}
should be located from 0xFC00 to 0xFFDF
If the source code is "myfile.c", then you can put all code
from that file starting at location 0xfc00 by using the command line option
"ldseg=myfile_code=0xfc00".
How can I force the compiler to not initialize some RAM variables during startup?
You can suppress the initialization of variables using either
the compiler command line option "+norom1" or the pragma:
#pragma +norom1
The pragma is better if you are using the IDE, because it does not allow you to set a specific option for a specific file.
This pragma should always appear at the beginning of any source
file in which it is used and its operation essentially extends through
to the end of the file. Therefore I recommend that you put those
variables which you do NOT want initialized in a separate file and
put the above pragma at the beginning of that file.