uC-CPU Release Notes

Version 1.32.01

Release Date

May 4, 2021

New Features and Improvements

  • POSIX port - Capitalized folder and added _POSIX_C_SOURCE.

Version 1.32.00

Release Date

February 28, 2020

  • Open-source Release

Version 1.31.05

Release Date

June 20, 2019

New Features and Improvements

  • [621] ARMv7-R port - Added GNU toolchain support.
  • [622] ARMv7-R port - Simplified the port by removing unused routines which should now be handled by third-party libraries.

Bugfixes

  • [612] ARMv7-M port - Fixed build error in the CCS toolchain definitions for the memory barrier macros.

Version 1.31.04

Release Date

December 7, 2018

Improvements

  • [423] ARMv6-M port - CPU_IntSrcPrioSet() now calculates the priority offsets internally. 
  • [530] ARMv7-M port - CPU_IntSrcPrioSet() now calculates the priority offsets internally. 

Version 1.31.03

Release Date

June 18, 2018

New Features

  • [422] ARMv7-M Non-Kernel-Aware Interrupt Support

Improvements

  • [109][154] ARM port directories have been restructured and consolidated (e.g. ARM-Cortex-A/ARMv7-A, ARM-Cortex-A/ARMv8-A)

Bug Fixes

  • [218] ARMv7 cache routine missing Break
  • [263] Cache functions for ARM and Kinetis should return immediately when the length is 0
  • [313] Microblaze cache functions are declared implicitly

Deprecations

  • [411] Deprecated the ARM-Cortex-M1 port

Version 1.31.02

Release Date

December 8, 2017

New Features

  • [199] Added a new port for the RISC-V architecture

Bug Fixes

  • [158] Fixed a compiler warning in CCS where __DSB() could not be found.

Version 1.31.01

Release date : 2016-11-30

Requirements

  • µC/LIB V1.38.02

New features & improvements

  • Core
    • MISRA C:2012
      • Updated the core for improved MISRA C:2012 compliance.
      • The number of violations has been reduced to 8 required rules and 8 advisory rules.
  • ARC EM6
    • New port for the Synopsys ARC EM6. Supports the MetaWare toolchain.

Bug Fixes

  • ARM-Cortex-M3
    • Fixed improper calculation of the vector position in the CPU_Int*** functions.
    • Increased the data type size for the maximum position to 16-bits in order to support a full vector table.

  • ARM-Cortex-M4
    • Increased the data type size for the maximum position to 16-bits in order to support a full vector table. 

Version 1.31.00

Release date : 2016-06-30

Requirements

  • µC/LIB V1.38.02

New features & improvements

  • ARM-Cortex-A
    • Critical sections for GCC now use inline assembly.
  • ARM-Cortex-A50
    • Added CP15 accessors.
  • C28x
    • New port for the CCS toolchain.
  • eSi-3250
    • New port for the EDS toolchain.
  • MicroBlaze
    • Changed the extension of cpu_a.s to cpu_a.S.
    • Added support for Microblaze cores without the MSR instruction.
    • Implemented an optimized CLZ for the port.
  • MPC57xx
    • New port for the GNU toolchain.
  • MSP430x
    •  Added support for CCS.
  • Cache
    • Added cache support for the Cortex-M7.
    • Added cache support for the PowerPC e200z4204n3 core on the GNU toolchain.
  • Core
    • Added a function to reset performance monitors, CPU_StatReset().
    • Added a C linkage specifier to cpu_core.h for C++ builds.
    • CPU_VAL_UNUSED(val) now uses (void)(val) for suppressing unused variable warnings.
    • CPU_CACHE_MGMT_EN is now given a default value if not defined.

Bug fixes

  • ARM-Cortex-A
    • Fixed endianness detection in the CCS port.
  • ARM-Cortex-M3
    • Fixed vector position calculations.
  • POSIX
    • Fixed race condition when manually triggering an interrupt.
  • Cfg Template
    • Fixed typedefs for 64 bit Address and Data sizes.

