MikroElektronika Learn

Compilers Roadmap Update

ARM Compilers Roadmap

25 May , 2017  

mikroC, mikroBasic, mikroPascal for ARM

Further details will be revealed as the project develops.

  • Release date: June 5, 2017
  • IDE build: v5.1.0
  • cmd line build: v5.1.0

Make sure you have the latest version of the ARM compilers while you wait for the new one. You can download it from this page. New users will have a functional trial version. License owners are entitled to a lifetime of free upgrades.

Project Log

The release date for the ARM compilers has been changed from June 1, to June 5, for last minute fine tuning.

May progress report on ARM compilers:

  • FreeRTOS tested on STM, Tiva (Texas Instruments) and Kinetis (NXP)
  • Preparing howto's, video material and step-by-step instruction for FreeRTOS (starting point blank project)
  • Hardware debugging improvements (faster debugging from IDE)

  • FreeRTOS support implemented (mikroC only)
  • Debugging upgrade to accommodate FreeRTOS
  • Added search bar to Project Manager, Library Manager, Project Explorer and Code Explorer
  • Project search paths now support relative drive path

Compiler

Supported MCUs

MSP432P401M, MSP432P401R
CEC1702
  • Added: Support for MSP432P401M, MSP432P401R (Texas Instruments)
  • Added: Support for CEC1702 MCU (Microchip)
  • Added: Hardware debugging for both MSP432 family and CEC1702

Libraries

  • Added: Standard set of mikroE libraries supported for MSP432
  • Added: Standard set of mikroE libraries supported for CEC1702
  • New: AES256 and CRC32 libraries for MSP432
  • New: Added Crypto Libraries for CEC1702 (AES, ECDSA, PKE, RNG, RSA, SHA)

Examples

  • New: Added examples set for Clicker 2 for MSP432.
  • New: Added examples set for Clicker 2 for CEC1702.
  • New: Added Crypto Examples for MSP432 as well as CEC1702.
  • Obsolete: Removed example set for mikromedia Plus for Stellaris

The compilers are still on schedule for the Embedded World 2017 release. Here's a detailed progress report on what has been accomplished so far:

  • HW modules support finished. Here's a list of libraries and what has been done to each one:
    • GPIO (working with I/O pins)
    • ADC (analog to digital conversion, separate and sequential channels, external voltage reference)
    • SPI (Serial Peripheral Interface, Read/Write operation as well as advanced initialization routines)
    • PWM (Pulse-width modulation, set external clock source, start/stop/set duty, PWM0 - PWM3 modules supported)
    • Flash (Working with MCU's internal Flash memory, Lock/Unlock and various operations on banks and sectors, TI's ROM functions utilized)
    • UART (eUSCI – UART Mode, Write/Read, Write_Text/Read_Text, advanced initialization routines, UART0- UART3 modules supported)
    • I2C (eUSCI) – I2C Mode, Read/Write, I2C timeout implemented (enhancement poll request from MikroE forum), I2C0- I2C3 modules supported (for MSP432 only)
  • Standard software and MikroE default set libraries (in progress)
  • Updates to UART bootloader to support MSP432. (in progress)
  • Extensive work "under the hood" on command lines to accommodate MSP432 family of MCUs (in progress)
  • Configurable system and clock registers available for change in edit project, also predefined schemes available (done)
  • New version of mikroProg Suite for ARM with support for MSP432, with debugger (mostly done, testing in progress)
  • Prototype testing for MSP432 Clicker and Clicker 2 for MSP432 (done)
  • Example sets covering MSP432 (on Clicker 2 for MSP432) architecture (in progress).

Compiler

  • Added: Support for Kinetis MCU family.
  • New: 35 Kinetis MCUs supported (via 8 superset files):
MK22FN128VDC10	MK22FN128VLL10
MK22FN128VLH10	MK22FN128VMP10
MK22FN128CAH12	MK22FN1M0VLH12
MK22FN1M0VLK12	MK22FN1M0VLL12
MK22FN1M0VLQ12	MK22FN1M0VMC12
MK22FN1M0VMD12	MK22FN256CAH12
MK22FN256VDC12	MK22FN256VLH12
MK22FN256VLL12	MK22FN256VMP12
MK22FN512VDC12	MK22FN512VLL12
MK22FN512VLH12	MK22FN512CAP12
MK22FN512VMP12	MK22FX512VLH12
MK22FX512VLK12	MK22FX512VLL12
MK22FX512VLQ12	MK22FX512VMC12
MK22FX512VMD12	MK64FN1M0VDC12
MK64FN1M0VLL12	MK64FN1M0VLQ12
MK64FN1M0VMD12	MK64FX512VDC12
MK64FX512VLL12	MK22FX512VLH12
MK64FX512VMD12

