AQ430 Frequently Asked Questions

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, 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 "". 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

 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

 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.