AQ430 Code Development Tools: Differences between versions
(Bugs are highlighted in RED)

Previous history


Released 8/12/03

  • We have fixed a bug in the peephole optimizer script, which was causing it to incorrectly remove a compare of a register with zero when the register was set with an and or an xor and when the conditional branch following needed to test carry or overflow. Now the compiler will remove the compare with zero in this case only if the following branch is je/jne/jz/jnz/jn. The script also checks for bis, as well as xor/and.
  • We fixed an off by one error in the new memcpy() function.
  • With hw_mul=2, char multiplies were failing. For straight multiplications, the compiler was failing to use byte move instructions for memory operands. For MULLSSL ops (e.g. char*char -> long), the compiler was failing to zero-/sign-extend char operands before multiplying.
  • We have corrected a problem with the code generated when multiplying a char variable by 3, 5, or 6, whereby the compiler was using a word access instead of a byte access in some cases.
  • We have added a new debugging function, which allows the user to store and/or display variable values (similar to a printf function). This function can also be used to input values from a simulated input file. (See help file, under: Project menu, debug options)


Released 9/19/03

  • Fix bug in editor, related to word selection under cursor when word is on first line, or first column of text file
  • Added  project option to store object files in different folder
  • Changed max number of groups from 20 to 75
  • Fixed problem with display of watched enum bytes.
  • Added more C examples
  • Improved C code for index computation in arrays.
  • Added “Register Write” breakpoints for chips equipped with Enhanced Emulation Modules


Released 11/03/03

  • Fixed a bug, reported whereby the linker was failing to correctly handle object files with coff string tables that were large enough to span two or more object file records. (“cannot find string index A for offset B: sym/aux C”)
  • Fixed a bug, whereby the compiler was generating incorrect code for "*long1 -= *long2".
  • Fixed a bug, whereby an assignment of the result of a left shift to a non-simple address (like an array reference) was incorrectly causing the address to be evaluated twice, resulting in a redundant address calculation.
  • Added terminal emulator feature, to debug RS232 communication
  • Added feature to reset and run a program on a target, without loading a project


Released 1/21/04

  • Fixed minor bug in disassembler, which incorrectly displays some instructions using the constant generator. This has no effect on code generation
  • Fixed bug in watch window related to local variables not yet in scope when included.
  • Fixed bug that disabled the HW multiplier option for F16x
  • Fixed a bug that messed up line numbering when source files did not end with a carriage return
  • Speed up programming of target
  • Added archiving of projects using wzzip


Released 3/2/2004

  • New “wizard” for USART
  • New feature in compiler to place RAM variables at pre-defined addresses
  • Watch support for multidimensional arrays up to dimension 4
  • Watch support for structures of any depth
  • Support of latest chips (F1610, F1611)
  • Added manual entry of data for debug printf function
  • Added some options in compiler to deal with potentially unwanted octal constants
  • Fixed display bug in splitter RAM Window


Released 5/8/2004

  • Added a few accelerator keys. Custom values are now shown in menu items
  • Consolidated all versions of AQ430 (AQ430, AQ430-4k, AQ430-449, AQ430-169) into one
  • Fixed a problem in watch of multidimensional arrays and structures of structures
  • Added support for SoftBaugh’s USBP JTAG interface
  • Added support for longer names in assembler


Released 6/17/2004

  • Added Core Simulator ! (also simulates HW multiplier if present, but not interrupts)
  • Made the LPT port part of the project file, so that 2 instances of AQ430 can now be run on the same PC, on different LPT ports.
  • Fixed problem with launching tools by double clicking project file
  • Fixed a few errors with instruction cycles computation (profiler, simulator)


Released 8/16/2004

  • Fixed a few remaining problems in simulator
  • Fixed problem with long variables in printf debug function
  • Fixed one problem in assembler, related to symbolic addressing in particular cases
  • Fixed an unsigned char comparison problem in C compiler
  • Added possibility to change text and background color in editor
  • Added possibility to remove Archelon artwork (sob!)
  • Added feature to reopen source files when project is open.


Released 10/11/2004

  • We changed AQ430PEEP to correct a problem whereby it was deleting any compare with zero which followed a BIS instruction.
  • We changed the compiler code generator in AQ430C to generate more optimal code for things like

      long x;

      x -= 0x20000;

  • We fixed a bug, which was introduced in compiler versions starting July 17, 2004, whereby, in a function containing both (1) local register variables used in inline assembly code and (2) the use

of one or more operators (like multiply) which are implemented by a function call at runtime, some local register variables could be placed in registers which would be altered by a call to a runtime function.

  • In the compiler, we increased the maximum size of the command line passed to the C preprocessor, when called by the compiler, to 1024 bytes from 300 bytes.
  • In the compiler, we corrected a problem whereby the compiler was not compiling code for a switch statement expression, which contained side effects (like an assignment, a volatile variable reference, or a function call), when the switch statement contained no cases.
  • The “store program from chip” command has been modified so that it also saves the program as a list of data statements (extension .qdt) when saving in TI txt mode. This can be used to include a compiled program into another project.



