MikroElektronika Learn

Compilers Roadmap Update

dsPIC Compilers Roadmap

25 Sep , 2016  

The new version of these compilers integrates Visual TFT, the GUI design software.

The last major upgrade integrated Visual TFT into the IDE. Also, supports for 80 new MCUs was added.

  • ETA: Released on 27 October 2016
  • Ide build 7.0
  • cmd line build 7.0

List of features applies to all three languages unless specified otherwise.

Make sure you have the latest version of the dsPIC compilers while you wait for the new one. You can download it from this page. You can also download the demo version. License owners are entitled to a lifetime of free upgrades.

Project Log

The TFT library has been updated to include support for ST7789V TFT controller. The library now includes automatic detection whether the connected display is ILI9341 or ST7789V. To install the update, launch the compiler, go to Help >>> Check for Updates. Development of the new version is proceeding regularly.

Compiler upgrades

Additional 80 MCU supported:

P24FJ1024GA606   P24FJ256GA410   P24FJ64GB204    P33EV128GM004   P33EV64GM006
P24FJ1024GA610   P24FJ256GA412   P24FJ64GB406    P33EV128GM006   P33EV64GM102
P24FJ1024GB606   P24FJ256GA606   P24FJ64GB410    P33EV128GM102   P33EV64GM104
P24FJ1024GB610   P24FJ256GA610   P24FJ64GB412    P33EV128GM104   P33EV64GM106
P24FJ128GA202    P24FJ256GB406   P33EP16GS202    P33EV128GM106
P24FJ128GA204    P24FJ256GB410   P33EP16GS502    P33EV256GM002
P24FJ128GA406    P24FJ256GB412   P33EP16GS504    P33EV256GM004
P24FJ128GA410    P24FJ256GB606   P33EP16GS505    P33EV256GM006
P24FJ128GA412    P24FJ256GB610   P33EP16GS506    P33EV256GM102
P24FJ128GA606    P24FJ512GA606   P33EP32GS202    P33EV256GM104
P24FJ128GA610    P24FJ512GA610   P33EP32GS502    P33EV256GM106
P24FJ128GB202    P24FJ512GB606   P33EP32GS504    P33EV32GM002 
P24FJ128GB204    P24FJ512GB610   P33EP32GS505    P33EV32GM004 
P24FJ128GB406    P24FJ64GA202    P33EP32GS506    P33EV32GM006 
P24FJ128GB410    P24FJ64GA204    P33EP64GS502    P33EV32GM102 
P24FJ128GB412    P24FJ64GA406    P33EP64GS504    P33EV32GM104 
P24FJ128GB606    P24FJ64GA410    P33EP64GS505    P33EV32GM106 
P24FJ128GB610    P24FJ64GA412    P33EP64GS506    P33EV64GM002 
P24FJ256GA406    P24FJ64GB202    P33EV128GM002   P33EV64GM004 

Added ICD support for aditional 98 MCUs:

P24FJ1024GA606   P24FJ256GA410   P24FJ64GB204    P33EV128GM004   P33EV64GM006   P33EP128GM310
P24FJ1024GA610   P24FJ256GA412   P24FJ64GB406    P33EV128GM006   P33EV64GM102   P33EP256GM304
P24FJ1024GB606   P24FJ256GA606   P24FJ64GB410    P33EV128GM102   P33EV64GM104   P33EP256GM706
P24FJ1024GB610   P24FJ256GA610   P24FJ64GB412    P33EV128GM104   P33EV64GM106
P24FJ128GA202    P24FJ256GB406   P33EP16GS202    P33EV128GM106   P33EP512GM710
P24FJ128GA204    P24FJ256GB410   P33EP16GS502    P33EV256GM002   P33EP512GM604
P24FJ128GA406    P24FJ256GB412   P33EP16GS504    P33EV256GM004   P33EP256GM306
P24FJ128GA410    P24FJ256GB606   P33EP16GS505    P33EV256GM006   P33EP128GM304
P24FJ128GA412    P24FJ256GB610   P33EP16GS506    P33EV256GM102   P33EP128GM706
P24FJ128GA606    P24FJ512GA606   P33EP32GS202    P33EV256GM104   P33EP512GM310
P24FJ128GA610    P24FJ512GA610   P33EP32GS502    P33EV256GM106   P33EP256GM710
P24FJ128GB202    P24FJ512GB606   P33EP32GS504    P33EV32GM002    P33EP128GM306
P24FJ128GB204    P24FJ512GB610   P33EP32GS505    P33EV32GM004    P33EP256GM604
P24FJ128GB406    P24FJ64GA202    P33EP32GS506    P33EV32GM006    P33EP512GM304
P24FJ128GB410    P24FJ64GA204    P33EP64GS502    P33EV32GM102    P33EP256GM310
P24FJ128GB412    P24FJ64GA406    P33EP64GS504    P33EV32GM104    P33EP512GM706
P24FJ128GB606    P24FJ64GA410    P33EP64GS505    P33EV32GM106    P33EP128GM710
P24FJ128GB610    P24FJ64GA412    P33EP64GS506    P33EV64GM002    P33EP128GM604
P24FJ256GA406    P24FJ64GB202    P33EV128GM002   P33EV64GM004    P33EP512GM306

