V2.04.8a Commercial Release
- fixed in the C compiler: when one of the operands of the & binary operator was the numeral constant 1, the result was always assumed to be of 8 bit _Bool type, even if the other operand was 16 or 32bit in size. When the result was shifted left more than 8 bits, using the << operator, this lead to the result to become 0, a warning "shift result will be 0" beeing however generated.
- improved the SD Card library compatibility with ATxmega chips
- fixed in the CodeWizardAVR for ATxmega: when no TWI interface was enabled, the twi_init function was called, but twix.h was not #included
- fixed in the CodeWizardAVR for ATxmega: The ATxmega A4 chips don't have TWID
- fixed in the IDE: Search|Find in Files failed when the searched string was found in a Read-Only file that was not previously opened in the Editor.
V2.04.8 Commercial Release
- added library functions (twix.h) for ATxmega Two Wire Interface (TWI) support
- added TWI support in the CodeWizardAVR for ATxmega devices
- added TWI master and slave code examples for ATxmega devices
- increased the number of macros that can be defined in a program module to 10000
- fixed: in the MEDIUM memory model, arrays of pointers to functions stored in FLASH, were incorrectly indexed on 16 bits, instead of 24bit
- fixed: in certain situations, a linker warning/error "external ... declared, but never defined" was generated for an external global symbol that was defined in inline assembly
- fixed: if the editor pane was too small/inactive, clicking on an error/warning didn't make that pane visible/active.
V2.04.7a Commercial Release
- added an error message for the case when the & unary operator was applied to sfrb or sfrw I/O registers of ATxmega or reduced core chips (ATtiny4/5/9/10/20/40), because these registers are not mapped to RAM for these chips
V2.04.7 Commercial Release
- added ATxmega support for the 1 Wire functions
- the 1 Wire functions must be now configured using the Project|Configure|C Compiler|Libraries|1 Wire menu. There is no need to use inline assembly configuration anymore. Details are available in the updated Help topic and User Manual chapter 4.14.1: 1 Wire Protocol Functions
- improved generated startup code size when global bit variables were declared in the program and the Project|Configure|C Compiler|Clear Global Variables at Program Startup option is disabled
- improved the code optimizer
- improved error checking and reporting
- the & unary operator can now be applied to I/O registers declared using the sfrb and sfrw keywords. It will return a pointer to the RAM address where these registers are mapped
- added support for the ATtiny4, ATtiny9, ATtiny20, ATtiny40, ATtiny2313A, ATtiny4313, ATmega128RFA1, ATmega164A/164PA/324A/324PA/644A/644PA/1284, ATmega169A/169PA chips
- renamed the PRR0 register to PRR in the mega1284.h and mega1284p.h header files
- added .EQU __sm_adc_noise_red=0x02 in the header files for the ATmega16U4 and ATmega32U4 devices
- fixed: wrong initialization occured, if global bit variables initialized during declaration were located in both GPIOR and R2..R14 registers
- fixed a bug in ftoa (stdlib.lib) which lead to function locking when displaying values larger than 1e+38
- fixed: global pointers, stored in registers, were not correctly initialized during declaration for the ATxmega chips
- fixed: the compiler couldn't display correctly linker warnings for symbols used in library files
- fixed: in certain cases the MSB of ATxmega 16 bit I/O registers was written first (instead of the LSB). Example: RTC.CNT += 1
- fixed: no error was signaled when trying to assign a value to a struct/union member which was declared as constant, the struct/union itself not beeing declared as constant
- updated the C Preprocessor Help topic and User Manual chapter 3.1 with the newly added predefined macros: _EXTERNAL_STARTUP_ , _SRAM_START_ , _SRAM_END_ , _DSTACK_START_ , _DSTACK_END_ , _ATXMEGA_DEVICE_
- added new examples for ATxmega chips: Atmel application note AVR1300 “Using the ATxmega ADC”, using the DS18B20 temperature sensor and a procedure for writing the EEPROM for ATxmega256A3, ATxmega256A3B Rev.B which present a bug in silicon
- added 1 Wire support in the CodeWizardAVR for ATxmega devices
- added in the CodeWizardAVR for ATxmega digital filter code generation for Event Channel inputs
- modified the CodeWizardAVR initialization sequence for ATxmega I/O port pins used for USART TxD and XCK outputs in order to prevent generating a false start bit during USART initialization
- corrected the port and bits used by the CodeWizardAVR for the analog comparator and ADC of the ATmega1280/1281/2560/2561/640 chips
- fixed: the CodeWizardAVR didn't initialize correctly the ADMUX register with the voltage reference type for the ATtiny24/25/43U/44/45/48/88 chips
- added USARTF0 in the CodeWizardAVR for the ATxmega64A3/128A3/192A3/256A3/256A3B chips
- fixed: display correctly the note regarding the ClkPer output in the CodeWizardAVR for ATxmega devices
- fixed: the CodeWizardAVR for ATxmega chips generated incorrect comments for Event System Channels 1, 2 and 3 sources
- added AVR Dragon programming support for the ATxmega chips in JTAG mode
- added AVRISP MKII and STK600 programmer support for the ATtiny4/5/9/10/20 chips
- corrected the signature for the ATmega1284P chip
- updated the values for ATxmega BODLEVEL fuse bits in the chip programmer and project configuration so they match with AVR Studio 4.18 SP2
- implemented a split pane editor that allows two files to be edited at the same time
- improved the IDE compatibility with Windows 7
- changed the File|Close shortcut to Ctrl+W because it conflicted with Ctr+F4 for Project|Go to Previous Warning menu
- improved the Edit|Uncomment menu functionality
V2.04.6 Commercial Release
- improved the IDE compatibility with Windows 7
- enhanced the IDE windows docking manager and added various small improvements/fixes
- improved error and warning reporting in the compiler
- added CodeWizardAVR support for the RTC, RTC32, Battery Backup and SPI ATxmega peripherals
- added support for the ATxmega256A3B chip
- updated the definition for DMA_CH_struct in the xmstruct.h header file
- corrected the definition for NVM_PROD_SIGNATURES_struct in the xmstruct.h header file
- modified the Standard C I/O printf and sprintf functions from stdio.h to display the exponent floating point format as [-]d.dddddd e[±]dd or [-]d.dddddd E[±]dd
- added a 5us delay after executing the i2c_write function from i2c.h in order to improve I2C bus communication reliability
- added in the project configuration menu the possibility to use a two times slower SCK rate when communicating with SD Flash memory cards
- added in the project configuration menu the possibility to use an active low Write Protect signal when interfacing with SD Flash memory cards
- fixed in the CodeWizardAVR for the ATxmega chips: when the External Clock value was changed, the ClkPer and ClkCPU labels were not updated
- fixed in the CodeWizardAVR for the ATxmega chips: the TCE0 timer doesn't have AWEX for the A4 chips
- removed spike detection reset test in the CodeWizard for the ATxmega chips in order to comply with the ATxmega A manual rev. H 12/09
- added PDI ATxmega programming mode for the Atmel STK600 programmer
- added ATxmega programming support for the Ateml AVRISP MKII USB programmer
- fixed in the programmer the BOOTSZ0, BOOTSZ1, BODLEVEL0, BODlEVEL1 and BODLEVEL2 fuse bits positions for the ATmega328P and ATmega328PV chips
- fixed in the programmer the signature for the ATxmega32A4 chip
V2.04.5b Commercial Release
- added in Settings|Editor|Text the possibility to chose the background color of the selected code template
- added the possibility to remember the default working path when loading new projects
- fixed the registry write error when running for the first time under Windows 7
V2.04.5a Commercial Release
- small improvement in the license validity checks
V2.04.5 Commercial Release
- added support for the ATxmega devices in the CodeWizardAVR
- updated the ATxmega devices header files according to the latest datasheets
- addded support for the ATmega16HVA, ATmega8HVA, ATmega16HVB, ATmega32HVB and ATxmega324A1 devices
- updated the C compiler and CodeWizardAVR according to the latest ATtiny20 datasheet
- updated the 90usb82.h and 90usb162.h header files with the definitions of the WDTCKD and REGCR registers
- updated the tiny87.h and tiny167.h header files with the EEARH register definition
- added new compiler directive: #pragma optsize_default
- added the possibility to select, in the project configuration, the SPI controller used for FLASH memory card access by the ATxmega chips
- made some improvements in the compiler’s code generator when producing code that uses the MUL and MULS instructions
- improved the code generated by the CodeWizardAVR for buffered interrupt driven serial communication for the case when the receive/transmit buffer size is 256 bytes
- improved compiler error checking and reporting
- improved the initialization of the CAN controller for the AT90CAN32/64/128 chips, in the CodeWizardAVR generated code
- added the TWI bus connect/disconnect interrupt service routine in the CodeWizardAVR generated code for the ATmega406 chip
- fixed: the \e escape sequence was not recognized
- fixed: replaced \0octal_number escape sequence with \octal_number in order to comply with C99 standard
- fixed: in the MEDIUM and LARGE memory models (for chips with >=128kbytes FLASH) functions expecting a 'flash' array parameter, performed the array indexing with a variable index on 16bits instead of 24bits
- fixed: for the ATxmega chips, writing the EEMAPEN bit from the NVM.CTRLB register doesn't require configuration change protection, so the startup code after reset was modified so that the CCP register will not be written when setting this bit
- fixed: updated stdio.lib to remove assembly errors that occured when the putchar and getchar functions were used for the ATmega16U4, ATmega32U4 and ATmega32U6 chips
- fixed the assembler errors which occured when variables located in EEPROM were used with the ATtiny87 and ATtiny167 chips. The EEARH register definition was missing from the generated .asm file.
- fixed: reversed the text in the CodeWizardAVR SPI tab Clock Phase selection box to: Cycle Start/Cycle Half
- fixed: set the correct model for ATxmega bootloaders depending on FLASH size:
- SMALL for FLASH size <64k - MEDIUM for FLASH size =64k - LARGE for FLASH size >64k
V2.04.4a Commercial Release
- fixed: the following functions from string.h employed the LPM instruction, instead of the correct ELPM, when used in boot loaders for chips with 128kbytes or more FLASH and the SMALL memory model: strcspnf, strlenf, strpbrkf, strrpbrkf, strstrf, strspnf
- fixed a small typing error which could lead to assembly errors when initializing, during declaration, bit variables located in GPIOR registers.
V2.04.4 Commercial Release
- added new MMC/SD/SD HC FLASH Memory Card drivers (sdcard.h) and FAT12, FAT16, FAT32 access libraries (ff.h, stdio.h) with several examples, which were tested on the Mega128 MMC development board from Progressive Resources LLC
- added in the \EXAMPLES ATxmega\AVR1605 directory, the port to CodeVisionAVR of the Atmel Application Note AVR1605 ATxmega Boot Loader
- the Standard C I/O Functions (stdio.h): printf, sprintf, vprintf, vsprintf, snprintf, vsnprintf were redefined and now return the number of outputed characters
- added specific FAT file access functions in the Standard C I/O Functions (stdio.h) library: fgetc, fputc, fputs, fputsf, fprintf, fscanf, feof, ferror
- improved error checking and reporting
- improved the generation of startup code for the ATxmega devices
- added the predefined preprocessor macro _DSTACK_SIZE_ which specifies the size of Data Stack set in the project configuration
- fixed a bug in the code optimizer which, in some rare cases, could lead to a memory access violation error
V2.04.3a Commercial Release
- added support for the ATtiny5 chip (AVR Studio 4.17 must be installed)
- the IDE now saves/restores the editor tabs order, if these were re-aranged
- improved compatibility with version control systems that set the read-only attribute of the .prj project file
V2.04.3 Commercial Release
- improved the code generator and optimizer
- improved the floating point library for addition and substraction
- improved linker error and warning reporting
- added support for the ATtiny43U chip in the compiler, CodeWizardAVR and chip programmer
- added support for the ATtiny167, ATtiny87, ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1 and ATmega64M1 chips in the compiler and chip programmer
- updated the bit definitions in the header files for the AT90USB1286/1287/646/647 chips
- ATxmega virtual port registers are now accessed using the IN and OUT instructions, not LDS and STS like in previous versions
- improved interrupt service routine code generation for ATxmega chips for the MEDIUM and LARGE memory models
- fixed: the RAMPZ register wasn't set to 0, for ATxmega chips with >=128k FLASH and MEDIUM or LARGE memory models, when the Z register pair was used for RAM access.
- added ATxmega chip programming support for the Atmel JTAGICE MkII (requires AVR Studio 4.16.638 or later to be installed).
- added the Edit|Go to Definition/Declaration menu command in the IDE
- added various small improvements in the IDE
- updated the Help topic and User Manual chapter regarding Structures
V2.04.2c Commercial Release
- improved linker error checking for memory overlaping of variables placed at absolute addresses using the @ operator
- improved linker detecting of recursive function calls when estimating the Data Stack usage
- fixed: calling a function by casting an integer numerical literal constant with the value above 0xFFFF, in the LARGE memory model (chips with 256kbytes of FLASH), didn’t set correctly the value of the EIND register before the EICALL instruction
- small improvements in the IDE
V2.04.2b Commercial Release
- improved compiler error checking and reporting
- added support for the ATtiny13A chip (tiny13a.h header file)
- fixed a small bug in the syntax highlighting of comments
- increased to 256 the number of user defined keywords that can be syntax highlighted
V2.04.2 Commercial Release
- improved compiler error and warning checking
- added additional warnings for cases when the << operator may produce an overflow
- improved code optimizer
- small improvements in the C preprocessor
- enhanced linker checking for recursive function calls
- added support for the ATmega16U4 and ATmega32U4 chips
- fixed: in certain situations the assignment of the contents of a bit field, located in the MSB of an int, to the element of a char array, which was the member of a structure, produced incorrect results
- fixed: in some rare cases the R15 register was saved/restored in interrupt service routines even if it wasn’t used
- fixed: in order to eliminate naming conflicts with I/O registers bits definitions, the names of the SPCR0, SPDR0, SPSR0 registers were changed to SPCR, SPDR, SPSR in the following header files: mega164.h, mega324.h, mega644.h, mega644p.h
- fixed the interrupt vector numbers for the Analog Comparators on PORTA and PORTB in the following header files: xmega64a1.h, xmega128a1.h, xmega192a1.h, xmega256a1.h, xmega64a3.h, xmega128a3.h, xmega192a3.h, xmega256a3.h
- fixed the interrupt vector numbers for the Analog Comparator on PORTA in the following header files: xmega16a4.h, xmega32a4.h xmega64a4.h, xmega128a4.h
- corrected the definitions for AC_MUXPOS_PIN3_gc ... AC_MUXPOS_PIN7_gc in the xmbits_a1.h , xmbits_a3.h and xmbits_a4.h header files for the ATxmega devices
- fixed: when the ATtiny10 Timer0 was configured in CTC or PWM modes and the OC0A/OC0B outputs were used, the CodeWizardAVR didn’t perform any checks that the OC0A/OC0B pins were configured for output in the DDRB register
- added in the CodeWizardAVR the possibility to configure the Timer/Counter1 Dead Time register DT1 for the ATtiny261, ATtiny461 and ATtiny861 chips
- fixed: the SPIEN fuse bit can now be programmed in JTAG mode using the JTAGICE MkII, AVR Dragon and STK600 programmers
- improved Terminal error handling when using USB COM port addapters
- editor tabs can now be re-arranged using drag and drop
- the file close button is now placed on the active editor tab
- added a drop down button in the tab page control to allow selecting the active editor file
- made small bug fixes and improvements in the IDE
V2.04.1 Commercial Release
- fixed: in certain situations the linker could allow a variable, placed at an absolute address using the @ operator, to overlap another variable for which the @ operator wasn’t used
- fixed: when using the LARGE memory model (for chips with 256kbytes of FLASH only), calling a function using a pointer to function, could sometimes result in a hardware stack unbalance, if the function would take as argument the address of a char or int local variable located in a register
- fixed: when a numeral with the value in the 0..31 range was casted to a pointer to a volatile char or int, dereferencing the pointer generated register R0..R31 access instructions, instead of the required LDS or STS. This created problems when accessing I/O registers, with addresses in the 0..31 range, for the ATxmega chips.
- removed the limitation: when a literal char string enclosed between quotes, is passed as an argument to a function parameter of pointer to char, the pointer now can point to any memory type: RAM, EEPROM or FLASH, not only FLASH like in previous versions. The CodeVisionAVR C Compiler Reference|Constants Help topic and User Manual chapter were updated to reflect this change.
- enhanced the code optimizer
- improved the linker: RAM is not allocated anymore for static variables defined in functions that are not used in the program and are removed by the linker
- improved the warning reporting for expressions with possibly no effect
- significantly improved speed for Project|Compile and Project|Build
- modified the Power Management functions (sleep.h) in order to ensure that interrupts are globally enabled before entering any power reduction mode. The global interrupt enable state is restored to it’s initial value after exiting from any power reduction mode.
- updated the mega162.h header file so that the powerdown mode will be supported for the ATmega162 chip
- I/O registers bits definitions were added to the device header files. For projects created with prior versions, these definitions are not enabled by default. In order to enable them the Project|Configure|C Compiler|Code Generation|Preprocessor|Include I/O Registers Bits Definitions option must be activated.
- in order to eliminate naming conflicts with I/O registers bits definitions, the names of the PCINT0, PCINT1, PCINT2, PCINT3 interrupt vectors were changed to PC_INT0, PC_INT1, PC_INT2, PC_INT3 in the following header files: 90usb1286.h, 90usb1287.h, 90usb646.h, 90usb647.h, 90usb162.h, 90usb162.h, mega1280.h, mega1281.h, mega2560.h, mega2561.h, mega640.h, mega1284p.h, mega162.h, mega164.h, mega165.h, mega168.h, mega168p.h, mega169.h, mega324.h, mega325.h, mega325p.h, mega3250.h, mega3250p.h, mega328p.h, mega329.h, mega329p.h, mega3290.h, mega3290p.h, mega406.h, mega48.h, mega48p.h, mega644.h, mega644p.h, mega645.h, mega6450.h, mega649.h, mega6490.h, mega88.h, mega88p.h, tiny10.h, tiny13.h, tiny24.h, tiny25.h, tiny44.h, tiny45.h, tiny48.h, tiny84.h, tiny 85.h, tiny88.h, tiny261.h, tiny461.h, tiny861.h, tiny2313.h . If these interrupt vectors are used in your programs, their names must be updated.
- in order to eliminate naming conflicts with I/O registers bits definitions, the names of the INT0...INT7 interrupt vectors were changed to EXT_INT0...EXT_INT7 in the following header files: mega1280.h, mega1281.h, mega2560.h, mega2561.h, mega640.h, mega1284p.h, mega164.h, mega324.h, mega644.h, mega644p.h. If these interrupt vectors are used in your programs, their names must be updated.
- fixed: if the serial communication Terminal was active and changes were made to it’s configuration, these changes were applied only after the Terminal was closed and reopened
- added the following shortcuts to the tabbed editor interface: Ctrl+F4 - close current editor tabbed window, Ctrl+Tab - switch to the next editor tabbed window, Ctrl+Shift+Tab - switch to the previous editor tabbed window
- added the File|Close Multiple files menu command
- improved the Project|Clean Up function
- added the Project|Check Syntax menu, that performs a faster syntax check for the currently edited file. This function can be also executed from the popup menu that is invoked by right-clicking in the editor window.
- added the Settings|IDE menu that allows, among others, to disable the hints in the Code Navigator, Code Information and Function Call Tree windows
- improved the Search|Find in Files and Search|Replace in Files menu functions: all the project files are not automatically opened during multiple file search/replace anymore
- made some minor bug fixes and improvements in the IDE
- improved the CodeWizardAVR: it’s window is not modal anymore
- changed: now the editor caret moves to the upper/lower row when it is located at the begining/end of the line and the left/right arrow keys are pressed
- documented in the Help and User Manual: right clicking on the down arrow located on the right of each toolbar, opens a pop-up menu that allows to individually show/hide the toolbars
- documented in the Help and User Manual topic: CodeVisionAVR C Compiler Reference|Limitations that the %s format specifier used by the Standard C I/O Functions : printf, sprintf, snprintf, vprintf, vsprintf and vsnprintf can’t allow to output char strings longer than 255 characters
V2.04.0a Commercial Release
- minor tweaks in the copy protection in order to ensure better compatibility with some Windows Vista installations
- minor fixes in the menu toolbars
V2.04.0 Commercial Release
- redesigned and enhanced the IDE
- CodeVisionAVR is now compatible with Windows XP 64bit and Vista 64bit
- reduced the number of work files created by the compiler and IDE
- enhanced the editor’s function parameters and structure/unions members autocomplete
- improved the compiler’s store/load optimizer
- improved the linker when allocating global variables to registers
- added support for the ATxmega64A3, ATxmega128A3, ATxmega192A3 and ATxmega256A3 chips
- changed the name of the General Power Reduction register from PR to PRGEN in the xmstruct.h header file
- added the definition for the AES bit of the PRGEN register in the xmbits_a1.h and xmbits_a4.h header files
- corrected the address of the IRCOM register in the xmega64a1.h, xmega128a1.h, xmega192a1.h and xmega256a1.h header files
- corrected the bit positions of CLKOUT and EVOUT bits in the PORTCFG register in the xmbits_a1.h and xmbits_a4.h header files
- corrected the __ds1820_scratch_pad structure definition from the ds1820.h header file, in order to prevent the failure to detect a DS1820 chip by the ds1820_init function when ANSI char to int promotion was enabled in the project configuration
- corrected the __ds18b20_scratch_pad structure definition from the ds18b20.h header file, in order to prevent the failure to detect a DS18B20 chip by the ds18b20_init function when ANSI char to int promotion was enabled in the project configuration
- fixed: the result of sizeof(array + scalar) or sizeof(array - scalar) was the size of the array instead of the size of a pointer to that array
- fixed: the boot loader code start address was not correct for the ATxmega chips
- fixed: the compiler now generates correct instructions for reduced core chips (ATtiny10)
- changed: the compiler now produces a warning, that can be deactivated, for unknown #pragma directives, instead of an error like in previous versions
- added in Project|Configure|C Compiler|Code Generation the option Enable auto Var. Watch in AVR Studio in order to allow watching local automatic variables for reduced core chips (ATtiny10)
- added: locally declared enumerations can be allocated to registers, if possible
- fixed: the CodeWizardAVR didn’t allow to enable the external interrupt INT1 for the ATtiny261, ATtiny461 and ATtiny861 chips
- added in the CodeWizardAVR the possibility to initialize the PORTA for the ATtiny48 and ATtiny88 chips in TQFP32 package
- increased the LPT port ISP FLASH programming speed under Windows 2000, XP and Vista
- added the Help topic: CodeVisionAVR Integrated Development Environment|Using the Integrated Development Environment Workspace in order to reflect the changes made in the new IDE
- updated the Help topics: RAM Memory Organization and Register Allocation and Limitations in order to provide additional information regarding the AVR8L core chips
- added the Help topic: Transferring/Deactivating the License
- moved the #pragma compiler commands descriptions from the C Preprocessor Help topic, to the new topic: Compiler Directives
- updated the MULTFILE example in order to better show the techniques used for projects consisting of multiple program modules
V2.03.9 Commercial Release
- added support for the ATA6285, ATA6286 and ATA6289 chips in the Compiler and Programmer
- added support for the ATtiny10 chip in the Compiler, CodeWizardAVR and Programmer
- improved the code optimizer
- improved error and warning checking
- added minor improvements to the IDE
- added the missing definition for the UCSR1D register in the 90usb82.h and 90usb162.h header files
- modified the linker so that global variables, placed at absolute addresses using the @ operator, will not overlap other global variables
- disabled #pragma glbdef+ when compiling libraries
- fixed: when the SMALL memory model was used for bootloaders, the startup code incorrectly initialized the RAMPZ register of the ATxmega chips
- fixed: the #pragma keep+ didn’t have any effect if the variable, constant or function was previously declared as extern
- fixed: functions that return structures or unions could return incorrect results, if the returned structure/union was the last declared local auto variable
- fixed a bug which occured in the lcd_putchar function from lcd.lib, lcd4x40.lib, lcdstk.lib, when the text line was full and passing to the next line was necessary
- fixed: the new copy protection prevented the program to run under Windows 98SE
V2.03.8 Commercial Release
- added support for the ATmega1284P chip
- made small improvements to the syntax analyzer, linker and IDE
- fixed: initializing during declaration of a local bool variable with the result of an expression could sometimes not be performed correctly
- fixed: for the ATtiny261/461/861 chips, the CodeWizardAVR generated code for Timer0 overflow ISR referenced the TCNT0 register instead of TCNT0H and TCNT0L
- fixed: for the ATtiny24/44/84 chips, when the ADC was enabled, the CodeWizardAVR generated incorrect initialization of the ADLAR bit in the ADCSRB register
- fixed: in certain extremely rare cases the COFF object file generator could produce an internal error
V2.03.7 Commercial Release
- improved the code optimizer
- improved error checking
- added support for the ATxmega16A4, ATxmega32A4, ATxmega64A4 and ATxmega128A4 chips in the C Compiler and Programmer
- fixed: the malloc function (stdlib.h) didn’t return a NULL pointer if the heap size allocated in the project configuration was set to 0
- fixed: an incorrect error message occurred when programming the lock bits for the ATmega48 chip using the JTAGICE MkII
V2.03.6 Commercial Release
- small improvements in the load/store code optimizer
- added support for anonymous structure/union members
- added support for the ATxmega192A1 and ATxmega256A1 chips
- fixed: in certain cases warnings appeared when initializing a global enumeration with it’s own members
- fixed: no error was produced when the sizeof operator was applied to a structure or union that was never declared
- fixed: in certain cases bit variables were not listed in the .map file
- fixed: in certain cases pointer memory storage address didn’t appear in the Code Information window
- fixed: the function ds1302read from ds1302.lib always returned 0
- fixed: after STK600 support has been added in V2.03.5, reading the fuse bytes for some chips produced errors with the AVRISP MkII and STK600 programmers
V2.03.5 Commercial Release
- fixed: in some very rare cases when two interrupt service routines shared the same code sequences at the end, the first interrupt service routine may not save all affected registers at startup
- fixed: COFF debugging information wasn’t created if a global variable was not defined in a .C program module listed in Project|Configure|Files
- fixed: the line #include <i2c.h> was missing from the ds1621.lib file
- updated the User Manual and the Help code examples to use #include <stdlib.h> instead of #include <math.h> for the abs function definition
V2.03.4 Commercial Release
- improved compiler error and warning checking
- more detailed linker error reporting
- improved the code optimizer for logic expression evaluation
- increased the compilation speed
- added ATxmega128A1 and ATxmega64A1 chips support
- support for the ATxmega chips is provided only for the C Compiler and STK600 Programmer in the JTAG mode. When creating a new project for these chips, do not use the CodeWizard and select the correct chip type in Project|Configure|C Compiler|Code Generation|Chip. - the Standard C I/O Functions use by default the USARTC0. This can be changed by defining the _ATXMEGA_USART_ macro as described in the corresponding Help topic. - the SPI functions use by default the SPIC controller on PORTC. This can be changed by defining the _ATXMEGA_SPI_ and _ATXMEGA_SPI_PORT_ preprocessor macros as described in the corresponding Help topic. - the I2C, 1 Wire, LCD, RTC functions do not yet support the ATxmega chips - the @ operator now issues only a warning, not an error, for the attempt of placing a global variable outside the existing physical RAM area
- fixed: if a variable located in EEPROM was declared as extern in a program module and was later initialized during definition in another program module, the initialization wasn’t performed, only memory space being allocated for it
- fixed: initialization during declaration of a local bit or float variable with the non-constant result of an expression wasn’t performed
- fixed: global variables located in registers sometimes appeared listed several times in the .map file
- fixed some formating problems with the preprocessor output .i files
- fixed a typing error in ds1302.lib which lead to an assembly error
- modified the ftoa and ftoe functions from stdlib.h so that they will output the -NAN and NAN values
- modified the printf and sprintf functions from stdio.h so that they will output the -NAN and NAN values
- fixed: for chips that had the Crystal Oscillator Divider list box set to a value different than 1, the CodeWizardAVR didn’t divide the clock frequency after loading a previously saved CodeWizardAVR project (.cwp) file
- improved the syntax highlighting for preprocessor directives
- multiple line comments can now be folded
- the opened header files are no more closed before Project|Compile, Project|Build or Project|Build All
- improved the items display speed for the Code Information window if alphabetical sort was enabled
- fixed: the bookmarks and folded code state was not preserved for the Header files after Project|Compile, Project|Build or Project|Build All
- added support for the Atmel STK600 programmer
- added in Settings|Terminal the option to enable or disable reseting, at Terminal startup, of the development board connected to the ISP
V2.03.3 Commercial Release
- fixed: in some cases when a syntax error was signaled in a header file, that was the last one in the Headers list displayed in the Code Navigator, this file remained locked and changes to it couldn’t be saved in the Editor
- improved error reporting when initializing multidimensional arrays of char with literal strings
- fixed: a “possible loss of precision” warning was generated when assigning a PORT.bit to a bit variable
- fixed: a “possible loss of precision” warning was generated when a function returned a bool and the result of the return expression was obtained by using the ! operator applied to a char, int or long
- enabled the #pragma vector preprocessor directive
- fixed: 0b binary numbers were not syntax highlighted in the Editor
- fixed: in certain cases the Find in Files function took a very long time to be executed
- the text and background colors of the folded code block hint window now match the colors of the collapse mark hint
V2.03.2 Commercial Release
- new ANSI C compatible C front-end
- the bool data type was added
- the @ operator can now be used with variables located in EEPROM too
- there is no need to specify the ‘flash’ or ‘eeprom’ memory attribute during structure or union type definition. Therefore the same structure or union data type can be easily located in any memory area during variable declaration.
- the compiler now makes distinction between the ‘const’ type qualifier and the ‘flash’ memory attribute. In order to maintain compatibility with V1.25.x projects, the Project|Configure|C Compiler|Code Generation|Store Global Constants in FLASH Memory must be checked. If this option is not checked, identifiers declared with the ‘const’ type qualifier will be placed in RAM.
- the Code Information tab, present in the Navigator after the first Build, displays detailed information regarding defined data types, preprocessor macros, function and variables declarations, included header files, memory and register allocation
- the abs, cabs, labs and fabs functions were moved from the math.h header to the stdlib.h header
- the preprocessor does not use the old ‘funcused’ directive, when it is found it is always evaluated to 1
- added the #message preprocessor directive
- improved error and warning checking
- improved linker: only the modified C source files are compiled when the Project|Build command is executed
- improved COFF object file generator
- improved code optimizer
- completely redesigned text Editor with improved syntax highlighting for both C and AVR assembly
- added function parameters and global structure/union members auto complete
- improved code folding
- code folding state can be saved and restored
- bookmarks state can be saved and restored
- added automatic matching brace highlighting when the user places the cursor before the brace
- added automatic file saving at specified time interval
- the Code Navigator was redesigned and displays project information in a more logical way
- an additional Code Information tab is present after a project build. It displays detailed information about the included header files, preprocessor macro definitions, type definitions, global/static variable declarations, memory allocation and function definitions.
- added the Functions Call Tree tab in the Navigator
- the new Project|Configure|Files|Output Directories allows to specify in which directories the files generated by the compiler/linker will be placed.
- improved toolbar
|