MikroElektronika Learn

Compilers Roadmap Update

PIC32 Compilers Roadmap

28 Jun , 2017  

mikroC, mikroBasic, mikroPascal for PIC32

The new version of PIC32 compilers will merge Visual TFT, the GUI design tool, with the compiler.

  • Release date: July 18, 2017
  • IDE build: v4.00
  • cmd line build: v4.00

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

Make sure you have the latest version of PIC32 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

 

Compiler

New:

P32MX130F256B    P32MZ0512EFK144    
P32MZ1024EFE064  P32MZ1024EFK124
P32MZ1024EFE100  P32MZ1024EFK144
P32MZ1024EFE124  P32MZ1024EFM064
P32MZ1024EFE144  P32MZ1024EFM100
P32MZ1024EFF064  P32MZ1024EFM124
P32MZ1024EFF100  P32MZ1024EFM144
P32MZ1024EFF124  P32MZ2048EFG064
P32MZ1024EFF144  P32MZ2048EFG100
P32MZ1024EFG064  P32MZ2048EFG124
P32MZ1024EFG100  P32MZ2048EFG144
P32MZ1024EFG124  P32MZ2048EFH064
P32MZ1024EFG144  P32MZ2048EFH100
P32MZ1024EFH064  P32MZ2048EFH124
P32MZ1024EFH100  P32MZ2048EFH144
P32MZ1024EFH124  P32MZ2048EFM064
P32MZ1024EFH144  P32MZ2048EFM100
P32MZ1024EFK064  P32MZ2048EFM124
P32MX130F256D  	 P32MZ2048EFM144  
  •     ICD support for PIC32MZxxEF family
  •     ICD support for new PIC32MX MCUs
  •     Hardware Floating Point Unit supported at PIC32xxEFxx MCU familly
  •     Aligned type and variable attribute added (mikroC only)
  •     Packed  type and variable attribute added (mikroC only)
  •     FreeRTOS support implemented. (mikroC only)
  •     Added indfuncall directive. (mikroC only)
  •     Initializer of local variables can be variable expression (mikroC only)
  •     Code Generator unaligned access supported (LWL, LWR instructions) (mikroC only)
  •     Key file license is now obsolete
 

Improved:

  • Better optimization of address propagation
  • Faster optimization and linkage
  • Allocation of locals to registers (mikroC only)
  • Code completion for Pascal and basic now supports array of records, array of pointers on record (mikroPascal & mikroBasic only)

Fixed:

  • Linker generated 0 byte data sections
  • SSA optimization fails to find postorder of IDOM list in specific case
  • EMCL writer could break on specific pointer to function that return pointer to function case
  • Const Folding of ternary operator (mikroC only)
  • Handling of void in expressions (mikroC only)
  • Anonymous union definition and tag definition conflict (mikroC only)
  • Interrupt vector constants are now without (mikroC only)
 

IDE

New:
  • Visual TFT integrated into compiler IDE
  • Design, Code, Compile, Debug, Program… All from one place
  • Simple and fast switch between design and coding
  • Added code automated 3-way code merge for VTFT generated projects
  • 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.
  • Added integral (Filter) search for Project Manager, Project Explorer, Library Manager, Code Explorer and Procedure List with Regular Expression search support
  • Library Manager now can open library source on right click, if source is present.
  • FAT32, FT800(1), FT810(1) and FT812(3) now come pre installed with the compiler (Visual TFT part requirements)
  • Memory manager dlmalloc now come pre installed with the compiler (FreeRTOS support requirement) (mikroC only)
 

    Improved:

  • Added new view to Project Manager to support displaying complex project sub tree.
  • Export Project now export whole folder structure.
  • Clean Project Folder cleans whole folder structure.
  • Cleaning changed from selecting specific files to selecting file types to clean.
  • Edit search paths form improved to work with relative search and header paths.
  • Project file now saves and loads relative paths
 

     Fixed:

  • Code assistant 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
  • IDE crashed on fast switch between editor tabs
  • AutoComplete macros %DATE%, %TIME%, %DEVICE%, %DEVICE_CLOCK%, %COMPILER% did not work
  • Edit project sometimes crashes when trying to change MCU
  • Pressing F11 multiple times causes IDE to crash
  • Delete file or project file outside of IDE, causes IDE to crash