New features

  • Auxiliary FLASH segment supported
  • Supported Boot segment usage at devices that can have it
  • Added support for AIVT in Boot Segment
  • Bootswp instruction supported in asm
  • Added support for STMPE610/810 library

Improvements and fixes

Improved:

  • Mixing enum with int types throws appropriate warning

Fixed:

  • SSA optimization off caused shift code not to work in certain cases
  • Initialization image bad alignment
  • False reporting that data is present in message report
  • Optimization conflict with using pragmas SetFuncCall and funcall
  • False recursion and cross calling warning
  • go to in if branch stops compilation and show error
  • Usage of local extern in assembly
  • sbit and operator ?: cause errors in some use cases (applies to mikroC only)

IDE upgrades

  • Visual TFT integrated into compiler IDE
  • Design, Code, Compile, Debug, Program... All from one place
  • Simple and fast switch between design and coding
  • Automated synchronization of edited event file with design, awareness and background compiler on generated code
  • Automated synchronization of generated files with edited code, merge
  • One project, One application with combined predefined visual and compiler settings on one place
  • Easy switching from old projects
  • Added site license activation
  • Key file license is now obsolete
  • Simulator "prefetch" algorithm for some DSP instruction used DSRPAG

Improvements and fixes

Improved:

  • Export Project now exports whole folder structure.
  • Clean Project Folder cleans whole folder structure.
  • Cleaning changed from selecting specific files to selecting file types to clean.

Fixed:

  • Ctrl+space did not work with arrays without dimension in declaration
  • Watch window elements with Inf or Nan values changed unexpectedly
  • Watch windows throws unexpected error in certain case
  • USART Terminal exceptions in various cases
  • USART Terminal received data may be lost
  • USART Terminal sending data slow
  • AutoComplete macros %DATE%, %TIME%, %DEVICE%, %DEVICE_CLOCK%, %COMPILER%  did not work

Library additions, fixes, and improvements

New:

  • Added library for STMPE610
  • Now with preinstalled packages for FT800, FT810, FT812 and FAT32

Improved

  • Added function pointers in I2C libraries
  • Added functions ByteToStrWithZeros and ShortToStrWithZeros in Conversions library
  • New functions for Port Expander library

Fixed:

  • Added missing SPI4 for P33EPXXXMU8XX and P24EPXXXGU8XX
  • PPS Mapping for various MCUs
  • Setting PWM Mode for P24F15KA301 and similar MCUs
  • Flash library for PIC24/dsPIC33epMC2xx/5xx/GP2xx/5xx
  • I2C calculation for EP MCUs with high frequency
  • UART calculation for various MCUs
  • Added missing PPS SPI consts for P24FJ16MC101 and similar MCUs
  • ECAN library forcing MCUs to reset

New examples:

  • Added examples for development system BIGdsPIC6
  • Added examples for development system Easy24-33 v6
  • Added Visual TFT examples for various development systems

Compiler

  • New: Additional 80 MCU supported
