uC-CPU Release Notes

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

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