Libraries:

  • Added: Timeout feature implemented in all I2C libraries (forum enhancement poll request)
  • Improved: Flash erase and write latch moved from FLASH library to definition file, to cover each MCU specifically.
  • Improved: Libraries upgraded so now there is no issue when building FreeRTOS projects with case sensitivity enabled (FreeRTOS requirement)

Examples:

  • Added: Bootloader example for PIC32MZxxxEF
  • Added: PIC32 related examples sets imported from VisualTFT (standalone)

Compiler

 
  • New! Additional 24 MCU supported:
PIC32MZ1024ECG064  PIC32MZ1024ECG100  PIC32MZ1024ECG124
PIC32MZ1024ECG144  PIC32MZ1024ECH064  PIC32MZ1024ECH100
PIC32MZ1024ECM064  PIC32MZ1024ECH124  PIC32MZ1024ECH144
PIC32MZ1024ECM100  PIC32MZ1024ECM124  PIC32MZ1024ECM144
PIC32MZ2048ECG064  PIC32MZ2048ECG100  PIC32MZ2048ECG124
PIC32MZ2048ECG144  PIC32MZ2048ECH064  PIC32MZ2048ECH100
PIC32MZ2048ECH124  PIC32MZ2048ECH144  PIC32MZ2048ECM064
PIC32MZ2048ECM100  PIC32MZ2048ECM124  PIC32MZ2048ECM144
  • Fixed: Warning if assigment of const violates enum object range.
  • Fixed: Address of array memebers as initializators for global array of pointers.
  • Fixed: ? : did not work if 2nd and 3rd operands were sbit type.
  • Fixed: goto as first if statement did not compiled in some cases.

IDE

 
  • New! ICD support for PIC32MZ family.
  • New! ICD support for new PIC32MX devices.
  • New! Add local variable by identifier (CTRL+SHIFT+V).
  • New! Wild Card '*' supported in Routine List.
  • New! Synchronized editing.
  • Fixed: Bug related to PIC32MX795 ICD communication.

Library

  • Fixed: Added missing libraries for MX series x30/x50/x70 mcus.
  • Fixed: Bug with sprint libraries.

Compiler

  • New! Additional 39 MCU supported:
P32MX120F064H	P32MX170F256B	P32MX230F128L	P32MX270F512H
P32MX350F128L	P32MX430F064H	P32MX450F256L	P32MX550F256H
P32MX130F128H	P32MX170F256D	P32MX250F256H	P32MX270F512L
P32MX350F256H	P32MX430F064L	P32MX470F512H	P32MX550F256L
P32MX130F128L	P32MX170F512H	P32MX250F256L	P32MX330F064H
P32MX350F256L	P32MX450F128H	P32MX470F512L	P32MX570F512H
P32MX150F256H	P32MX170F512L	P32MX270F256B	P32MX330F064L
P32MX370F512H	P32MX450F128L	P32MX530F128H	P32MX570F512L
P32MX150F256L	P32MX230F128H	P32MX270F256D	P32MX350F128H
P32MX370F512L	P32MX450F256H	P32MX530F128L