P24FJ1024GA606	P33EP32GS505	P24FJ256GA610	P33EV32GM104	P33EP16GS502
P24FJ1024GB610	P33EP64GS504	P24FJ256GB412	P33EV64GM004	P33EP16GS506
P24FJ128GA406	P33EV128GM002	P24FJ512GA606	P33EV64GM104	P33EP32GS504
P24FJ128GA606	P33EV128GM102	P24FJ512GB610	P24FJ1024GB606	P33EP64GS502
P24FJ128GB204	P33EV256GM002	P24FJ64GA204	P24FJ128GA204	P33EP64GS506
P24FJ128GB412	P33EV256GM102	P24FJ64GA412	P24FJ128GA412	P33EV128GM006
P24FJ256GA406	P33EV32GM002	P24FJ64GB406	P24FJ128GB202	P33EV128GM106
P24FJ256GA606	P33EV32GM102	P33EP16GS202	P24FJ128GB410	P33EV256GM006
P24FJ256GB410	P33EV64GM002	P33EP16GS505	P24FJ128GB610	P33EV256GM106
P24FJ256GB610	P33EV64GM102	P33EP32GS502	P24FJ256GA412	P33EV32GM006
P24FJ512GB606	P24FJ1024GA610	P33EP32GS506	P24FJ256GB406	P33EV32GM106
PIC24F16KM104	P24FJ128GA202	P33EP64GS505	P24FJ256GB606	P33EV64GM006
P24FJ64GA410	P24FJ128GA410	P33EV128GM004	P24FJ512GA610	P33EV64GM106
P24FJ64GB204	P24FJ128GA610	P33EV128GM104	P24FJ64GA202	
P24FJ64GB412	P24FJ128GB406	P33EV256GM004	P24FJ64GA406	
P33EP16GS504	P24FJ128GB606	P33EV256GM104	P24FJ64GB202	
P33EP32GS202	P24FJ256GA410	P33EV32GM004	P24FJ64GB410	

Compiler

 
  • New: Auxiliary FLASH segment supported
  • New: Supported Boot segment usage at devices that can have it
  • New: Added support for AIVT in Boot Segment
  • New: Bootswp instruction supported in asm
  • New: Added support for STMPE610/810 library
  • Improved: Mixing enum with int types throws appropriate warning
  • Fixed: SSA optimization off caused shift code not to work in certain cases
  • Fixed: Initialization image bad alignment
  • Fixed: False reporting that data is present in message report
  • Fixed: Optimization conflict with using pragmas SetFuncCall and funcall
  • Fixed: False recursion and cross calling warning
  • Fixed: goto in if branch stops compilation and show error
  • Fixed: Usage of local extern in assembly
  • Fixed: sbit and operator ?: cause errors in some use cases (applies to mikroC only)

IDE

  • New: Visual TFT integrated into compiler IDE
  • New: Design, Code, Compile, Debug, Program... All from one place
  • New: Simple and fast switch between design and coding
  • New: Automated synchronization of edited event file with design, awareness and background compiler on generated code
  • New: Automated synchronization of generated files with edited code, merge
  • New: One project, One application with combined predefined visual and compiler settings on one place
  • New: Easy switching from old projects
  • New: Added site license activation
  • New: Key file license is now obsolete
  • New: Simulator "prefetch" alghorithm for some DSP instruction used DSRPAG
  • Improved: Export Project now export whole folder structure.
  • Improved: Clean Project Folder cleans whole folder structure.
  • Improved: Cleaning changed from selecting specific files to selecting file types to clean.
  • Fixed: Ctrl+space did not work with arrays without dimension in declaration
  • Fixed: Watch window elements with Inf or Nan values changed unexpectedly
  • Fixed: Watch windows throws unexpected error in certain case
  • Fixed: USART Terminal exceptions in various cases
  • Fixed: USART Terminal received data may be lost
  • Fixed: USART Terminal sending data slow
  • Fixed: AutoComplete macros %DATE%, %TIME%, %DEVICE%, %DEVICE_CLOCK%, %COMPILER% did not work

Library

 
  • New: Added library for STMPE610
  • New: Now with preinstaled packages for FT800, FT810, FT812 and FAT32
  • Improved: Added function pointers in I2C libraries
  • Improved: Added functions ByteToStrWithZeros and ShortToStrWithZeros in Conversions library
  • Improved: New functions for Port Expander library
  • Fixed: Added missing SPI4 for P33EPXXXMU8XX and P24EPXXXGU8XX
  • Fixed: PPS Mapping for various MCUs
  • Fixed: Setting PWM Mode for P24F15KA301 and similar MCUs
  • Fixed: Flash library for PIC24/dsPIC33epMC2xx/5xx/GP2xx/5xx
  • Fixed: I2C calculation for EP MCUs with high frequency
  • Fixed: UART calculation for various MCUs
  • Fixed: Added missing PPS SPI consts for P24FJ16MC101 and similar MCUs
  • Fixed: ECAN library forcing MCUs to reset

Examples

  • New: Added examples for development system BIGdsPIC6
  • New: Added examples for development system Easy24-33 v6
  • New: Added Visual TFT examples for various development systems

Compiler

  • New: Additional 59 MCU supported
