## Changes in Release 1.7 Build 4

##### CrossStudio Project/Build

- The assembler is now invoked with -EB/-EL option rather than -mbig-endian/-mlittle-endian.
- Added an environment option that controls the generation of the -mfpu=vfp option to the compiler and assembler.

##### Debugger

- Fixed disassembly of UMLAL, UMULL, SMLAL, SMULL and UMAAL instructions.

##### Target Interfaces

- Optimised debugging of Cortex-M3 devices using FTDI2232 based target interfaces.
- Fixed definition of reset signal for the Luminary USB Debug target interface.
- Linux Wigger driver now supports setMaximumJTAGFrequency.
- Added target property to enable fast (not synchronised) memory accesses.

##### Libraries

- Corrected stdint.h fast definitions.

## Changes in Release 1.7 Build 3

##### CrossStudio General

- Tutorial updated to include memory usage window and creating an external executable.
- Fixed truncated display of the "Find In Files" results window.

##### CrossStudio Debugger

- Fixed problem opening the first item in a watch window when one of the other items is opened.
- Fixed RPC loader support for ARM9s without breakpoint instruction.
- RPC loaders now work when debug handler is being used.
- Added Loader Reset Script property to allow a different reset script to be used for loaders.
- Windows version no longer GPFs when FTD2XX.DLL is not present.
- Fixed extra display of :: in global C++ variables.
- Fields of templated structs/classes can be displayed - but they can't be modified.
- Fixed incompatibility with JLinkARM.DLL version 3.70a and above.
- Fixed a bug that caused breakpoints to be missed in ARM7, ARM9 debugger.
- ARM disassembler now correctly justifies hex numbers.
- Added TargetInterface.runToAddress target script function.
- The XScale debugger now supports debugging with the alternative high vectors enabled (note that version 1.1 of the XScale CPU support package is also required for this to work).
- Fixed size of bitfields displayed.

##### Libraries

- Fixed definition of CTL_STATE_MESSAGE_QUEUE_RECEIVE_WAIT in ctl_api.h and threads.js. The previous definition would have caused problems on systems with more than one task sending to a message queue.
- LIBMEM combined CFI driver now supports 8 and 16 bit, single and paired CFI Command Set 2 (AMD/Spansion) flash.

## Changes in Release 1.7 Build 2

##### General