IDE

  • Added: Bootloader Tool now supports Kinetis MCU
  • Added: Aligned specifier parsing.
  • Improved: ARM simulator improvements.
  • Fixed: Debug start when welcome screen in focus sometimes result in IDE crash.

Examples

  • New! Added examples for Clicker2 for Kinetis

IDE

 
  • New: Added site license activation.
  • 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.

Libraries

  • New: Added Crypto Libraries for CEC1302

Examples

  • New: Added Crypto Examples for CEC1302

Compiler

  • New 99 additional MCUs supported:
CEC1302	        STM32F446MC	STM32L476QE	STM32F303RD	STM32F746NG
STM32F042T6	STM32F446RC	STM32L476RC	STM32F303VD	STM32F746VG
STM32F048G6	STM32F446VC	STM32L476RG	STM32F303ZD	STM32F746ZG
STM32F070C6	STM32F446ZC	STM32L476VE	STM32F318C8	STM32F756IG
STM32F070F6	STM32F479AI	STM32L476ZE	STM32F411VC	STM32F756VG
STM32F091CB	STM32F479NI	STM32L486JG	STM32F427AG	STM32L051T6
STM32F091RB	STM32F745IE	STM32L486RG	STM32F429AG	STM32L052T6
STM32F091VB	STM32F745VE	STM32L486ZG	STM32F429BE	STM32L151VD-X
STM32F098CC	STM32F745ZE	STM32F030RC	STM32F439AI	STM32L162VD-X
STM32F098VC	STM32F746BE	STM32F048C6	STM32F446ME	STM32L476JG
STM32F302RE	STM32F746IE	STM32F048T6	STM32F446RE	STM32L476QG
STM32F302VE	STM32F746NE	STM32F070CB	STM32F446VE	STM32L476RE
STM32F302ZE	STM32F746VE	STM32F070RB	STM32F446ZE	STM32L476VC
STM32F303RE	STM32F746ZE	STM32F091CC	STM32F479II	STM32L476VG
STM32F303VE	STM32F756BG	STM32F091RC	STM32L052C8	STM32L476ZG
STM32F303ZE	STM32F756NG	STM32F091VC	STM32F745IG	STM32L486QG
STM32F318K8	STM32F756ZG	STM32F098RC	STM32F745VG	STM32L486VG
STM32F411VE	STM32L051T8	STM32F302RD	STM32F745ZG	STM32F030CC
STM32F427AI	STM32L052T8	STM32F302VD	STM32F746BG	
STM32F429AI	STM32L152VD-X	STM32F302ZD	STM32F746IG	
STM32F437AI	STM32L476JE	STM32L476QE	STM32F303RD	
  • New Support for STM M7 core MCUs
  • Improved: Compiler throw warning if enum is mixed with integer type that exceed its range.
  • Improved: Optimizer added const folding for cast operation.
  • Improved: Ctrl+space did not work with arrays without dimension in declaration.
  • Improved: Added const folding for cast operation.
  • Fixed: Compiler goto after if caused compilation error.
  • Fixed: Compiler ? : operator error with sbit as 1st operand.
  • Fixed: Compiler initialization with &arr[0] caused error.
  • Fixed: Compiler binary number with 64 bits.
  • Fixed: Emcl writer error for local sbit.
  • Fixed: Compiler funcall pragma and optimizer conflict state.
  • Fixed: Linker local extern used only in assembly caused error.
  • Fixed: Linker jump compression error M0 core.
  • Fixed: Linker literal assignment compression error M0 core.
  • Fixed: Linker false static function redefinition error in some cases.

IDE

 
  • Fixed: Ctrl+space did not work with arrays without dimension in declaration.
  • Fixed: Jump to interrupt in simulator didn't work.
  • Fixed: Watch window elements with Inf or Nan values changed unexpectedly.
  • Fixed: Watch windows throws unexpected error in certain case.
  • Fixed: Out of memory error for extremely big symbols.
  • Fixed: Out of memory error for extremely big symbols.

Libraries

 
  • Fixed: Gpio Defs for STM32F401x mcus.
  • Fixed: Added missing registers for floating point unit in STM32F334 mcus.
  • Fixed: GPIO library for STM32L0 mcus.
  • Fixed: ADC library for STM32F401 mcus.
  • Fixed: Wrong consts and address offsets in Flash library for STM32F42x and STM32F43x.