PIC24EP512GP202	  PIC24FJ64GC010      dsPIC33EP256GM710
PIC24EP512GP204	  PIC24FV08KM101      dsPIC33EP512GM304
PIC24EP512GP206	  PIC24FV08KM102      dsPIC33EP512GM306
PIC24EP512MC202	  PIC24FV08KM202      dsPIC33EP512GM310
PIC24EP512MC204	  PIC24FV08KM204      dsPIC33EP512GM604
PIC24EP512MC206	  PIC24FV16KM102      dsPIC33EP512GM706
PIC24F08KM101	  PIC24FV16KM104      dsPIC33EP512GM710
PIC24F08KM102	  PIC24FV16KM202      dsPIC33EP512GP502
PIC24F08KM202	  PIC24FV16KM204      dsPIC33EP512GP504
PIC24F08KM204	  dsPIC33EP128GM304   dsPIC33EP512GP506
PIC24F16KM102	  dsPIC33EP128GM306   dsPIC33EP512MC502
PIC24F16KM104	  dsPIC33EP128GM310   dsPIC33EP512MC504
PIC24F16KM202	  dsPIC33EP128GM604   dsPIC33EP512MC506
PIC24F16KM204	  dsPIC33EP128GM706   dsPIC33FJ32GP101
PIC24FJ128GC006	  dsPIC33EP128GM710   dsPIC33FJ32GP102
PIC24FJ128GC010	  dsPIC33EP256GM304   dsPIC33FJ32GP104
PIC24FJ32MC101	  dsPIC33EP256GM306   dsPIC33FJ32MC101
PIC24FJ32MC102	  dsPIC33EP256GM310   dsPIC33FJ32MC102
PIC24FJ32MC104	  dsPIC33EP256GM604   dsPIC33FJ32MC104
PIC24FJ64GC006	  dsPIC33EP256GM706
  • New: Additional 50 MCU supported
PIC24F04KL100	PIC24F16KM204	  PIC24FV16KM204
PIC24F04KL101	PIC24FJ128GA306	  dsPIC33FJ06GS101
PIC24F08KL200	PIC24FJ128GA308	  dsPIC33FJ06GS102
PIC24F08KL201	PIC24FJ128GA310	  dsPIC33FJ06GS202
PIC24F08KL301	PIC24FJ128GC006	  dsPIC33FJ16GS402
PIC24F08KL302	PIC24FJ128GC010	  dsPIC33FJ16GS404
PIC24F08KL401	PIC24FJ64GA308	  dsPIC33FJ16GS502
PIC24F08KL402	PIC24FJ64GA310	  dsPIC33FJ16GS504
PIC24F08KM101	PIC24FJ64GC006	  dsPIC33FJ32GS406
PIC24F08KM102	PIC24FJ64GC010	  dsPIC33FJ32GS606
PIC24F08KM202	PIC24FV08KM101	  dsPIC33FJ32GS608
PIC24F08KM204	PIC24FV08KM102	  dsPIC33FJ32GS610
PIC24F16KL401	PIC24FV08KM202	  dsPIC33FJ64GS406
PIC24F16KL402	PIC24FV08KM204	  dsPIC33FJ64GS606
PIC24F16KM102	PIC24FV16KM102	  dsPIC33FJ64GS608
PIC24F16KM104	PIC24FV16KM104	  dsPIC33FJ64GS610
PIC24F16KM202	PIC24FV16KM202
  • Improved: SSA variable eliminated hint, local ssa variable is eliminated only if all of its instances are not used
  • Improved: Optimized code for shifting long type variables by known constant value
  • Improved: Comparison with literal constant out of variable range
  • Fixed: Integer to float cast propagation
  • Fixed: Alignment of constants in initialization blocks
  • Fixed: Relative jumps were not processed for page changes
  • Fixed: Integer vs Float cast in initialization expressions
  • Fixed: Wrong local frame size calculation when bit variables are present

IDE

  • Improved: win7 and Win8 .chw files ignored when opening package help files from library manager
  • Improved: Project Manager nodes expanded only when project is set to be active
  • Improved: URL for live is retreived from UpdateVersion.ini file
  • Fixed: New lines at beginning of .dct files caused av program issues

Libraries

  • New: Added module libraries for PIC24FXXKL10x/20x/30x/40x mcus
  • Improved: Flash library - added functions read and write doubleword for specified mcus
  • Improved: Added flag for use hardware MAC address for ENC24J600
  • Fixed: Bad UART baud rate calculation
  • Fixed: Bad calculation of PWM PRx registers
  • Fixed: Issue with DSP libraries for dsPIC33EP MCUs

Compiler 

  • Improved: Faster optimization and linkage.
  • Improved: Allocation of locals to registers.
  • Fixed: Call tree generator did not work for specific examples.
  • Fixed: Pointer to types that has overridden memory specifier was incorrectly dereferenced.