- Updated versions of the C/C++ compilers from the GNU Compiler Collection and assembler, linker, librarian from GNU Binutils. These are built from the CodeSourcery arm-2006q3-26 source code release. The compilers are based on the GCC 4.1.1 release and the binutils on the 2.17 release.
- Rowley floating point math routines have been written in assembly language. The only LGPL'ed (http:/http://www.gnu.org/licenses/lgpl.html) library code shipped in CrossWorks for ARM is to support C++ exceptions and C++ RTTI.
- Environment options that enable tools, libraries and source files from CrossWorks for ARM 1.5 to be used rather than the tools, libraries and source files in CrossWorks for ARM 1.7.
- Support for FTDI 2232 (http://www.ftdichip.com/Products/FT2232C.htm) based target interfaces.
- Support for CrossConnect Lite.
- STLPort 5.1.0 is supplied (http://sourceforge.net/projects/stlport).
- Build and debug support for ARM9's that have a VFP.
- Support for debugging with MMU enabled and virtual addresses not equal to physical addresses.

##### CrossStudio General

- GCC documentation once again included in the integrated help system.
- Properties window has been redesigned.
- Environment options dialog has been redesigned.
- Source control integration has been redesigned to work more efficiently than previous releases.
- Shift+Escape will now hide a dock site.
- Operating system file open dialog is now used.
- New memory usage window.
- Find and Replace can now be a docked window.
- Added package version checking and package version display.
- Added FAQ and technical support links on help menu.
- Output windows can now show utf-8 characters.

##### CrossStudio Editing

- New menu and toolbar support for HTML editing.
- Added Go To Header to swap from header file to source file.
- Added Save Copy Of to create a new file from an existing file.
- Can now specify a codec to use when loading and saving files.
- New JAM/STAPL parsing/colouring.
- Function names are now coloured.

##### CrossStudio Debugger

- New registers window which can display coprocessor registers and has better support for bitfield display.
- Added step into start debugging.
- Finding files for Externally Built Executable project types is improved.
- Support for $ in identifiers in debug expressions.
- DebugIO server now changes directory to the project directory.
- JTAG Bits Before/After now the correct way around. If you have an existing pre 1.7 project that uses the JTAG Instruction/Data Bits Before/After project properties you will need to swap the before and after settings for it to work.
- Terminal emulator can now open COM ports about COM9.

##### CrossStudio Project/Build

- New environment options to enable building using 1.5 binaries, libraries and source files.
- Compile now available on project explorer Folders.
- Link available on project explorer Projects.
- Preprocess action available on project Files.
- Fixed problem when locating the project explorer from the text editor when the same file is included more than once in a project/solution.
- Fixed crash when selecting properties on solutions with only one project.
- Better support for handling read-only project files.
- Memory map size linker symbols are now generated.
- Fixed bug in overlapped memory section checking when using absolute addresses and sizes.
- Added new compilation properties ARM Core Type, ARM FPU Type, ARM FP ABI Type and Omit Framepointer.
- Added new linker properties IO Library Name and Suppress Warning on Mismatch.
- Removed linker property Include Startup Code.
- Added new debugger project properties Working Directory to specify the working directory that debugIO operations are performed and Command Arguments to specify the argc/argv values supplied to the application.

##### Libraries

- Assembly coded floating point functions replace the C coded ones.
- Removed libralfp libgccfp libraries - floating point code is now in libm.
- Printf and scanf have been removed from the C library. There are two new libraries that implement printf and scanf using either the target or the host debugger. The particular implementation can be selected using the linker project property IO Library Name. The host debugger library also implements file and other standard IO functions.
- Added support for time.h and locale.h.
- Added debug_system, debug_vfscanf, debug_tmpnam, debug_vscanf, debug_fsetpos, debug_remove, debug_rename, debug_tmpfile, debug_ungetc, debug_vfprintf, debug_vprintf, debug_perror, debug_getenv functions to the debugIO library.
- Added C++ header files that correspond to the C library header files.
- Libraries are built for V5TE and VFP.
- Libraries are now built with -g1 option to enable backtracing out of the library.
- crt0.s can now supply argc and argv to the application and can implements exit/return from main.
- Fixed bug in crt0.s which caused the calling of THUMB mode constructors and destructors to fail.
- Fixed return value of ctl_message_queue_receive and ctl_byte_queue_received.
- C++ new now returns 0 on malloc failure.

##### Target Interfaces

- Support for JTAG instruction and data register scanning in JavaScript.
- Support for CrossConnect Lite.
- Support for connect and disconnect scripts.
- Support for generic FTDI 2232 target interfaces and the Olimex and Amontec devices based on these parts.
- JTAG clock frequency can now be dynamically modified using the TargetInterface.setMaximumJTAGFrequency function.
- ARM7/ARM9 debugger now supports the use of a debug monitor to enable debugging with MMU enabled and to display coprocessor registers.
- XScale PXA270 now supported.
- CP15 registers of ARM920T, ARM926 and ARM966 cores can now be displayed.
- Worked around problem accessing the NXP LCP2xxx FIO registers. Note that a firmware upgrade is required for CrossConnect for this workaround.
- Can now reserve memory ranges (memory map access of None) which will not be accessed.

##### CrossLoad

- CrossLoad can now handle debugIO and supply argc/argv to the application.

## Changes in Release 1.6 Build 3

##### General

- Updated versions of the C/C++ compilers from the GNU Compiler Collection and assembler, linker, librarian from GNU Binutils. These are built from the CodeSourcery arm-2006q1-3 source code release. The compilers are based on the GCC 4.1.0 release.

##### CrossStudio

- Fixed problem detecting ARM/Thumb instruction set in debugger.
- Build error locating in assembly code now works.
- Fixed "Run To Cursor" problem when debugging in assembly mode.
- Help pages can now be displayed in an external HTML browser.
- Removed GCC documentation from integrated help and have external links to the appropriate web site.

## Changes in Release 1.6 Build 2

##### General

- New licence management scheme to support CrossFire licences. Existing users will need to register the software using their product keys.
- Improved package support including new mkpkg command line tool.

##### CrossStudio

- Improved layout of New Project Dialog.
- Improved layout of Environment Options Dialog.
- Removed Generate Linker Script property. Rebuild forces regeneration of the linker script.

## Changes in Release 1.6 Build 1

##### General

- Added support for Cortex-M3 (ADIv5) in Wiggler (or compatible) and CrossConnect JTAG adapters.
- New package based target support. CrossWorks now ships without any target support. Support packages for various targets are installed after CrossWorks installation.
- Updated versions of the C/C++ compilers from the GNU Compiler Collection and assembler, linker, librarian from GNU Binutils that support Thumb-2 code generation. These are based on the CodeSourcery arm-2005q3-2 release with updates for the ARMv7M architecture.

##### CrossStudio

- Added Windows docking window (Ctrl+Alt+R) which replaces the Window > Windows dialog.
- Re-worked Debug Windows menu organisation.
- Added a quick document selector on Ctrl+Tab and Ctrl+Shift+Tab which mimics Windows Explorer Alt-tabbing.
- Now Ctrl+Tab and Ctrl+Shift+Tab follow Visual Studio tabbing behaviour so that you can quickly alternate between the same two documents.
- New Paste As String, Paste As HTML, and Paste As Comment to quickly paste copied content into program source code.
- Dynamic visual brace, parenthesis, and bracket matching automatically which highlights the mate if it is visible on the screen.
- New Bookmarks window (Ctrl+Alt+K or View > Bookmarks): bookmarks are now permanent and the Edit > Bookmarks menu is updated to reflect the new bookmark capability.
- Numbered (permanent) bookmarks 1 through 9 can be dropped (Ctrl+K, 1 through Ctrl+K, 9) and jumped to (Ctrl+Q, 1 through Ctrl+Q, 9).
- New Find and Replace window (Ctrl+Alt+F or Search > Find And Replace) which contains a much enhanced find and replace capability, including project-wide, solution-wide, all-open-document, and directory (and subdirectory) find and replace.
- Exception trapping support is moved from Debug > Exceptions to the Breakpoints window to better highlight debugger and simulator capabilities and state.
- Help > Keyboard Map now has a Report feature to generate an HTML keyboard map report to an editor for saving or printing.
- New Autos window (Debug > Autos) that displays automatic variable and expression values for the current context. Note that this is not the same as the Locals window—the Locals window displays the values of parameters and local variables in the currently selected frame, the Autos window displays globals, locals, and expressions for the context around the current and previous execution points.
- New environment option to hide the Output window after a successful build (which is now the default).
- New option to hide the Output window after a successful download (which is now the default).
- Fixed phantom windows reappearing in a dock site after the final dock window in a dock site was closed.
- Added new Undo and Redo grouping styles in Tools > Options: Individual words (now the default), Individual characters (the default up to v1.5 ), and Whole of last insertion (like Microsoft Word and many other Office applications).
- New code editor key sequences: Delete Word (Ctrl+K, T) to delete the word under the cursor, Delete to Start of Line (Ctrl+K, Backspace), Delete to End of Line (Ctrl+K, Ctrl+K), and Select Word (Ctrl+Q, T).
- In addition to the middle mouse button bringing up the Go To Function menu, Alt-Middle will bring up the Go To Header menu.
- Go To Definition (Ctrl+Q, D) will move the cursor to the definition of the variable or function under the cursor and drop a navigation marker.
- Go To Declaration (Ctrl+Q, E) will move the cursor to the declaration of the variable or function under the cursor and drop a navigation marker.
- The code editor now allows additional per-language user-defined keywords. Set these up in the Languages pane of the Tools > Options dialog.
- Tools > Options now opens at the previously-selected page rather than always at Environment/General.
- Added Install Package and Remove Package to Tools menu. This is used to install and remove target support files.
- Added Import Section Placement and View Section Placement actions to project explorer.
- Number of projects displayed in Solution name fixed in project explorer.
- Added Start Debugging and variants from the project explorer context menu.
- Added new options to Tools > Options to connect to target on start debugging and disconnect on stop debugging.
- New linker property Treat Warnings As Errors. Since linker warnings are usually fatal this is set to Yes by default.
- Linker property Entry Point now defaults to reset_handler rather than 0x00000000.
- Linker property Keep Symbols now defaults to _vector.
- The generated linker script file is now kept in the intermediate directory and is put in the output files folder of the project explorer.
- New linker property Generate Linker Script that enables the linker script generation to be avoided by a date check.
- Compiler property Enforce ANSI Checking now works with C++ files.
- New compiler property Keep Assembly Code which will keep the assembly code output of the compiler.
- Compiler now defines the symbol __CROSSWORKS_ARM.
- New compiler property Generate Static call_via_rX which works around a restriction in the implementation of long calls when using Thumb code generation.
- New staging properties Package File Path and Package Member Name which enable packages to be maintained by staging projects.
- New property group entry Oscillator Frequency for targets that can use a range of oscillator frequencies.
- New property group entry Section Placement for targets that have several section placement options.
- New section property Vector Section Name.
- Fixed debug_break on ARM7TDMI.
- Fixed crash when the debugger displayed variables that it couldn't find a type for.
- Addresses in memory map files that are preceeded by a + are treated as offsets from the enclosing address.
- Fixed crash when using JavaScript console window to drive multiple target interfaces.

##### Target Interfaces

- Simulator now uses a DLL file to implement the memory system of the simulated target.
- Simulator now runs the loader executables if appropriate for target.
- Improved Segger J-Link support including better compatibility with different J-Link firmware/DLL releases and multi-device support. The J-Link DLL file is now no longer shipped with CrossWorks. You must install the Segger software and modify the Segger J-Link "J-Link DLL File" target property to point to the JLinkARM.dll file.
- Added support for XScale devices with 7 bit JTAG instruction registers.
- Added support for the Cortex-M3 debug inteface in Wiggler and CrossConnect targets.
- Erase All now supported.

##### Libraries

- Libraries are now built for V4, V4T, V5TE and V7M architectures. The V3 architecture is not supported in this release.
- Added LIBMEM memory driver library.
- Added LIBMEM loader library.
- Added LIBARM library.

##### CTL

- New variable ctl_timeslice_period, when non-zero implements timeslicing.
- New byte queues that are a specialisation of message queues.
- The use_timeout parameter to blocking functions can now specify an absolute or a delay time period.
- Replaced usage of swi with msr when changing from system to supervisor mode in a co-operative task switch.
- Updated default CTL application.

##### ARM target support

- Support for Tyco A1030A.
- Support for KwikByte KB9202.
- Support for Olimex LPC-E2294
- Support for Olimex LPC-E2214
- Support for Luminary LM3S

##### Known Problems

- Replace in Files is not yet implemented.
- Cortex-M3 not supported in simulator.
- Cortex-M3 not supported in CTL.

## Changes in Release 1.5 Build 2

##### CrossStudio

- Fixed crash when disassembling address ranges that wrap.
- Simulator modified to avoid crash due to memory allocation based on project memory map.
- First release of Disk Explorer window.

##### ARM target support

- Fixed STR7 and SAM7 header files.
- Fixed problem when unplugging the CrossConnect.

## Changes in Release 1.5

- Support for redesigned CrossConnect for ARM.
- GCC version 3.4.4 of gcc.exe, cc1.exe and cc1plus.exe are supplied.
- Binutils version 2.16.1 of ar.exe, as.exe, ld.exe, nm.exe, objcopy.exe, objdump.exe, ranlib.exe and strip.exe are supplied.

##### ARM target support

- Target support header files now contain bit field defines.

##### CrossStudio

- Fixed crash when locating to disassembly mode.
- General improvements to disassembly/intermixed modes.
- Fixed remove and solution rename bugs in project explorer.
- Fixed problems with upper case project filename.
- Workaround for ELF files that don't have .pubnames and .aranges section.
- Find in files and find in project files now save open files.
- Added default workspace layout option to Window menu.
- Fixed rebuild bug when additional output files are generated.
- Improved support for C++ variable/symbol display.

## Changes in Release 1.4

##### ARM target support

- Support for TI TMS470.
- Support for theARMPatch AT91-SBC.
- Support for theARMPatch LPC-SBC2.
- Support for LogicPD SDKLH79520.
- Enhanced Philips LPC support - improved loader and memory map files.
- JTAG interface now supports daisychaining in order to support multi-core devices.
- Improved wiggler performance.
- Can now alter J-Link JTAG clock speed.

##### CrossStudio

- Added address and size display to memory map editor.
- New file type Linker Script that will be used for linkage in preference to the section placement and memory map files.
- Added Import Memory Map function on projects that don't have a processor type property.
- The View Memory Map function is now only available on projects that have a processor type property.
- Added Processor and Import nodes to the memory map file - these currently can only be displayed in the memory map editor.
- Debugger can now display VFP and FPA floating point format numbers.

##### C/C++ Library

- Added new option to enable or disable linking of the GCC libraries.
- Now supports RTTI and exceptions.

##### Build 2 Changes

- Fixed missing floating point libraries.

##### Build 3 Changes

- Added support for Freescale MC9328MXL Dragonball including examples for M9328MXLADS board

##### Build 4 Changes

- Added CVS configuration management support.
- Added support for ATMEL AT91SAM7A1, AT91SAM7A2 and AT91SAM7A3 including examples for AT91SAM7A1-EK board.

##### Build 5 Changes

- Wiggler target interface now works with ARM9EJS.

## Changes in Release 1.3

- Support for CrossConnect for ARM.
- Added new program crossbuild that enables command line building.
- Added new program crossload that enables command line loading.
- Version 3.4.2 of gcc.exe, cc1.exe and cc1plus.exe are shipped.

##### ARM target support

- Support for XScale processors.
- Support for cache flushing on breakpoint (required for 920T and 740T cores).
- Support for STMicroelectronics STR71x parts.
- Support for ATMEL AT91SAM7 parts.
- Support for latest Philips LPC2xxx parts and faster flash loader.
- Support for GamePark GP32.
- Added Processor type property for Analog Devices ADuC702x parts.
- Added fast FLASH verification.

##### CrossStudio

- Disassembly is intermixed with source code when debug is enabled.
- Properties, configurations and system files are now selectable at project creation time.
- Default executable project will now run on an ARM with RAM mapped at 0x00000000.
- The Symbols Window can be printed.
- Added linkage map generation to the Linker property group and display in the project explorer.
- Added remove ununsed symbol capability to the Build property group.
- Input/Output options have been renamed Printf/Scanf options and can be more finely controlled.
- Added support for SourceOffSite 3.5.1 to source code integration.
- Added new source code control window that displays a filtered list of the project files.
- Fixed problem with memory map editor sorting section placement files.
- Built-in commands (cp, chmod etc) now work relative to the project directory.

##### CrossStudio Debugging

- Variable display, pointers now have an expand button.
- Variable display, arrays not fetched until expand button is pressed.
- Variable display, pointers to structs displayed as one level.
- Debugger now displays bool and bitfields types correctly.
- Added support for bitfields in many of the processor register displays.
- Fixed problem printing global variables when not defined in the current compilation unit.
- Fixed problem printing enumeration variables.
- Environment option to break on main (or other symbol) if no breakpoints are set.

##### C Library

- Faster implementations of memset, strlen and strcpy functions - improves Dhrystone numbers.
- Fixed fmod looping when given two value whose relative magnitude is greater than 2^23.
- Fixed tanh using bad polynomial for numbers >= ~0.5.
- printf formats 0.0 in %g format as "0" rather than "0e+00".

##### ARM Library

- Added header file __debug_stdio.h that enables C stdio functions (e.g. printf) to be used.
- DebugI/O library now has debug_exit and debug_time functions.
- CTL has been extensively (unfortunately not compatible with the previous release) revised and now includes support for integer valued priority semaphores and message queues.
- ARMLib has support for re-enabling interrupts from an ISR.

## Changes in Release 1.2

##### CrossStudio

- Integrated the new fast floating point routines from GCC 3.4.0.
- Board specific CTL source code now shipped.
- Fixed printing of arrays of structs in debugger.
- Segger J-LINK ARM JTAG interface now supported.
- Post build step now possible after link.
- Support for the Revely (Sharp MCU) boards.
- More LPC2000 boards supported (Olimex LPC-P1, Keil MCB2100 and IAR LPC210x KickStart).
- Executable files now have the .elf extension.
- The LPC2000 project type now has a processor property.
- Fixed problem with the THUMB build of the maths library.
- Added a new linker property to enable ARM or THUMB versions of the library to be selected independently of the application build type e.g. THUMB app using ARM library.
- Modified LPC2000 FLASH loader. The FLASH loader no longer needs to be rebuilt in order to support boards running at different oscillator frequencies, the frequency can now be specified in the Target | Loader Parameter project property.
- Version 3.3.3 of gcc.exe, cc1.exe and cc1plus.exe are shipped.
- Improvements to Visual SourceSafe integration - now detects writing of source controlled files and prompts for checkout.
- The Wiggler JTAG clock frequency can now be reduced in order to support boards with unreliable target interface connections.

## Changes in Release 1.1

##### CrossStudio

- 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.
- Support for Philips LPC210x 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.
- 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.
- Implemented Disassemble function on project explorer right click.
- Can build C++ programs - C++ library currently not supported.
- Debugger handles large programs better.
- Debugger expressions have limited support for the C++ :: operator.
- Source navigator now just reparses files that have changed.
- Debugger threads window that enables RTOS threads to be displayed by executing a JavaScript program.
- JavaScript console window that enables JavaScript expressions to be evaluated.
- Wiggler download speed has increased.
- Memory window has an option to access memory by display width.
- Breakpoints on addresses now set an execute breakpoint not a data write.
- Removed target specific files from the target system. These are now put into the project at project creation time. Existing projects are automatically upgraded when they are loaded.
- Instruction set simulator included to enable evaluation of CrossWorks without hardware.
- CrossWorks tasking library included in distribution.
- Project system now creates ARM and THUMB configurations for executable projects.
- Project system now creates configurations for library builds.
- Support for ARM9 debug interface.
- Target specific header file supplied in targets subdirectory of include.
- Version 3.3.2 of gcc.exe, cc1.exe and cc1plus.exe are shipped.
- memcpy has been written in ARM assembly code to speed it up.
- Improved ARM and THUMB disassembly.
- Support for Aeroflex AX07CF192.
- Support for MPE ARM Development Kit.