Released 1/7/2005

  • Fixed bug in display of disassembler , when constant generator was used in BIS instruction
  • There are now up to 4 possible “do not erase” zones to protect areas of the program’s memory that the user wishes to conserve intact. We also speeded up the programming operation when these “exclusion zones” are used.
  • We improved the debugging capabilities for code that is on a target but not included in the current project (helpful for bootstrap code, for example)
  • We added support for fractional arithmetic in the C compiler. See the aq430.htm help file for details
  • We added support for the TI USB FET
  • We added support for the MSP430F2xx series.


Released 4/23/2005

  • Beta support for “long long” integers (64 bit arithmetic)
  • Added “add files..” choice to context menu in project window
  • We added the "+wundef" command line option to AQ430PP. The new option

causes AQ430PP to issue a warning message whenever you use a preprocessor

symbol which has not been defined (except in "#if defined(name)").

  • We fixed a bug in the passing of arguments to functions with a variable

number of arguments

  • We fixed a bug in the code generation, whereby expressions of the form a = a*k + b(where k is a constant 3, 5, or 6) produced incorrect results.
  • We fixed a bug in AQ430C and AQ430PACK, which was causing variables requested to be at a specific address to be placed into a segment aligned mod 2. e.g. for the declaration "char x @ 0x801;", the system was trying to align the one segment containing "x"  mod 2, when it was clearly requested to be at a specific address.
  • We fixed a bug in the "printf" functions, which was causing the integer zero not to be printed by simple integer format specifiers. This was because the minimum precision specifier for integers erroneously defaulted to -1.  It now defaults to 1.
  • We fixed a bug in AQ430C, which was causing an information memory variable (in _DMEM2), with a specified load address, to be placed in data RAM instead of in information memory. e.g.
  • We fixed a bug in AQ430C, which was causing it to use a .bss directive instead of a .zero directive to reserve space for any part  of a partially initialized variable, which was not initialized.
  • We fixed a problem in the AQ430 and AQ430C commands, whereby it was basically impossible to pass arguments containing embedded strings to sub-commands. The official way to do this is now to put quotes around the whole argument and escape (be preceding with backslash) any quote inside the argument.  For instance,

      "-DFILE=\"name containing blanks\""

  • We fixed a bug in the front of AQ430C, according to which an optimization was causing the loss of the attribute that a tree node contained a runtime call. This problem could appear in array subsript calculations which required a multiply and a non simple subscript expression (like "a - 3").
  • We fixed the IDE crash problem that sometimes occurred when no target was present. It turned out that it was caused by the checking of the “always save in TI txt” box in project options.


Released 6/23/2005

  • Support for automatic CRC computation (see htm help file)
  • Final version for long long integers
  • We greatly decreased the runtime for long left shifts and unsigned long right shifts by constant values > 16.
  • We improved the code for jump table switch statements by using a single unsigned compare against the switch value instead of two signed compares.


Released 8/16/2005

  • Added support for bcd_add intrinsic functions
  • Added cycle count in disassembly files



Released 1/13/2006

  • Added support for MSP430F20xx (Spy Bi Wire) and MSP430F22x4
  • Added software fix for F21x1 hardware bug


Released 6/18/2006

  • Fixes problem with source files coming from Unix without CR+LF at end of each line
  • Now supports TI’s EZ430-F2013 FET


Released 9/2/2006

  • Fixed problem with support for MSP430F22x4 (SpyBiWire / 4 Wire USB JTAG)
  • Added support for Olimex JTAG-TINY (setup through  usbinstall.exe)


Released 2/6/2007

  • Added support for MSP430F23xx



  • Added support for MSP430F22x2
  • Fixed bug that may have caused problems with installations lacking some admin privileges



  • Added support for MSP430F42x0



  • Added support for MSP430F43x1
  • Fixed a problem with the assembler, whereby it was restricting the range of pc-relative addresses to (-32768,32767). It now allows a range of (-32768,65536), on the understanding that the resulting 16 bit values are treated as signed.



  • Fixed pesky bug that could occur “randomly” when mouse went over certain string variables before project was completely loaded.



  • Fixed bug in interrupt vector table for F24x



  • Fixed bug for watch of one dimensional arrays
  • Added support for .dat files, to supply command line parameters to C compiler



  • Fixed bug that cause loaded program to run just after being loaded, under certain circumstances



  • Reissue of same version (no changes in qvarch430tools.exe) to fix a bug in libraries that should have been fixed with the previous issue (comparison of floating point numbers)



  • Fixed bug introduced in in programming of txt file with SpyBiWire interface



  • Fixed bug in watch of structures with bit fields