Obsolete features

  • The following CPU ports have been removed and replaced by the ARM-Cortex-A port.
    • ARM-Cortex-A8
    • ARM-Cortex-A9

Version 1.30.02

Release date : 2015-02-16

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • ARM-Cortex-A50: RealView port updated for ARM Compiler 6
  • ARM-Cortex-A50: GNU-like toolchain support
  • ARM-Cortex-A: Endianness now detected at compile time
  • ARM-Cortex-M4: Port for Texas Instrument Code Composer Studio
  • MicroBlaze: Support for both little and big endian version of the MicroBlaze
  • MicroBlaze: Memory barrier implementation
  • RL78: Port for the GNU toolchain
  • Freescale Kinetis: Cache controller implementation for the Kinetis
  • NiosII: Cache controller implementation for the Altera Nios II
  • POSIX: Port for POSIX like systems
  • Core: New function CPU_PopCnt32()

Bug fixes

  • (CPU-81) Cache: Conditional inclusion of cpu_cache.h now checks if CPU_CFG_CACHE_MGMT_EN is defined to prevent compiler warnings
  • (CPU-93) ARM-Cortex-M0 & M1: Added missing include of intrinsics.h in the IAR port
  • (CPU-96) ARM-Cortex-A50: Fixed incorrect nesting of critical sections
  • (CPU-97) ARM-Cortex-A: Fixed interworking linking issues under the GNU toolchain
  • (CPU-104) RL78: CPU_SR() in the GNURX port now defined as a byte to save stack space
  • (CPU-106) ARM-Cortex-M3 & M4: Added missing critical section exit in function CPU_IntSrcPrioGet()
  • (CPU-107) Fixed shift by zero warning for the macro CPU_TYPE_CREATE
  • (CPU-109) Fixed endian detection at compile type
  • (CPU-113) Cache: Modified the name of the ARM cache controller ports to ensure unique filenames
  • (CPU-118) CPU_CntLeadZeroes32: Fixed incorrect cast for less than 32 bit platforms
  • (CPU-119) Win32: Removed the space in the Visual Studio port path

Version 1.30.01.01

Release date : 2014-02-18

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • MIPS32-4k: Various improvements and bug fixes.
    • Implementation of assembly optimised version of CPU_CntLeadZeros(). Improves performance when used in conjunction with uC/OS-III
    • Implementation of the memory barrier macros
    • Removed outdated code directives and various other aesthetic improvements
    • Bug fixes (See below)

Bug fixes

  • (CPU-90) MIPS32-4k: Added required hazard barriers at the end of the critical sections
  • (CPU-88) MIPS32-4k: Added missing .noreorder code generation directive in cpu_a.s
  • (CPU-82) Improved MISRA compliance of CPU_CntLeadZerosXX() functions

Version 1.30.01

Release date : 2014-02-12

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • ARM-Cortex-A50: New port for the Cortex-A50 line of 64 bits ARMv8-A processors. Includes support for the ARM Compiler Toolchain and GNU

Bug fixes

  • (CPU-69) Cache: Fixed incorrect declaration of CPU_DCache_LineSizeGet()
  • (CPU-78) Cache: Fixed incorrect reference to CPU_CacheMGMT_LineSize in the IAR implementation of cpu_cache_armv7_generic_l1
  • (CPU-79) Missing CRITICAL_SECTION_EXIT() in CPU_IntSrcPrioGet()
  • (CPU-80) MISRA compliance fix in the definition of CPU_WORD_SIZE_XX
  • (CPU-84) Added missing empty memory barriers in the port template

Version 1.30.00

Release date : 2013-12-18

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • Cache maintenance: Cache maintenance functionalities are now implemented in uC/CPU for use by other Micrium products.
  • Cortex-M3 & M4: Performance improvements for the IAR toolchain.
  • Online documentation: The reference manual is now available online. Please visit micrium.atlassian.net for the latest version.