IDE

  • New! Added Back and Forward navigation (similar to web browser navigation).
  • New! Wild Card '*' supported in code completition.
  • New! Code completition handles 1 character permutation.
  • New! Added stop active folder search option in project explorer.
  • New! Added folder up shortcut.
  • New! Added hint on project nodes to display full path.
  • New! Added hint on function in Library Manager.
  • New! Added drag and drop of function into editor.
  • New! File handling (rename file directly from Project Manager, auto add of new file to project).
  • New! Added hint on file nodes to display full path.
  • New! New icons look.
  • Fixed: Watch Values.
  • Fixed: If value is "none" or "inf", wrong value has been written, which then causes error in conversion.
  • Fixed: Saving new project to file, saves to many empty lines at the end of project file, which was disturbing some of anti virus programs.
  • Fixed: Opened statistics window makes duplicate of functions, after rebuild of project.

Library

  • New:! Added assert.h, stdbool.h and time.h headers.
  • Fixed: USB Library, interrupt flag wasn't cleared for PIC32MX220 family.
  • Fixed: USB Library, general exception in special cases.
  • Fixed: Bug in SPI_Ethernet_readPHY function.
  • Fixed: Bug in Flash_Write_Row function for 2xx/3xx/4xx MCUs.
  • Fixed: Bug when sending std message in CAN library.

Examples

  • Fixed: Bug in InitPHYPins() function in Ethernet Demo example for EasyPIC Fusion v7.
  • Fixed: TFT Examples now use for TFT initialization TFT_Init_ILI9341 function.

IDE

  • Improved Minor changes about live update.

Libraries

  • New! Touch Panel STMPE610 library (working over I2C).
  • New! Added support for new TFT controller ILI9341.
  • Improved I2C library now has universal routines I2C_Start, I2C_Restart, I2C_Read, I2C_Write, I2C_Stop, I2C_Is_Idle (check Help section for details).
  • Improved In PortExpander Library added routines to work with each single pin.
  • Improved Implemented support for Hardware MAC Address on ENC24J600 Ethernet module.
  • Improved Added missing constants for various voltage references in ADC libraries.
  • Improved In Conversions Library added functions ByteToStrWithZeros and ShortToStrWithZeros.
  • Fixed: In Ethernet Library, Ethernet_Init routine is not blocking anymore.
  • Fixed: In PS2 Library, added support for ESC key.
  • Fixed: Wrong casting in offset calculation in __Lib_TFT, __Lib_GLCD, __Lib_S1D13700, __Lib_SPIGlcd, __Lib_SPIT6963C, __Lib_T6963C.
  • Fixed: USB Library, repetitive HID_Write in polling mode issue.

Examples

  • New! Added examples for mikromedia Plus for PIC32MX7.
  • New! mikromedia for PIC32 9A (with new display MI0283QT_9A).
  • New! PIC32MX7 MultiMedia board 9A (with new display MI0283QT_9A).

Compiler

  • Improved Faster optimization and linkage
  • Improved Allocation of locals to registersoptimization and linkage
  • 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

Libraries

  • Improved TFT library minor update
  • Fixed: DHCP issue in internal ethernet library
  • Fixed: Atomic qualifier in definition files

IDE

  • Fixed: Project options oscillator frequency changed even if Cancel button was pressed
  • Fixed: Watch values debugger buttons ineffective
  • Fixed: Handling of pointers to pointers and their values in watch window (ICD debug mode)

Compiler

  • New! Additional 8 MCU supported:
PIC32MX110F016C
PIC32MX120F032C
PIC32MX130F064C
PIC32MX150F128C
PIC32MX210F016C
PIC32MX220F032C
PIC32MX230F064C
PIC32MX250F128C
  • New: atomic qualificator introduced (enables faster bit access to sfr with CLEAR, SET registers)
  • New: constants and functions can be allocated to boot area of MCU
  • 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: Highlighting of comment that contains \ at end of line
  • 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.c).
  • New: Additional TFT controllers supported:
    • HX8347G (16-bit communication)
    • ILI9340 (8-bit communication)
    • ILI9481 (8-bit communication)
  • New: PPS library for PIC32MX1XX/2XX MCUs.
  • New: Added standard headers stdint.h, stdio.h, stdlib.h and string.h.

By