IDE 

  • Improved: Function tree changed to work with new call tree generator.

Compiler

  • New: Additional 53 MCU supported 
PIC24EP128GP202		PIC24EP32MC204
dsPIC33EP256MC506	PIC24EP128GP204
dsPIC33EP128GP502	dsPIC33EP32GP502
PIC24EP128GP206		dsPIC33EP128GP504
dsPIC33EP32GP503	PIC24EP128MC202
dsPIC33EP128GP506	dsPIC33EP32GP504
PIC24EP128MC204		dsPIC33EP128MC202
dsPIC33EP32MC202	PIC24EP128MC206
dsPIC33EP128MC204	dsPIC33EP32MC203
PIC24EP256GP202		dsPIC33EP128MC206
dsPIC33EP32MC204	PIC24EP256GP204
dsPIC33EP128MC502	dsPIC33EP32MC502
PIC24EP256GP206		dsPIC33EP128MC504
dsPIC33EP32MC503	PIC24EP256MC202
dsPIC33EP128MC506	dsPIC33EP32MC504
PIC24EP256MC204		dsPIC33EP256GP502
dsPIC33EP64GP503	PIC24EP256MC206
dsPIC33EP256GP504	dsPIC33EP64MC203
PIC24EP32GP202		dsPIC33EP256GP506
dsPIC33EP64MC503	PIC24EP32GP203
dsPIC33EP256MC202	dsPIC33FJ06GS001
PIC24EP32GP204		dsPIC33EP256MC204
dsPIC33FJ06GS101A	PIC24EP32MC202
dsPIC33EP256MC206	dsPIC33FJ06GS102A
PIC24EP32MC203		dsPIC33EP256MC502
dsPIC33FJ06GS202A	dsPIC33EP256MC504
dsPIC33FJ09GS302
  • New: support for far memory data space (variable can be allocated at addresses greater than 32k)
  • New: psvmem memory type qualifier added
  • New: Initializer of local variables can be variable expression
  • Improved: Peephole optimizer minor changes
  • Fixed: Const Folding of ternar operator
  • Fixed: Handling of void in expressions
  • Fixed: Anonymous union definition and tag definition conflict

IDE 

  • New: Live update support
  • New: Added shortcut button for Package examples
  • New: Pointer handling in watch window shows data it points to
  • New: Function pointers show the name of the function currently pointing at
  • New: Value hint in debug mode for pointers shows data it points to
  • New: Code assistant (CTRL+SPACE) for pointer to structures
  • Fixed: Issue with setting MCU frequency
  • Fixed: Creating project with empty name
  • Fixed: Creating project which name which starts with a digit
  • Fixed: "File Save As", "Project Save As" and "Save Project Group" give wrong file filters
  • Fixed: Active comment starts with a digit caused IDE to crash
  • Fixed: It is not possible to save a project group when projects were added from Project Explorer
  • Fixed: Statistics window did not always stayed on top
  • Fixed: In debug mode changing focus between editor and watch list was not momental (Insert, Delete key...)
  • Fixed: Closing file while compile is in progress caused IDE to crash
  • Fixed: Search paths was not refreshed on starting IDE if "Search Path" window was opened when IDE was closed
  • Fixed: Removed space characters in front of line code When a bookmarked line is displayed in bookmark window

Libraries 

  • New: Low level TFT Library functions are now open source, available for user editing (located in __Lib_TFT_Defs)
  • New: Additional TFT controllers supported:
    • HX8347G (16-bit communication)
    • ILI9340 (8-bit communication)
    • ILI9481 (8-bit communication)
  • New: Added standard headers stdint.h, stdio.h, stdlib.h and string.h
  • Improved: T6963C, SPI_T6963C and S1D13700 libraries supporting invert color

Compiler

  • Fixed: Enhanced MCUs DSRPAG handling
  • Fixed: sbit with position >=8 'out of range' error
  • Fixed: Minor bug fixes

Compiler

  • New! Additional MCU supported: PIC24EP64GP203 and PIC24EP64MC203
  • Fixed: orgall had failed to link in some cases
  • Fixed: linker could not produce hex which address was above 2MByte

IDE

  • New: Pointed(indirect objects) can be inspected in watch window
  • New: Code assistant for indirect members of agregates
  • Improved: Added support for PIC33ENH, PIC24ENH to mikroBootloader

Libraries

  • Fixed: Flash library for PIC24E/dsPIC33E, flash writing issue

Examples

  • New! Added examples for EasyPIC V7 for dsPIC30 development board

By