Bug fixes

  • (CPU-59) Renesas RX: Added missing definition of CPU_CFG_STK_ALIGN_BYTES.
  • (CPU-64, CPU-68) Renesas RX: Added missing definitions of the memory barrier macros.

Version 1.29.02.04

Release date : 2013-09-24

Requirements

  • µC/LIB V1.35.00

Bug fixes

  • (CPU-46) Cortex-A: Incorrect preprocessor condition to detect the endianness of the GNU and CCS ports.
  • (CPU-47) Cortex-A9: Incorrect preprocessor condition to detect the endianness of the GNU and CCS ports.

Version 1.29.02.03

Release date : 2013-08-06

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • ARM Cortex-A: New port for the entire 32-bits ARM Cortex-A family. Support for the following compilers/toolchains is included:
    • ARM Compilation Tools (DS-5)
    • GNU
    • IAR EWARM
    • TMS470 Compiler Toolchain (TI Code Composer Studio)
  • C++ compilation: Building in C++ now supported for all the ports.

Bug fixes

  • (CPU-40) Renesas RX: CPU_CFG_KA_IPL_BOUNDARY should be defined to a default value when left unconfigured.
  • (CPU-39) Incorrect file extension for some GCC assembler files. The following ports were affected:
    • AVR32/UC3
    • AVR32/AP7000
    • ARM-Cortex-M4
    • MCF5272
  • (CPU-35) Cortex A9: Invalid files in the IAR port.

Deprecated features

  • The following CPU ports are now supported by the new ARM-Cortex-A port and will be removed in a future release.
    • ARM-Cortex-A8
    • ARM-Cortex-A9

Version 1.29.02.02

Release date : 2013-05-22

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • POSIX: New port for testing on POSIX and POSIX-like systems.

Bug fixes

  • (CPU-30) Renesas RX: IAR port should use __set_interrupt_level() instead of __set_interrupt_state().
  • (CPU-32) Renesas RX: Invalid quote characters in GNURX/cpu.h.

Version 1.29.02.01

Release date : 2013-04-18

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • Renesas RX: Support for improved uCOS-III port and interrupt handling.

Bug fixes

  • (CPU-24) Cortex-R4: Missing include of intrinsics.h in the IAR port.

Version 1.29.02

Release date : 2013-03-18

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • ARMv7 memory barriers: New memory barriers implementation for the Cortex A, R and M ports.
  • Stack alignment: New cpu specific define CPU_STK_ALIGN_BYTES for the platform required stack alignment.
  • Cortex A8: New port for the IAR toolchain.
  • Cortex A9: New port for the RealView/ARMCC toolchain.
  • Endianness test: New global constant CPU_EndiannessTest for testing endianness at runtime.

Bug fixes

  • (CPU-20) Renesas RX: Volatile registers require the __evenaccess type qualifier on RXC.
  • (CPU-15) cpu_bsp.c not buildable by default.
  • (CPU-13) ARMv7-AR: Add missing data synchronisation barriers in critical sections.
  • (CPU-6) Cortex-M: Interrupt priority incorrectly set for the M0, M3 and M4 ports.

Version 1.29.01.01

Release date : 2012-12-03

Requirements

  • µC/LIB V1.35.00

New features & improvements

  • Renesas RX port: New unified port for most of the Renesas RX series other than the RX610.
  • Configurable endianness: CPU endianness can now be configured in cpu_cfg.h for bi-endian architectures. Currently only the RX port supports this feature.

API Changes

  • N/A

Bug fixes

  • N/A

Deprecated features

  • The following CPU architectures are now supported by the new RX port and will be removed in a future release. Note that the RX610 still requires a separate port.
    • RX210
    • RX62N
    • RX63N
    • RX600
    • RX630

Deprecated features

  • The following CPU ports are now supported by the new ARM-Cortex-A port and will be removed in a future release.
    • ARM-Cortex-A8
    • ARM-Cortex-A9