Changes in Release 1.2
C Compiler
- Added GNU-compatible ?> binary operator to deliver the maximum of
its arguments.
- Added GNU-compatible ?< binary operator to deliver the minimum of
its arguments.
- Allow @ intexpr after a declaration to define the absolute
address of a variable without allocating storage for it, e.g. int x @ 0x9f0.
- Allow @ strcon after a declaration to easily allocate a variable or
a function to the section strcon, e.g. int config @ "INFOA" or
int config @ "INFOA" = 10, or even void loader(void) @ "BOOTSECT" {
... }.
- Recognise an underlying 16-bit by 16-bit multiply when performing a 32-bit
multiply on two sign-extended or zero-extended operands and use a specialised
multiply that is smaller and faster. Do the same for 32-bit by 32-bit
multiply when performing a 64-bit multiply which benefits double
support routines.
- Recoded internal code generation routines for the >> operator which leads
to smaller and faster code.
- Extended __interrupt to allow more than one vector to be placed inside the
brackets.
- Addresses of global variables and functions are now placed into registers
to reduce code size and increase execution speed.
- Modified entry/exit sequences to better support linker's cross jumping
optimization.
- Added _DADD16, _DADD32, _DADD64 decimal add intrinsic
functions to <in430.h>.
- Added _DSUB16, _DSUB32, _DSUB64 decimal subtract
intrinsic functions to <in430.h>.
- Added _DNEG16, _DNEG32, _DNEG64 decimal negate
intrinsic functions to <in430.h>.
- Corrected push of unsigned char in the variadic
portion of a function call.
- Corrected a corruption problem on return when a dereferenced
pointer coincides with the function return
registers.
- Corrected pattern for x & ~y to correctly deal with long and long
long values.
Linker
- Implemented inter-module cross calling optimization which significantly
reduces code size at the expense of execution speed.
- Implemented inter-module cross jumping optimization which reduces code
size.
- Implemented inter-module common tail merging which reduces code size.
- Implemented inter-module jump threading which increases execution speed
and can reduce code size.
- Implemented inter-module code motion that rearranges code to reduce the
number of jumps and hence overall code size.
C Library
- Recoded a number of assembly code routines so they work better when cross
calling.
- Recoded a small number of trigonometric, hyperbolic, and logarithmic routines to increase performance and reduce code
size.
- Added runtime support for new ?> and ?< operators.
- Recoded __vfprintf to use less code and data memory.
- Added detection of NaN and INF to __vfprintf and output nan/NAN and
inf/INF when appropriate.
CrossStudio
- Reorganised the project property groups.
- Added extra property groups for fine control of optimizations performed by
the linker.
- New icons for target interface connections.
- Code templates can now be edited and are remembered.
- Assembly code files now have their own indentation settings in the text
editor and environment options.
- Added support for Rowley USB CrossConnect and SoftBaugh
Replicator connected to a CrossConnect.
- The simulator's cycle counter can be reset and paused by right clicking
on the cycle counter pane in the status bar.
- Support for new F15x/F16x parts and water meter parts.
- Added Print Preview capability, now found on the File menu
and in the standard tool bar.
- Printing now works for both HTML and text editor documents.
- The Print tool button on the toolbar prints immediately
to the default printer, as in Microsoft Office, without bringing up a Print dialog.
The default printer is shown in the tool tip of the Print tool
button.
- The Project menu has been split into Project and Build menus to reduce
the size of a combined menu.
- The Edit | Find menu has been promoted to the menu bar
and renamed Search.
- A new environment property (Environment Options | Build | General | Before
Debugging | Build before Debug) will automatically build a project when
out of date rather than displaying a dialog.
- Added the Clipboard Ring which operates rather like the
Office Clipboard in Microsoft Office and identically to the Clipboard
Ring in Microsoft Visual Studio .NET.
- Added Auto Step to the Debug menu to animate program stepping.
- The SFR Window has been combined into the Registers
Window. There are now four general register windows that can each
be configured to display one or more groups of SFR and CPU registers.
- The mouse middle button brings up the Goto Function menu.
- The Goto Function menu now works on assembly language files and displays
the list of labels in the source file.
- The way that errors are highlighted in the code editor can be configured
as no highlighting, underline error, flag error in the margin, or underline
and flag the error.
- For Windows, the IDE now stores its settings in the registry under the
current user key rather the local machine key.
- The Build Log and Target Log have been rewritten to display relevant errors,
warnings, and notes in a nicer form.
- The Call Stack window can optionally display the calling source file,
line number, and call address.
- Added Enable Interrupt Processing and Disable
Interrupt Processing tool buttons to the Debug toolbar.
- The properties window dialog doesn't stay focused when other selections
are made.
- Fixed problem with the debugger printing arrays of structs that contained
padding bytes.
- Fixed problem with the debugger not clearing temporary breakpoints with Step
Over.
- Register window now saves the radix when it is changed for a given entry.
- Fixed problem exiting when the session file was read only.
- The debug_putchar function now outputs a single byte.
- Additional assembler/compiler/linker properties are now held as a
string list so the property inheritance system applies to them.
- Fixed problem with date check and string list properties.
- Support for file differencing.
- Support for Visual SourceSafe integration.
- Registers window can now display bitfields.
Assembler
- Now recognises the EXTERN declaration (in addition to
EXTRN) to be compatible with IAR.
- Type checking implemented to ensure that byte and word writes are to items
of same widths.
Archiver
- -c option fixed to remove old members of an existing archive.
Target Interfaces
- Added support for Rowley USB CrossConnect and SoftBaugh
Replicator connected to a CrossConnect.
- FET is now supported with a custom designed device driver which enables
usage of plug-in parallel port cards, predictable download performance and
device serialisation.
Changes in Release 1.1.1
C Compiler
- Added binary constants which are written with a leading
0b, e.g. 0b1010 is 10 decimal. Binary
constants are signalled with a warning when the -ansi command
line option is given. The C preprocessor also supports binary constants.
- Corrected a problem in the switch statement as in
some cases the 1.0.0 compiler would destroy the contents of a register used
in
the expression.
- The long double type is now treated identically to the double type
when Treat 'double' as 'float' is set to Yes.
- Single-bit bitfield manipulation and access now generates much denser
code.
- Correctly implemented the __monitor function attribute
to support Salvo from Pumpkin, Inc.
- Corrected a corruption problem on return when a multi-register
value is allocated to coincide with the function return registers.
- The compiler now fragments the code of a function which enables further
size reduction optimizations by the linker.
- Code generation for 0(SP) source address is now always
coded using @SP which reduces the size of code.
- for statement generation now recognizes more special forms
and codes appropriately.
- Narrowing and widening conversions corrected to ensure that new registers
are used when required.
- Corrected a code generation problem compiling x *= y when -mmpy specified.
- Corrected a problem in the spiller which caused incorrect code generation
on reload.
- Corrected optimization applied for x & y when y is
non-constant.
Target Interfaces
- The FET target interface now has a RAM Fill Value property
that is used to fill the RAM before a program is downloaded. If this property
is
empty,
the
RAM is not filled and is left intact. You can use the RAM Fill Value
as a watermark to see how far the stack descends during program execution.
- Added the PRGS430 Serial Programmer target interface to support the Texas
Instruments PRGS430 serial programmer.
- Added the SoftBaugh Flash Replicator target interface
to support the SoftBaugh flash replicator.
- Added the Gessler Flash Bootloader target
interface to support the Gessler flash bootloader.
Editor
- Added a setting to allow or disallow Cut and Copy from
cutting and copying the current line if there is no
selection.
- Added a setting to disable the numeric keypad '–' and '+'
keys from being used as Cut and Copy (as
they are in Brief).
- Added themes to the Environment Options dialog.
- Made Shift+Insert a synonym for Paste in all contexts.
- Made Ctrl+Insert a synonym for Copy in all contexts.
- Made Shift+Delete a synonym for Cut in all contexts.
- Corrected a crash when editing long lines of plain text without syntax
highlighting.
- Corrected syntax highlighting problems with multi-line comments and preprocessor
continuations.
- Added a VHDL syntax highlighter.
Assembler
- Fixed PC-relative addressing mode offset computations.
- The C compilers preprocessor is now integrated into the assembler.
Linker
- Corrected PC-relative addressing mode offset computations.
- User symbols can now replace symbols defined in the library; required to
support Salvo from Pumpkin, Inc.
- Added a few micro-optimizations including branch switching.
- The section start and end symbols have been renamed to allow them to be
accessed from C.
- The linker now supports section checksum generation using the -H option.
Archiver
- The archiver no longer uses PKZIP format for its archives in order to be
portable to Linux.
C Library
- Added missing __int8_lsl_asgn and __int8_lsr_asgn runtime support routines.
- Corrected__vfprint.c which causes __vfprintf_long not
to recognize "%l" format strings correctly.
- Added debug_scanf function.
- The debug_getx functions now take input from the debug I/O console.
CrossStudio
- Added new project types for all SoftBaugh, Olimex, and TI boards.
- Added a new project wizard to assist in setting up a project.
- The New Folder dialog is reworked and presents example
file filters.
- New projects now have the runtime startup code automatically placed into
the project and do not use the standard startup object module.
- Solutions
can now be created on drives other than the drive containing CrossStudio.
- Fixed incorrect reporting of file permissions on NTFS and network drives.
- The Evironment Options dialog now displays all properties
that are also settable through the Properties Window.
- There is an all-new Build Properties dialog (Alt+Enter)
that is much easier to use than the previous dialog.
- The user interface can be switched between the tabbed interface and an
MDI-style interface.
- Project files can now be linked into other project files - most of the
project dialogs have had to be upgraded to support this.
- Configurations now have a hidden property which causes them to be hidden
from the configuration combo box.
- Created a new project type to enable externally built executables can be
built/loaded and debugged.
- Solutions are now created using the new project wizard.
- Linker section placement can now be done using a file that is separate to
the memory map file.
- Project system can create an additional output file for example S-Record.
- Special function registers window added which displays the registers
defined in the memory map file used to link the project.
- Trace window improvements - remembers trace settings.
- Breakpoint dialog rehashed to support MSP430 EEM - can now trace
breakpoints and specify register write breakpoints.
- Support for specifying the clock control on MSPF149 and EEM enabled parts.
- Exception support for PC not in FLASH range on EEM enabled parts.
- Register write breakpoints.
- Fixed problem with printing variables from assembly code.
- Fixed problem loading executables that had non contiguous ORG directives.
- Coorected crash when displaying code templates during debugging.
Installer
- The installer now installs program shortcuts correctly on international
versions of Windows.
- The default destination directory is now correct on international versions
of Windows.
Known Problems
We hope to fix all known problems before the next release of the software.
Help System
- The help system content is not yet complete. We are converting our printed
matter to XHTML as an ongoing activity.