Examples

 
  • New! Added examples for STM32F746VG mcu in Internal MCU Modules group.
  • New! Added examples for CEC1302.

Compiler

  • New 151 additional MCUs supported:
STM32F030C6	STM32F358RC	STM32L152RB-A	STM32F303K8	STM32L051K8	STM32F038G6	STM32F401VD
STM32F334C6	STM32L151VE	STM32F302C8	STM32L100RC	STM32F031F4	STM32F401CD	STM32L152ZE
STM32L151R6-A	STM32F078VB	STM32L053R6	STM32F058R8	STM32F358CC	STM32L152R8-A	STM32F303K6
STM32F072C8	STM32L052C6	STM32F042C6	STM32F411CE	STM32L151VC-A	STM32F302C6	STM32L100RB-A
STM32F429VE	STM32F031G6	STM32F401RC	STM32L162RE	STM32F078RB	STM32L053C8	STM32F058C8
STM32F030F4	STM32F378CC	STM32L152RE	STM32F303R8	STM32L051R8	STM32F042C4	STM32F411CC
STM32F334K4	STM32L152C6-A	STM32F302K8	STM32L151C8-A	STM32F031G4	STM32F401RB	STM32L162RC-A
STM32L151RB-A	STM32F301C8	STM32L062K8	STM32F071RB	STM32F358VC	STM32L152RC-A	STM32F303R6
STM32F072R8	STM32L052K6	STM32F042F6	STM32F411RE	STM32L151ZE	STM32F302K6	STM32L151C6-A
STM32L051C6	STM32F031K6	STM32F401RE	STM32L162VC-A	STM32F301C6	STM32L053R8	STM32F071CB
STM32F030R8	STM32F378VC	STM32L152VB-A	STM32F334C4	STM32L052C8	STM32F042F4	STM32F411RC
STM32F334K8	STM32L152CB-A	STM32F302R8	STM32L151QE	STM32F031K4	STM32F401RD	STM32L162VC
STM32L151RE	STM32F301K8	STM32L063R8	STM32L162ZE	STM32F378RC	STM32L152V8-A	STM32F328C8
STM32F072V8	STM32L052R6	STM32F042G6	STM32F334K6	STM32L152C8-A	STM32F302R6	STM32L151CB-A
STM32L051K6	STM32F038F6	STM32F401VC	STM32L151RC-A	STM32F301K6	STM32L063C8	STM32F071V8
STM32F031C6	STM32F401CC	STM32L152VE	STM32F072RB	STM32L052K8	STM32F042G4	STM32F429IE
STM32F334R8	STM32L152R6-A	STM32F303C8	STM32L051C8	STM32F038C6	STM32F401VB	STM32L162VE
STM32L151VB-A	STM32F301R8	STM32L100R8-A	STM32F031C4	STM32F401CB	STM32L152VC-A	
STM32F078CB	STM32L053C6	STM32F042K6	STM32F334R6	STM32L152QE	STM32F303C6	
STM32L051R6	STM32F038K6	STM32F401VE	STM32L151V8-A	STM32F301R6	STM32L100C6-A	
STM32F031F6	STM32F401CE	STM32L162RC	STM32F072VB	STM32L052R8	STM32F042K4	
  • Fixed: Fixed bug for const folding when project option 4 bytes integer is selected
  • Fixed: Fixed minor optimizer bugs (compare with contsants that are out of range...)
  • Fixed: Fixed code genreator bug push does not affect alligment
  • Fixed: Fixed IDE made files with a lot of blank line for anonymus union and struct

Libraries

  • New! Added NVIC_SetIntPriority function for STM mcus.
  • New! Added EEPROM library for TIVA mcus.
  • Fixed: PWM library for STM32F40x/41x.
  • Fixed: Issue in autonegotiation process for ST MCU-s with Ethernet module.
  • Fixed: In I2C libraries for STM32F307/407 POS bit is now cleared after read in 2 bytes burst mode.

Examples

  • New! Added examples for EasyMx PRO v7 for TIVA.
  • New! Added examples for mikromedia for TIVA.
  • New! Added example for EEPROM module for TIVA.

Compiler

  • New 7 additional MCUs supported:
