October 31, 2019
A new release of the CCS C compiler for PICmicro(r) microcontrollers has been released.
The new version is: 5.091
Recent changes include:
5.091 Fixed an Index out of Bounds issue in the IDE Wizard that a couple devices were having.
5.091 Updated debugger for PIC24FJ256GA406 family that was causing some logic to fail, while(i>0) for example, when stepping in/over line.
5.091 Updated some Enh-16 debuggers to fix an issue with reading/writing EEPROM memory from debugger Data EE window.
5.091 Fixed an issue with disabling ADC peripheral for PIC16F18426 family.
5.091 Fixed the ROM tab of the debugger to show all the memory.
October 04, 2019
5.090 An optimization bug affecting most PIC18 parts and the baseline PIC16 parts is fixed
5.090 Added a debugger for the PIC16F177x family
5.090 Improved error detection for when an incorrect stream identifier is passed to I2C functions
September 20, 2019
5.089 #rom crc16 problem affecting some programs is fixed
5.089 An optimization bug affecting K42 parts is fixed
5.089 Fixed an issue with setting break points in the debugger on some Enhanced 16 devices
5.089 Fixed an issue with reading and writing eeprom memory with the debugger on the PIC16F183xx family
5.089 Updated i2c_read() function so for 1 param it figures out if it is stream or ACK.
5.089 Added a new i2c_write_slave() function so slaves can push data to the master in an ISR without waiting
5.089 Added MAX_BAUD option to HW #use spi() to make the baud rate <= instead of as close as possible
August 23, 2019
5.088 #bit now allows you to reference another variable id
5.088 A problem with malloc() in multiple compilation units is fixed
5.088 A problem with port G on the PIC16F19197 family is fixed
5.088 make32() has been updated to allow typecasting to specify the parameter sizes
5.088 An optimization bug affecting 24 bit parts and -= when there are mixed types is fixed
5.088 A PIC18 optimization bug dealing with accessing constant float arrays is fixed
5.088 A problem with #bit on the K42 parts in some expressions is fixed
5.088 #export fixed to export rom data
5.088 #rom crc16 updated to allow multiple crc's in the same program
5.088 A PIC24 optimization bug affecting printf's with several very complex expressions is fixed
5.088 A code generation for the PIC18 Linux compiler that generated extra instructions for ~ is fixed
5.088 Fixed an issue with INTR_NORMAL and INTR_ALTERNATE setting/clearing incorrect bit for some PCD devices
5.088 Fixed an issue with read_adc() function reading incorrect register in some cases on K42 and K83 devices
5.088 Fixed a PCD issue causing i2c_write() to hang when operating as Master and sending the I2C global address
5.088 Fixed an issue with the K42 debugger that required pressing Run button twice in some cases to get it to run
5.088 Added a debugger for PIC18FxxQ10 devices
5.088 Added some new features to Interface Designer program, and fixed a couple bugs in C Code generation that was causing exceptions to occur.
July 28, 2019
5.087 Added new spi_transfer(), spi_transfer_read() and spi_transfer_write() functions to #use spi() library.
5.087 Updated #use rs232() to be able to use hardware enable pin on PIC18FxxK42 and PIC18FxxK83 devices.
5.087 Wizards updated for devices with remappable peripheral pins.
5.087 Fixed #use spi() when setup for a software implementation on PIC18FxxK42 devices.
5.087 setup_adc_ports() now sets analog pins above AN50 correctly on dsPIC33EVxxxGMxxx devices.
5.087 Fixed an issue on some devices with built in segmented LCD peripheral not initializing segments correctly.
5.087 ccsc.exe was sometimes generating a Windows error from MPLAB, this is now fixed.
5.087 A linker error when using dynamic memory (malloc) is fixed.
5.087 The register qualifier has been updated to support bit variables.
July 10, 2019
5.086 New setup_mf_capture() & get_mf_capture() functions for the 18F4431 Motor Feedback Input Capture.
5.086 Fixed some issues with the read/write_configuration_memory() on PCD.
5.086 Fixed an issue when using Timer 0 for RTOS on some newer PIC18 devices.
5.086 Fixed an issue with PCD H/W i2c_transfer() function slave ACK.
5.086 Wizard updated for the newest ADC peripherals and remappable peripheral pins.
April 17, 2019
5.085 Fixed a few issues with #use pwm() not working on some PCD chips in some configurations.
5.085 Fixed an issue with #use pwm() not working on K40 devices, when using hardware PWM.
5.085 The IDE editor was modified to not jump around at the end of a file.
5.085 Fixed a bug with less than or greater than with a variable integer and constant float.
5.085 An issue with the USB library in case sensitive projects is fixed.
April 06, 2019
5.084 A problem in debugging where some fuses were not set right on some parts is fixed.
5.084 A problem where paths were sometimes stripped off module names in the project file is fixed.
5.084 An optimization bug is fixed where the disable interrupts for protected functions could be a little late.
5.084 Relational operators were not working right on 8 bit chips when they involved constants larger than the type
5.084 The compiler now matches void pointers to any pointer for overloaded function selection
5.084 An attempt to initialize a local static variable with another local variable now throws an error
5.084 Support for CK chips added
5.084 Fixed issue with #use delay() giving error for restart_wdt option in the PCD compiler
5.084 pwm_set_duty_percent() function no longer sets duty to 0% when 100% is specified with S/W PWM at max resolution
5.084 Invalid type qualifiers on a typedef id now throw an error
5.084 Optimized negative global initializers were sometimes skipped, now fixed
5.084 A problem with #define scope when using #module is fixed
5.084 Overlapping #rom now gives a hard error instead of a warning
March 07, 2019
5.083 Support for dual core chips has been added
5.083 A debugger issue with K42 parts is fixed
5.083 A problem compiling some projects in MPLAB-X is fixed (file not found "")
5.083 Fixed an issue with setup_spi() for PIC18FxxK42 family when setting up SSx polarity.
5.083 Updated #use rs232() for the hardware UART on K42/K83 so the level is right when the peripheral is idle.
5.083 Corrected IOC and some ADC defines for K42 devices.
5.083 Fixed some issues with i2c_transfer() functions when using hardware I2C peripheral on K42 and K83 devices.
5.083 Updated i2c_transfer() functions to return ACK/NACK bit.
5.083 Slave i2c NACK's now cause the i2c_transfer() functions to do an I2C stop and exit immediately.
5.083 Fixed an issue with pwm_set_duty_percent() function on some devices when setup for a Software PWM.
5.083 Some pointer type mis-match warnings in the standard header files is fixed.
5.083 Fixed a global variable corruption issue with write_program_eeprom() and ENH16 devices.
December 21, 2018
5.082 Passing variables to output_xxxx() on K42 devices is fixed.
5.082 Fixed an issue with H/W I2C on dsPIC30F devices not returned correct value for first read
5.082 Fixed an issue with i2c_transfer() function not using correct stream when using multiple I2C streams
5.082 An IDE issue with comment highlighting is fixed
5.082 Debugger support for ICD4 and PICkit4 added
5.082 A typeing issue with parametters declared as pointers to pointers is fixed
5.082 An optimization bug when there is a lot of bank switching in a conditional of an IF is fixed
5.082 setup_pmp() registers were wrong for some chips, now fixed
5.082 An optimization bug related to bit field comparisons is fixed
September 20, 2018
5.081 An error 103 when MPLAB uses both / and \ in the path is fixed.
5.081 A error with the reset vector on a 16F570 when interrupts and internal osc are used is fixed.
5.081 A bug with int1 arrays inside structures on some parts is fixed.
5.081 In PCD some constants were not properly promoted to the right type for an expresion. Now fixed.
5.081 An optimization bug affecting SFR's on K42 parts is fixed.
5.081 A bank switching optimization bug affecting all PIC18 parts is fixed.
5.081 Help files have been updated
5.081 Many example programs have been updated
5.081 Added built-in functions for SENT peripheral.
5.081 Added built-in functions for the new DMA peripheral for newer PCH devices.
5.081 Fixed an issue with crc_calc() functions returning incorrect value for some PCD devices.
5.081 Fixed an issue with Interface Designer not downloading some images correctly.
5.081 Fixed an issue with #use I2C() baud rate for some PCD devices when using HW I2C peripheral.
5.081 Updated set_pwmx_duty() function for newer M/H devices to accept 8 or 10 bit values like the older parts.
July 20, 2018
5.080 A problem with memcpy() throwing an error under Linux is fixed
5.080 A bug involving passing arrays to an inline function for some chips is fixed
5.080 A problem with some fields with a indirect type inside a const struct throwing an error is fixed
5.080 A linker error finding files when an output directory is used is fixed
5.080 Fixed issue with assigning output pins with #pin_select and pin_select() function on some PCD devices
5.080 A bug in make32 for PCD parts when assigned using an indirect address is fixed
5.079 A problem with some interrupts on the K42 parts starting in the wrong bank is fixed
5.079 A problem with the IDE finding units when the output directory is specified is fixed
5.079 A wrong warning 227 on some chips and options is fixed
5.079 The ++ operator when used on multi-byte fields in a packed structure sometimes did not work
5.079 A PIC24 optimization issues was fixed related to integer to float conversion
5.079 A PCH problem with function pointers inside structures for some syntaxes is fixed
5.079 A fix was made for dual partition mode
5.079 Fixed restart_wdt() for devices with a WWDT and window is set to less then 100 percent
5.079 Fixed issue with port_x_pullup() function not clearing WPUEN bit for some chips
April 2, 2018
5.078 Fixed an issue with the PLL for K42 devices when using an external clock source.
5.078 Some PCD functions called from an ISR were not being protected when also called from main().
5.077 Added debugger support for the K42 parts.
5.077 Fixed an issue with the UART2 and I2C2 peripherals for the K42 device family.
5.077 Fixed an issue with #use rs232() transmit buffer sometimes sending an extra character in the PCM and PCH compilers.
5.077 Fixed an issue with #pin_select and RX1 not assigning UART receive pin correctly for PIC16F1579 family.
5.077 A problem with multiple compilation units using stdlib.h on some parts is fixed.
5.077 Object file size differences between compiles due to inconsistant optimization is fixed.
5.077 A PIC18 bug with the -- operator on complex indirect addresses is fixed.
5.076 Added i2c_transfer(), ic2_transfer_in() and i2c_transfer_out() built in functions
5.076 Added HW I2C support for K42 devices, Master mode must use new transfer functions
5.076 Fixed a couple register address issues with port_x_pullup(), write_eeprom() and read_eeprom() for K42
5.076 Fixed an issue with #use rs232() when using even or odd parity and K40 devices
5.076 Fixed an issue with #use rs232() when using even or odd parity and transmit buffer
October 20, 2017
5.075 The syntax "#define x x" is now treated as it is in a GNU compiler
5.075 An incorrect opcode showing up in the PIC16F188xx LST files is now fixed
5.075 The constant string limit has been increased for chips that can support it
5.075 Some _fixed(x) problems when mixing types have been fixed
5.075 PCD output_toggle() function now accepts a variable for the pin to toggle
5.075 Fixed issue with CCP peripherals for PIC16F176x family
5.075 Fixed issue with setup_pwm9() function for PIC16F1778
5.075 Fixed issue with set_adc_channel() function incorrectly clearing ADC reference bit for PIC16F1914 family
5.075 Fixed issue with assigning PIN_D0 to peripheral with #pin_select for PIC18FxxJ94 family
5.075 Fixed issue with enable_interrupts(INT_CN_PIN | PIN_xx) not working for some PCD devices
5.075 Fixed issue with clcx_setup_input() function not working for PIC16F18877 family
5.075 Fixed issue with assigning pins to T3CKI and T5CKI with #pin_select for PIC16F18345 family
5.075 Various Interface Designer fixes and updates
5.074 Fixed an issue with the HW I2C not working for some PCD devices.
5.074 Fixed an issue with pin_select() function not working for some devices.
5.074 Added read_device_info() and read_config_info() for devices that have a Device Information Area (DIA/DCA).
5.074 Fixed an issue with Interrupt flags not being cleared correctly on PIC16F188xx devices in some cases.
5.074 Fixed an issue with #use delay() setting clock configuration fuses incorrectly for some dsPIC30F devices.
5.074 Fixed issues with "Verify Blank", "Verify Chip=File", "Read Chip", and "Erase Chip" when using LoadNGo and Prime8 in CCSLoad.
5.074 Fixed clock speed calculation for the 24FKL family debugger.
5.074 Fixed issues with cursor position in IDE when line numbers are hidden.
5.074 Fixed an issue where code completion in the IDE would replace too much text.
5.074 Added debuggers for the 16F183xx, 16F188xx, and 16F1703/7 families.
5.074 Debugger lines numbers being off when passing a source line on the command line is now fixed.
5.074 A problem with -= on 24 bit parts when used in an expresion with a -> is fixed.
5.074 An enhanced16 optimization bug in some interrupt handlers is fixed.
5.074 A problem with #id and multiple compilation units is fixed.
5.073 CHAR_BITS in limits.h is now 8
5.073 Warnings about memory already used with #rom are fixed
5.072 Support for the newest devices has been added
5.072 Fixed an issue with #use pwm() and the pwm_set_duty_percent() function when used to set the duty to 100% it would instead set it to 0% is some cases.
5.072 Fixed an issue with #pin_select for PIC18F24K40 and PIC18F25K40 devices.
5.072 Fixed an issue with setup_comparator() and dac_write() function for PIC18F14K22 family.
5.072 Fixed an issue with setup_oscillator() function for PIC24FJ1024GA606 family that was causing it to not perform the clock switching procedure correctly.
5.072 Fixed an issue with write_configuration_memory() function for PIC24F32KA304 family.
5.072 Added debuggers for 24FJxxxGx7xx and 16F153xx families.
5.072 Fixed some issues displaying the statistics file in the IDE.
5.071 Support for the newest devices has been added
5.071 Added support for time.h to tick.c driver
5.071 Fixed issue with set_tris_x() function for PIC16F527
5.071 Fixed an issue with read/write_program_memory() when using a structure element for the address in PCH
5.071 Fixed an issue with #pin_select for PIC18F24/5K40 devices because of an errata
5.071 Updated #use touchpad() for the PIC18FxxJ94 family when using a 64MHz system clock
5.070 An internal error when using USE TOUCHPAD is now gone
5.070 port_d_pullups() is now fixed for K40 parts
5.070 Updated the COF file format to be able to debug more than 65K lines
5.070 A PCH optimization bug (opt>5) has been fixed
5.070 PCD RAM memory allocation is now more efficient
5.069 RAM allocation has been optimized to reduce unused gaps.
5.069 Updated write_program_memory() function to fix a trap issue on 24 bit Gx6xx parts.
February 15, 2017
5.068 A problem with K40 interrupts is fixed
5.068 A bug with two dimensional arrays is fixed
January 23, 2017
5.067 A decompression database error for some parts is now fixed
5.067 Added the PIC18FxxK40 family debugger
5.067 Fixed an issue with PIC16F18877 and PIC16F18875 that was causing compiler to access a register incorrectly
5.067 Fixed a couple issues for PIC16F1619 family which was causing built-in PID and CCP functions to not work
5.067 Fixed an issue with #opt compress for Enhanced 16 devices
5.066 New graphical Interface Designer now included with the IDE compilers
5.066 IDE now supports Ctrl++ and Ctrl+- shortcuts to quickly zoom text.
5.066 Fixed an IDE issue with editor bookmarks when using "Save As".
5.066 IDE Debugger "Debug Configure" tab can now supply VDD to the target while debugging with the ICD-U80.
5.066 Fixed an issue with #use spi() and #use fixed_io() for PCD compiler.
5.066 Fixed an issue with #use delay() writing incorrect register for OSC TUNE bits on some dsPIC30F devices.
5.066 Added some missing PIC18LF chips to USB driver.
5.066 Fixed an issue with interrupt relocation for PIC18 USB Bootloader.
5.066 An Enhanced PIC16 problem with PCLATH being corrupted after some calls via function pointers is fixed
5.065 Added ability to open history files from the File History Viewer in the IDE
5.065 A bit_set/clear bug was fixed in PCD when using multi-byte indirection
5.065 An undeserved error message for some sprintf() uses is now fixed
5.065 Fixed issue in the IDE with "Open File at Cursor" when the file is not in the main project directory.
5.065 Fixed an issue with the adc_read() function for MCP1911x devices.
5.065 Fixed an issue with #use touchpad for PIC18F45K50 family.
5.065 Fixed an issue with spi_init() function that could cause a trap to occur for PIC24 GA/GB2xx, GA/GB4xx and GA/GB6xx families.
5.065 Fixed a setup_compare() issue when used with remappable peripheral pins not assigned
5.064 A PCD bug with some complex math operations when indirection is used is fixed
5.064 A device database issue affecting small chips with only one GPIO port is fixed
5.063 Added support for the PIC18F27K40 Family
5.063 Fixed an issue with get_timer_3() get_timer_5() and get_timer_7() for some PIC16 devices
5.063 A math error related to fixed point multiplication is fixed
5.063 Added 33EPxxGS50x programming support
5.062 Fixed an issue with erase_program_eeprom() function for PIC12F617
5.062 Fixed an issue with Software Slave SPI returning incorrect results in some modes
5.062 Fixed an issue with interrupts on some 24 bit devices
5.062 Fixed an issue in reading RAM in PCW debugger for some PIC16s
5.062 Fixed a problem with #build(bootload) for some PIC16 parts
5.061 delay_cycles(1) was fixed to generate a single NOP like it used to
5.061 Some undeserved warnings concerning enum and pointers are fixed
June 25, 2016
5.060 A bug in definedinc() when used in the preprocessor is fixed
5.060 A problem #reserve'ing registers in bank 15 of 16 bit parts is fixed
5.060 A bug concerning #module and preprocessor identifiers is fixed
5.060 An internal error when some pin combinations are used in #USE TOUCHPAD is fixed
5.060 A bug in #opt compress is fixed
5.060 Fixed a bug with #use i2c() when specifying hardware pins on devices that only have Slave I2C
5.060 Fixed a bug with setup_wdt() in PCD when using it to set the WDT timeout time to 1 ms or 2 ms
5.060 IDE debugger now has the correct RAM size for all chips
5.060 IDE debugger now correctly reads mouse-overs, watches, and SFRs/peripherals that are in high RAM addresses
5.060 IDE debugger no longer attempts to read unimplemented or invalid RAM addresses
5.059 Fixed bug with spi_xfer() function not returning correct value in certain cases
5.059 Fixed function used but not defined error on some devices for for setup_comparator_4()
5.059 Fixed an issue with assigning High-Speed PWM unit to Secondary Time Base
5.059 Updated MPLAB-X tool interface to work with the latest MPLAB-X version
5.059 Programming/debugging support added for the Microchip Curiosity board
5.059 Fixed an IDE issue with code folding source lines with multiple braces on the same line
5.059 Fixed an IDE problem where Read-Only files could still be edited by the user
5.059 Added to the IDE: open > Source File Read Only
5.059 A bug in the ?: when the argument type is pointers to ROM is fixed
5.059 Some undeserved string truncated and enum/pointer mis-match warnings are now removed
5.059 Several device database fixed have been made
5.058 A debugger problem with some 24 bit parts is fixed
5.058 Some device database problems with certain parts are fixed
5.058 Some warning problems are cleaned up
5.058 New RS232_BUFFER_ERRORS variable for use when using buffered RS232
5.058 Second ADC module now fully supported for the 16F18855
5.058 #use pwm and setup_vref() functions fixed for some chips
5.057 #use i2c now defaults to hardware mode when hardware pins are specified
5.057 A bug in #use timer when timer 0 is specified on some chips is fixed
5.057 A mouse-over issue when viewing structures is cleaned up
5.057 A debugger problem in PCM when stepping over in-lined functions is fixed
5.057 Some undeserved warnings "Pointer types do not match" have been removed
5.057 A optimization bug on PCD when using >> with mixed types and one type is an int32 is fixed
5.057 A problem with a multiple + operators on bytes with a non-byte assignment on PIC16/18 parts is fixed
5.056 Some undeserved warnings about mis-matched pointers is fixed
5.056 Added support for the PIC16F188xx parts
5.056 IDE now has a wrap around search feature
5.056 A typecasting problem with ROM pointers on 128K parts is now fixed
February 4, 2016
5.055 Fixed a problem with some PIC24 parts where the configuration words were in the wrong location
5.055 Corrected some PIC24 I2C glitches
5.055 Fixed a problem with the setup_hspwm_unit() function on parts with a PWMLOCK fuse
5.054 A problem with the SPI bit rate on some PIC16/18 parts is fixed
5.054 Fixed the dac_write() on the dsPIC33...GS parts
5.054 A bug preventing the CNI interrupt from enabling in some circumstances is fixed
5.054 A PWM issue with the PIC16F18345 part is fixed
5.054 See the readme.txt file for a few new features
5.053 A corrupted device database in the V5.052 release is fixed
5.052 Variable length argument functions now allow a single parameter
5.052 A bug with some 16 bit additions done in a call to spi_write() has been fixed
5.052 A problem with the bit order in lcd_symbol() when used with 16 bit segments is fixed
5.051 A linker bug affecting multiple compilation unit builds is fixed
5.051 A segmentation fault for some Linux compiles is fixed
5.051 An optimization error involving << with mixed byte and dword operands is fixed
5.051 Fixed a syntax error with spi_write4() and spi_read4() functions for 24 bit parts
5.051 Fixed a syntax error with #pin_select for some PIC18 devices
5.051 Fixed a bug when #opt compress is used on some programs
5.051 Fixed an issue with #use pwm and MCP1911x devices
5.051 The 24 bit Wizard now has a MODBUS configuration page
October 1, 2015
5.050 Support for the new 4x chips is in
5.050 An incorrect warning concerning enum assignments is removed
5.050 A linker bug that sometimes combined global variables with the same name is fixed
5.050 Added USB and TCP/IP wizards for 24 bit parts
5.050 Fixed a bug in #USE PWM for parts with more than 6 remappable OC pins
5.050 Added a PLL_WAIT option to #use delay to wait for the PLL to start up
5.050 Fixed a bug in tx_buffer_available() where the wrong count was returned
5.050 Fixed a bug when negative number were used with %W on 24 bit parts
5.050 Added a feature to use OSCTUNE on 24 bit parts to get the requested clock speed
5.049 Added support for the new and different 24 bit GS chips and the 16F183xx chips
5.049 A problem with PIC24 function pointers inside a structure in large memory spaces is fixed
5.049 Debugger issue with some floating point numbers is fixed
5.049 Fixed a bug involving signed ints in a switch statement
5.049 An inline assembly error when using an indirect goto is fixed
5.049 Debugger now shows a full 32 bit enum as it should
5.048 Compiler now does type checking on EXTERNs
5.048 A compiler IDE hang problem with some complex structures is fixed
5.047 A bug converting some floating point numbers just below zero to an integer is fixed
5.047 A bug with 32 bit enum's is fixed
5.047 A problem with the 1705 comparator is fixed
5.047 IDE mouse-over improved for structures and ROM variables
May 21, 2015
5.046 Fixed an problem with -> where the target was a bit field of another structure on PCM parts
5.046 An IDE issue with error files kept outside the project directory is fixed
5.046 A wrong checksum in "#ID checksum" when using #fill_rom is fixed
5.046 A PIC24 problem with oversized printf widths on %LU and %LD is fixed
5.046 Support for auto clock tuning is added for chips that have this feature
5.046 A #USE RS232 bug is fixed when buffers larger than 256 are specified
17 Apr 2015
5.045 #locate now issues a warning if you locate a variable on top of another
5.045 A PIC24 problem with the < and > operators on floats with interrupts is fixed
5.045 A problem with multiple compilation units and some static variables not being zeroed is fixed
5.045 A warning in string.h has now been eliminated
5.045 A bug allocating multiple odd sized rom structures in PIC24 is fixed
5.044 Fixed a bug in PCD in subtraction of 32 bit numbers in complex expressions involving the -> operator
5.044 A warning in string.h is now gone
5.044 Corrected a formatting issue in %W (%LU, %LD should not have been affected)
5.044 A file signing issue has been resolved
5.043 Forward referencing a 'rom' data item with & in an initializer is now accepted
5.043 The default fuse settings have changed back to the way they were in older compilers
5.043 Fixed a type conversion problem between float and int in some relational expressions on a dsPIC
5.043 The address used for & on large "rom" structures when passed to a built in function on PIC24 is fixed
5.043 setup_wdt() in newer 12 bit parts no longer glitches the pull-ups
5.043 A number of updates have been made for the new EV chips
5.042 An error 103 on Win7/8 computers with full access control enabled is fixed
5.041 An access violation for some users starting the PIC24 Wizard is fixed
5.041 A problem with %w where if the digit after the . was 0 it did not output on the PIC24 is fixed
5.041 Syntax errors that should have appeared for poorly formed bit_test() calls now appear
5.041 A bug is fixed that occurred with packed structures inside unpacked structures accessed with ->
5.041 Some issues with bit arrays inside non-RAM structures is fixed
5.041 An error for two RS232 ports without stream names is removed
5.040 An undeserved warning about a #define blocking a C ID is fixed
5.040 Memory allocation issues from 5.039 are fixed
5.040 A bug with bit arrays indexed with constants inside structures is fixed
5.038 A problem with clear_interrupts() on some PIC16-18 interrupts is fixed
5.037 The PIC24 printf() %w no longer forces the leading zeros
5.037 Extra trailing commas in initializers now generate a warning
5.037 Some issues with pre-processor continuation lines (\) are now fixed
5.037 Optimization bugs dealing with some ROM pointers and clear_interrupts(INT_RB) are fixed
5.037 The new dsPIC33EV parts have been added
5.036 A problem with the IDE finding hex files in alternate output directories is fixed
5.036 A problem with very large delays on chips with slow clocks is fixed
5.036 Various IDE tweaks
5.035 A delay_us() problem in 5.034 where it takes more ROM than needed is fixed
5.035 A RAM allocation problem with PIC16 parts that use interrupts and 32 bit math is fixed
5.034 Some problems with complex expressions involving -> have been fixed
5.034 Error message added for cases where the . operator was misused
5.033 Added new macro _unicode(), see readme.txt for details
5.033 New warning added for cases where a #define hides access to a variable ID
5.033 Some pointers to ROM bugs have been fixed on the 14 bit parts
5.032 Corrected a problem in 5.031 that did not initialize pins to digital for some chips
5.031 Fixed a PIC24 bug in bit_set() and bit_clear() when using some structure fields
5.031 Fixed a PIC24 bug in %w when used with signed numbers
5.031 Optimized RAM allocation for the PIC16 and PIC18 compiler
5.031 Optimization improvements for PIC18
5.030 A bug causing main() to hang on some PIC24 parts is fixed
5.030 An optimization bug in a 32 bit shift when used in complex expressions is fixed
5.030 A problem with the [*] in PIC18 parts with more than 64K ROM is fixed
5.029 setup_oscillator() has been updated to deal with glitches for some chips
5.029 memcpy() updated to improve optimization
5.029 A problem with %s in sprintf() when the string is empty on some parts is fixed
5.028 Include file search rules have been tightened up to only look in specified directories
5.028 An optimization error initializing some large arrays on a PIC18 is fixed
5.028 sprintf optimization has been improved
5.028 A undeserved debugger error reporting a bad device ID is fixed
August 28, 2014
5.027 A problem with very large constant structures in PCH is fixed
5.027 read/write_configuration_memory() now work on the ID area in Enhanced 16 chips
5.027 Fixed the export of register definitions to an include file for the chips that had a wrong word addresses
5.027 Added new chips and expanded built in functions for some of the newer chips
5.027 Improved the IDE "Replace All" function
5.027 Added new project history tool to IDE
5.027 Bug in #use SPI that sometimes set the baud rate to 0 is fixed
5.027 Bug in #use delay for some J11 chips when using the PLL is fixed
5.027 Added __BUILDCOUNT__ id when global defines are enabled
5.027 IDE now allows user defines file extensions to be associated as source code
5.027 Navigation bar in the IDE now allows sub-folders
5.027 IDE tweaks made for VISTA and Windows 8.1
5.027 Added "Split file tabs" option to IDE
5.026 The #use touchpad library has been updated for devices with two cap sense units
5.026 Built in functions for the 16F1713 family have been added and updated
5.026 Various updates to the IDE Wizard
April 18, 2014
5.025 A problem where the wrong type was used when adding a subscript to an array of pointers is fixed
5.025 A bug on PIC24 parts dealing with the -> operator and some bit fields is fixed
5.025 A problem with #opt 9 when initializing large RAM data structures is fixed
5.025 An interrupt context save issue for PIC18 parts when compiling in the ANSI mode is fixed
5.024 Fixed the project include file paths that were being corrupted on some versions of Windows
5.024 An internal error during a compile of some programs on some PC's is fixed
5.024 #rom directives with no type specified targeting the data EE now default to int8
5.023 addressmod ranges are now supported on non-RAM memory spaces
5.023 Extra characters at the end of a #IF are now being flagged as an error
5.023 For PIC18 dual priority mode, the compiler now only uses GIEH to disable all ints
5.021 A file access issue when linking some projects on Win7/8 systems is fixed
5.021 A problem with using the RTOS with multiple compilation units is fixed
February 21, 2014
5.020 #rom has been updated to properly deal with the EEPROM on all chips
5.020 Fixed a bug dealing with subscripted pointers to large (>256 bytes) data items on PIC18
5.020 Mouse-over bug in the debugger is now fixed
5.019 A problem with addressmod for some chips and data types is fixed
5.019 #fuses keyword PROTECT now also sets CPB on devices that have CPB, see readme.txt
5.018 IDE now allows a separate output file directory to be specified
5.018 Updates made for the latest MPLAB version
5.018 A problem with the encoding on an inline assembly MAC or MSC instruction is fixed
January 15, 2014
5.017 Various device database fixes have been made for specific chips
5.017 A problem with multiple assignments of a full structure in one expression is fixed
5.017 A bug involving pointers to functions on some chips is fixed
5.017 Some IDE issues running older versions on Win7/8 machines is fixed
5.016 A problem with the debugger recognizing all the files in a MCU build is fixed
5.016 An optimization bug on PIC18 parts with some switch statements is fixed
5.015 A device database issue causing some 24 bit parts to not verify right is fixed
5.015 A problem setting breakpoints in multiple compilation unit projects is fixed
5.014 An issue with #rom taking too much space and sometimes issuing a warning is fixed
5.014 Help file has been brought up to date
5.014 #profile has had some improvements and there is now an example program
5.013 A problem with printf disabling interrupts on some parts is fixed
5.013 A type cast problem when casting to single bit is fixed
5.013 The PIC24 compiler now allows all variations of the mov.b asm instruction
5.013 Some issues with finding the right include file path are resolved
5.013 A problem with some expressions with both a shift operator and pointer to an int32 is fixed
5.013 The compiler now allows overloaded two functions one with *ptr and the other rom*ptr
5.013 Various IDE and Wizard fixes are in
5.012 Missing register entries for some chip is now fixed
5.012 Fixed is a #zero_ram problem causing the processor to hang on reset for some chips
5.012 An IDE issue with the scrollbar when switching tabs is fixed
5.012 An access violation problem in the IDE is fixed
5.012 The background compile in the IDE is improved for large projects
5.011 An error related to setw() when writing to strings is fixed
5.011 The port_x_pullups() was not working on a few chips and is now fixed
5.011 #import now allows importing data to areas reserved with #org like V4
5.011 Fixed some IDE cut/paste issues
5.011 Fixed some IDE syntax highlighting issues
5.010 A profiler problem with some PIC24 parts is fixed
5.010 An file access error on Win7/8 builds for multiple compilation units is fixed
5.010 Various IDE fixes and updates
5.009 Some IDE tweaks have been made to improve usability
5.009 A bug in the #use profile directive for 24 bit parts is fixed
5.009 PIC16 interrupt latency caused by some printf's is fixed
5.008 Tree views in the IDE can now be saved as a bitmap
5.008 Compiler versions can now be associated with projects
5.008 A number of IDE updates have been made including Find/Replace
5.007 A problem with TAB's in the IDE is fixed
5.007 A error is no longer issued with some parameter list items with **
5.007 A PCD error with the #use profile is fixed
5.006 Corrected incorrect RAM registers for PIC10F/LF320
5.006 Added missing defines in some header files
5.006 Corrected Editor Options page in IDE to prevent crashes and incorrect saving
5.006 Fixed "Index out of bounds(xx)" error that was causing IDE to crash
5.006 Some changes made to declarator parsing to better match ANSI
May 28, 2013
5.005 First public release of Version 5
April 20, 2013
Version 5 Beta release