Make sure you subscribe to the icc-arm mailing list for program update announcements. Refer to http://www.dragonsgate.net/mailman/listinfo for details. [ Known BUGS: (will be fixed ASAP) - No Thumb debug info yet. ] Change Logs: V7.08C - Oct 29th 2008 IDE - Library Build option was not activated for ADV/PRO versions under some conditions Linker - Fixed a random crash problem Dongle Driver - added Vista 64 dongle driver support V7.08B - May 12th 2008 Asm - minor debugging support fixes Linker - For the STR71FRxx target, sometimes the linker gave an "Memory Not Allocated" error. - Fixed problem with RAMFUNC when a custom startup file is used - Fixed problem with REMAP when a custom startup file is used 7.08A - Dec. 6th 2007 [ LPC2888 notes: ] LPC2888 requires a "valid flash marker" at location 0x104FF800: - add c:\iccv7arm\examples.arm\lpc2888\lpc2888_marker.s to your project file list - copy c:\iccv7arm\examples.arm\lpc2888\lpc2888_marker.cmd to your project directory - add lpc2888_marker.cmd to Project->Options->Target->"Additional command file" edit box (right hand side, middle of the dialog page) - the marker can be declared as extern unsigned int flash_valid_marker; and contain the value 0xAA55AA55 IDE - Added entries for LPC2888 and other LPC devices Header Files - Added LPC28xx and LPC23xx header files Assembler/Linker - Bug fixes with the ELF/Dwarf generation - -fhexbin accidentally did not generate the .bin file 7.08 - Sept 25th 2007 Compiler - Added #pragma fiq_handler func1 func2 ... These behave just like interrupt handlers except that they do not save and restore R8-R12 - Fixed a bug under Thumb mode where the compiler was emitting "add R?,#0" forever. Asm/Linker etc. - DCB directive with more than 253 characters (e.g. C char array initialization) was not processed correctly by the assembler. - First release of ELF native asm and linker. The assembler is now called iasarm-elf.exe and the linker is ilinkarm-elf.exe. DBG2Dwarf.exe is no longer needed to generate debug file. V7.07A - June 3rd 2007 IDE - Vista compatible licensing engine Compiler/Assembler/Linker - Fully support function pointers in Thumb mode - Miscellaneous dbg2dwarf fixes for assertion errors etc. V7.07 - Feb 14th 2007 [ ST STR9xx support - Added device entries in the IDE - Added header files under c:\iccv7arm\include\ARM\st\str91x\ The header files are from ST. They reference some peripheral functions that you can download from the ST site. These files compile fine under ICCARM but we have not tested them yet. ] Assembler - Thumb instruction encoding fixes Linker - Added -fhexbin for generating both HEX and BIN files, for Atmel SAM7 bootloader DBG2Dwarf - Fixed crash issues V7.06A - Dec 29th 2006 First Release of Thumb support in the ADV and PRO versions. The compiler/linker support full interoperability between ARM and Thumb functions (including RAM functions). Thumb functions are declared as #pragma thumb function1, function2, ... before the function definition. RAM Thumb function is supported by adding the #pragma ramfunc function1, ... also before the function definition. Automatic ARM/Thumb interworking is supported by specify the Options->Target->Interworking switch. In most cases, you want this option to be ON so that ARM and Thumb functions can call each other. IDE/Linker - Added support for BIN file output for Atmel SAM7 SAM-BA bootloader. In the IDE, select Project->Options->Compiler->"Output Format" with BIN as one of output type. - Added toolbar button and Tools->NoICE for invoking the NoICE-ARM debugger directly. NoICE does not come with ICCARM. You must purchase a NoICE license ($150 currently) to use it beyond its demo period. Compiler - Fixed a bug with register history where sometimes "mov" instruction was deleted incorrectly. - Fixed a problem with spilling code where the "user" variables were not preserved. Library - itoa/ltoa/print %d/%ld now print -32768 and -2147483648 (e.g. high bit on) instead of -0 V7.05 - August 4th 2006 [ PRO/MIO Initial Release ] IDE - Added device entries for LPC2101/2102/2103/2141/2142/2144/2146/2148 - Added device entries for ST ARM7 devices - Added %D (for project directory) macro for command expansion Compiler - Fixed some rare problems with passing floating point expressions and structure field references as function arguments. - Fixed some rare register spilling problems with auto-increment modes. These were making scanf and atof not working correctly. - Added simple register history to track register aliasing within basic blocks and eliminated redundant register moves within basic blocks. Should reduce code size by ~1-2% average. IDE/Compiler - Added support for PRO MIO optimizer Library - scanf and atof are now working correctly due to compiler fixes Asm/Linker - fixed some RAMFUNC issues - fixed some debug generation problems V7.04 - April 10th, 2006 Compiler/Asm/Linker - Added RAMFUNC RAM function support. e.g. the function will be copied to RAM at startup time and when you call the function, the RAM image will be used. Example: #pragma ramfunc foo void foo(int i) { ... } The #pragma must appear before the function definition in the same source file Compiler/Library - Much faster unsigned to/from floating point conversion Assembler - An empty input file is now accepted V7.03 - November 7th, 2005 Compiler - Better register allocator with live analysis - Complicated floating point expressions were not working correctly Assembler - Addressing global variable table with more than 64 global variables generated bad object code Library - math.h single precision (32bits) FP functions tested - add libfparm.a and liblparm.a, floating point and long printf functions Listing File (C & ASM) generator now fully functional V7.02A - July 12, 2005 IDE - Bug fixes in the AppBuilder re: LPC2138 Header Files - Minor fixes in some LPC??? header files Demos and Examples - Better MicroBolt "Hello" Demo Linker Tools - Support for 128 character module names V7.02 - June 24, 2005 IDE - Help file now should work for all browsers and OSes - Added Analog Devices ADuC702x entry. - Old projects opened under 7.01 may incorrectly add a "0" to the "Fill Unused ROM" checkbox, making the resulting file very large. - Change how "REMAP" is supported. Header Files - Added Philips lpc2138.h (thanks to Pride Embedded Inc.) - Added Analog Devices ADuc702?.h (not fully tested) Assembler/Linker/Tools - More compatibility fixes with Elf/Dwarf debuggers Examples The following examples are added under c:\iccv7arm\examples.arm\ - Full AT91SAM7S examples, including a port of the Atmel example library - Full LPC2138 examples (free for non-commercial use). Perfect as starting point for Circuit Cellar Philips LPC213x contest. - Full new MicroMint LPC2106 MicroBolt examples V7.01 - May 28th, 2005 IDE - Added support for memory REMAP - Added new Philips LPC and Atmel SAM devices to the device list. - Re-did non-default startup file support. Now you simpy enable the checkbox "Use Custom Startup File" under Project->Options->Target. startup file. See Help on "Startup File." - Added "Unused ROM Fill Bytes." - Added "No C$$init in linker command file." Compiler - if an ISR creates a stack frame (e.g. it has local variables), the compiler generated incorrect code for ISR return - debug information for double and long double data type were incorrect Linker & Tools - Better compatibilities with ELF/DWARF debuggers Examples - examples.arm\EB40A now contains 3 examples: simple program demonstrating memory REMAP and NOREMAP - LED blinking using interrupt and C "#pragma interrupt_handler" feature - LED blinking using nested interrupts V7.00B - April 5th, 2005 Asm && Linker - emits correct DIR directive in the DBG file. This affected the listing file generator emitting a warning ".\XXX.c" not found when a project specifies an Output Directory. V7.00A - March 24th, 2005 IDE - Application Builder fixes for LPC2K PLL code etc. Asm && Linker - Fixed minor bugs with debug generation. DBG2DWARF - Fixed some ELF issues with Lauterbach loader CHANGE LOGS: V7.00 - March 20th, 2005 (Vernal Equinox release) IDE - The Application Builder has support for all known Philips LPC2K and Atmel AT91 devices including the SAM7S chips. Compiler - Optimized code generation with support for conditional execution, "compare zero elimination" and advanced register allocation. - Compiler is complete for integer operations and single precision floating point. - Need to do: double FP support, peephole (load/store elimination), IO Registers and global variable optimizations. Help - HTML Help and PDF Manual ICCARM.pdf (same as help) under c:\iccv7arm\help\ Startup Files - Startup files have been tested on LPC2106 and SAM7S64 (no remap). Examples - PEC LPC2K library under c:\iccv7arm\pec.lib\. Free for personal use and minimal cost for commercail use. Library - subset of ANSI C Header Files - Original header files courtesy of Sten Larsson of Nohau - More header files for Atmel SAM7 and new Philips devices added. Debug Support - Nohau EMUL-ARM Seehau emulator / debugger fully supports our .DBG format. You will need new ldARM.dll from Nohau. - Compiler also generates ELF/DWARF output. Usable under Nohau and most other debuggers. Listing File - The listing file generator does not distinguish real code vs. literals in the code sections.