TM4C129CNCPDT	TM4C129CNCZAD
TM4C129DNCPDT	TM4C129DNCZAD
TM4C129ENCPDT	TM4C129ENCZAD
TM4C129XNCZAD
  • Fixed: Some variations of LDM and STM instructions wasn't supported in assembler.
  • Fixed: Code generator, comparing long extern constants yields "Argument ot of range".
  • Fixed: Comparing 64bit long variables used incorrect compare condition.

Libraries

  • New! GPIO consts are now moved to 'Defs' file.
  • New! Added standard headers assert.h, stdbool.h and time.h.
  • New! Added library support for Touch Panel controller TSC2006 (SPI controlled).
  • Fixed: Incorrect return in certain branch in system function LongDoubleToFloat.
  • Fixed: Bit-band problem with STM32F3xx mcus.
  • Fixed: SPI const in SPI library for TI M3 and TI M4 mcus.
  • Fixed: Resolved bug in SPI_Ethernet_readPHY function of SPI_Ethernet library.

Examples

  • New! Added examples for mikromedia 5 for Tiva.
  • Fixed: Added longer delay for conversion time in OneWire example.

Compiler

  • New ARM Cortex M0 support.
  • New 24 additional MCUs supported:
STM32F050C4	STM32F051K6
STM32F050C6	STM32F051K8
STM32F050F4	STM32F051R4
STM32F050F6	STM32F051R6
STM32F050G4	STM32F051R8
STM32F050G6	STM32F302CB
STM32F050K4	STM32F302CC
STM32F050K6	STM32F303CC
STM32F051C4	STM32F313CC
STM32F051C6	STM32L151CC
STM32F051C8	STM32L151UC
STM32F051K4	STM32L152CC
  • Fixed: Code generator, incorrect access to float variables on stack for M4 devices.

Libraries

  • New! Added library for DAC module in STM32 famillies.
  • Improved STM32 GPIO_Config function, added options for configuring alternative pins.
  • Improved Added new functions in PortExpander library.
  • Improved Added support for ESC key in PS2 library.
  • Improved Added new functions in Conversions library.
  • Fixed: ADC library for STM32 30x.
  • Fixed: Several bugs in STM32 CAN libraries.

Examples

  • New! Added example for DAC module.
  • Fixed: Resolved bug with HID Bootloader example and USB 3.0.

Compiler

  • New 50 additional Tiva M4 C Series MCUs supported
TM4C1230C3PM    TM4C1231H6PM	TM4C1233E6PZ	TM4C1237E6PZ	TM4C123BH6PZ
TM4C1230D5PM	TM4C1231H6PZ	TM4C1233H6PGE	TM4C1237H6PGE	TM4C123BH6ZRB
TM4C1230E6PM	TM4C1232C3PM	TM4C1233H6PM	TM4C1237H6PM	TM4C123FE6PM
TM4C1230H6PM	TM4C1232D5PM	TM4C1233H6PZ	TM4C1237H6PZ	TM4C123FH6PM
TM4C1231C3PM	TM4C1232E6PM	TM4C1236D5PM	TM4C123AE6PM	TM4C123GE6PM
TM4C1231D5PM	TM4C1232H6PM	TM4C1236E6PM	TM4C123AH6PM	TM4C123GE6PZ
TM4C1231D5PZ	TM4C1233C3PM	TM4C1236H6PM	TM4C123BE6PM	TM4C123GH6PGE
TM4C1231E6PM	TM4C1233D5PM	TM4C1237D5PM	TM4C123BE6PZ	TM4C123GH6PM
TM4C1231E6PZ	TM4C1233D5PZ	TM4C1237D5PZ	TM4C123BH6PGE	TM4C123GH6PZ
TM4C1231H6PGE	TM4C1233E6PM	TM4C1237E6PM	TM4C123BH6PM	TM4C123GH6ZRB
  • Fixed: Built-in Delays for STM32F3xxxx MCUs.

Libraries

  • New! FFT Library.
  • New! FIR Library.
  • New! IIR Library.
  • New! Vectors Library.
  • New! Matrices Library.
  • New! Q15 and Q31 Libraries for Cortex M4 MCUs.
  • Improved Added I2C_Set_Active function to I2C library (and generic functions which works with activated module)
  • Fixed: GPIO Library for STM32F4xx MCUs.
  • Fixed: System Library for STM32F3xx MCUs, HSI calibration.
  • Fixed: Initial oscillator start-up to accomodate frequency change after software reset (bootloader issue).

Examples

  • New! Digital Signal Processing (FFT_Convolution, FIR_Demo, IIR_Demo, Vectors, Matrix).
 

By