ChibiOS/RT 2.5.0 has been released. This release is the start of the new development branch even if the development started many months ago without an "official" unstable release, most people interested in the latest code use the repository.
The huge list of changes:
Code: Select all
*** 2.5.0 ***
- FIX: Fixed anomaly in USB enumeration (bug 3565325)(backported to 2.4.3).
- FIX: Fixed problem with lwIP statistics (bug 3564134)(backported to 2.4.3).
- FIX: Fixed packed structures macros not functional in IAR and RVCT port
(bug 3561279)(backported to 2.4.3 and 2.2.10).
- FIX: Fixed Problem in FatFs demos related to LFN (bug 3560980)(backported
to 2.4.3 and 2.2.10).
- FIX: Fixed problem in STM32 DMA1 stream1 IRQ handler (bug 3538468)
(backported to 2.4.2).
- FIX: Fixed TIM8 not working in STM32 GPT driver (bug 3536523)(
- FIX: Fixed wrong priority assigned to TIM8 in STM32 ICU driver (bug 3536950)
(backported to 2.4.2).
- FIX: Fixed TIM8 not working in STM32 GPT driver (bug 3536523)(backported
to 2.4.2).
- FIX: Fixed timer overflow not working in STM32 ICU driver for TIM1/TIM8 (bug
3536522)(backported to 2.4.2).
- FIX: Fixed wrong DMA channels on USART2 in STM32F10X_MD_VL devices (bug
3536070)(backported to 2.4.2).
- FIX: Fixed issue with DMA channel init in STM32 ADC and SPI drivers (bug
3535938)(backported to 2.2.10 and 2.4.2).
- FIX: Fixed issue debugging mmc_spi (bug 3535887)(trunk only).
- FIX: Fixed unreliable PHY initialization (bug 3534819)(backported to 2.4.2).
- FIX: Fixed wrong ADC callback buffer pointer in ADC driver (bug 3534767)
(backported to 2.2.10 and 2.4.2).
- FIX: Fixed STM32F2 RTC subseconds (bug 3533414)(trunk only).
- FIX: Fixed problem with arm-v6m and state checker (bug 3532591)(backported
to 2.4.2).
- FIX: Fixed wrong MAC divider setting in STM32 MAC driver (bug 3531290)
(backported to 2.4.2).
- FIX: Fixed wrong MCO1 divider in STM32F2/F4 HAL (bug 3531289)(backported
to 2.4.2).
- FIX: Fixed missing "break" in AVR PAL driver (bug 3530924)(backported
to 2.4.2).
- FIX: Fixed timeout related race condition in STM32 I2C driver (bug 3530043)
(backported to 2.4.2).
- FIX: Fixed wrong macro check in STM32 MAC driver (bug 3527179)(backported
to 2.4.2).
- FIX: Fixed error in STM32L-Discovery board.h file (bug 3526918)(backported
to 2.4.2).
- FIX: Fixed inconsistent LPCxxx Internal RC oscillator names (bug 3524138)
(backported to 2.2.10 and 2.4.1).
- FIX: Fixed wrong frequency limit checks vs VDD in STM32F2xx HAL (bug 3524094)
(backported to 2.4.1).
- FIX: Fixed STM32 I2C1 wrong alternate TX DMA setting (bug 3524088)
(backported to 2.4.1).
- FIX: Fixed system state check problem related to FatFS (bug 3523769).
- FIX: Fixed three testhal builds fail (bug 3523322)(backported to 2.4.1).
- FIX: Fixed MAC driver functions with invalid name (bug 3522808)(backported
to 2.2.10 and 2.4.1).
- FIX: Fixed code coverage crashes with Linux/gcc-4.4.5 (bug 3522301)
(backported to 2.4.1).
- FIX: Fixed macro dmaWaitCompletion() fails to compile in STM32 HAL (bug
3519202)(backported to 2.4.1).
- FIX: Fixed ARM addresses generated in vectors table (bug 3519037)(backported
to 2.2.10 and 2.4.1).
- FIX: Fixed missing serial driver functionality for SAM7S64, SAM7S128 and
SAM7S512 (bug 3517648)(backported to 2.2.10 and 2.4.1).
- FIX: Fixed a few more spelling fixes (bug 3515531)(backported to 2.4.1).
- FIX: Fixed spurious ) char in STM32 serial_lld.h (bug 3514138)(backported
to 2.2.10 and 2.4.1).
- FIX: Fixed problem with FPU initialization in GCC Cortex-M4 port (bug
3513897)(backported to 2.4.1).
- FIX: Spelling fixes (bug 3510812)(backported to 2.4.1).
- FIX: Fixed STM32 ICUD8 not functional because wrong initialization (bug
3508758)(backported to 2.4.1).
- FIX: Fixed chMBFetchI does not decrement mb_fullsem (bug 3504450)(backported
to 2.2.9 and 2.4.1).
- FIX: Fixed STM32 PLLI2S initialization error (bug 3503490)(backported
to 2.4.1).
- FIX: Fixed USART3 not working on STM32F2/F4 UART driver (bug 3496981)
(backported to 2.4.1).
- FIX: Fixed stack misalignment on Posix-MacOSX (bug 3495487)(backported
to 2.4.1).
- FIX: Fixed STM8S HSI clock initialization error (bug 3489727)(backported to
2.2.9 and 2.4.1).
- FIX: Fixed MMC over SPI driver performs an unnecessary SPI read (bug
3486930)(backported to 2.2.9 and 2.4.1).
- FIX: Fixed Realtime counter initialization in STM32 HALs (bug 3485500)
(backported to 2.4.1).
- FIX: Fixed PPC port broken when CH_DBG_SYSTEM_STATE_CHECK is activated
(bug 3485667)(backported to 2.4.1).
- FIX: Fixed missing PLL3 check in STM32F107 HAL (bug 3485278)(backported
to 2.4.1).
- FIX: Fixed ADC maximum frequency limit in STM32F2/F4 ADC drivers (bug
3484947)(backported to 2.4.1).
- FIX: Fixed various minor documentation errors (bug 3484942)(backported
to 2.4.1).
- NEW: Added Eclipse project files to most demos. The project are setup to
have paths relative to a variable named CHIBIOS that must point to the
ChibiOS/RT installation path. The variable must be defined under
Window->Preferences->General->Workspace->Linked_Resources and must contain
a path without the trailing slash character.
- NEW: Added memory signature record to the registry in order to simplify
the implementation of ad-hoc debuggers.
- NEW: Small andjustment in chcore.h files under ./os/ports/GCC required by a
difference in GCC 4.7.x.
- NEW: Added another STM32F4-Discovery demo using the on-board MEMS, SPI
and PWM. Removed MEMS handling from the old demo because code size limits
on non-free compilers.
- NEW: Added configuration wizard plugin under ./tools/eclipse/plugins. This
first version is able to configure the board files for STM32F0xx, STM32F4xx
and STM32L1xx.
- NEW: Added USART6 support to the STM32 UARTv1 driver, contributed by Erik
van der Zalm.
- NEW: Added demo for Arduino Mega, contributed by Fabio Utzig.
- NEW: Added support for ATmega1280, contributed by Fabio Utzig.
- NEW: Added I2C driver for AVR, contributed by Fabio Utzig.
- NEW: Added FatFs demo for the Olimex STM32-P107 board.
- NEW: Added support for the Olimex STM32-E407 board. Added an integrated
demo including USB-CDC, lwIP with web server, FatFs and shell, all running
together.
- NEW: Added an experimental and unsupported STM8 port for the IAR compiler,
contributed by "king2".
- NEW: Updated STM8 header files to latest versions from ST.
- NEW: Reorganized the STM32 EXT driver to have a sub-platform specific
part containing all the ISR related code, this has been necessary because
the significant differences among the various sub-families.
- NEW: Validated CAN driver on STM32F2/F4 (backported to 2.4.2).
- NEW: USB implementation for STM32F105/F107/2xx/F4xx devices.
- NEW: Improved SerialUSB driver using the new queued mode, much smaller
than the previous driver.
- NEW: Improved USB driver model supporting also queues for endpoint I/O,
packet mode removed.
- NEW: Added an application-defined field to I/O queues (a void pointer).
- NEW: Added board files for Maple Mini STM32F103, contributed by Wagner
Sartori Junior.
- NEW: Added SSP1 capability to the LPC13xx SPI driver.
- NEW: Updated vendor headers for LPC11xx and LPC13xx, the new headers
support several new devices.
- NEW: Demo for STM32F0-Discovery board.
- NEW: Initial support for STM32F0xx devices, added a specific ADC driver.
Validated EXT, GPT, ICU, PAL, PWM, Serial, SPI, UART drivers.
- NEW: Added a common ancestor class to the SDC and MMC_SPI drivers. This
allows to share code and definitions.
- NEW: Modified the SDC driver to implement the new block devices abstract
interface.
- NEW: Added two new functions to the MMC_SPI driver: mmcSync() and
mmcGetInfo(). Also implemented the new block devices abstract
interface. Moved the configuration parameters from mmcObjectInit() to
the configuration structure saving some RAM space. Updated demos.
- NEW: Added an abstract interface for block devices in the HAL. This
abstraction layer is meant to unify the access protocol to the SDC and
MMC_SPI (and potentially others) device drivers.
- NEW: Added an abstract interface for serial devices in the HAL. This
interface is meant to replace the equivalent class already present in the
kernel. access macros are similar except for the prefix, "chn" instead
of "chIO".
- NEW: Updated the MSP port to work with the latest MSPGCC compiler (4.6.3
LTS 20120406 unpatched), now the old MSPGCC 3.2.3 is no more supported
(backported to 2.4.1).
- NEW: EXT driver improved, now it is possible to reprogram channels at
runtime without necessarily specifying a new configuration.
TODO: Update AT91SAM7 EXT driver.
- NEW: Integrated FatFS 0.9, now the FatFS integration files are centralized
under ./os/various/fatfs_bindings and shared among all demos. The FatFS
file ffconf.h is now application-specific like all the other configuration
files.
- NEW: Added an new option CORTEX_PRIGROUP_INIT to the Cortex-Mx ports in
order to make priority organization configurable, the default is to
assign all the available priority bits to preemption priority with no
sub-priorities.
- NEW: Added a new function chPoolLoadArray() to the Memory Pools subsystem,
it allows to load an entire array element's into a pool with a single
operation.
- NEW: Addes support for .S patch in the GCC ARM ports, by Ayman El-Khashab.
- NEW: Added a switch to the STM32F4 Makefile files in order to enable or
disable the FPU support in a single place.
- NEW: Added float support (optional) to chprintf(), by Fabio Utzig.
- NEW: Added overflow handling in the ICU driver (contributed by Xo).
- NEW: Updated debug plugin 1.0.8 (backported to 2.4.0).
- NEW: Added more accurate UBRR calculation in AVR serial driver (backported
to 2.4.0).
- NEW: Revision of the round-robin scheduling, now threads do not lose their
time slice when preempted. Each thread has its own time slices counter.
TODO: Seek optimizations.
- NEW: Modified the Virtual Timers management, now the callback is invoked
not in lock mode. This change reduces the interrupt jitter caused by
multiple timers used at same time.
- NEW: Added board files and demo for Olimex LPC-P1343 (contributed by
Johnny Halfmoon).
- NEW: Added handling of input 2 to the STM32 ICU driver (contributed by
Fabio).
- NEW: STM32 Ethernet driver completed. Added STM32F107 and STM32F407
lwIP demos (backported to 2.4.1).
- NEW: lwIP related code is not centralized into a single place, no need to
duplicate the code in each application or demo (backported to 2.4.1).
- CHANGE: Added two new methods to the BaseSequentialStream interface:
chSequentialStreamPut() and chSequentialStreamGet().
- CHANGE: Removed the chioch.h header from the kernel, now channels interface
is exported by the HAL. Removed functions chPutWouldBlock() and
chGetWouldBlock().
- CHANGE: Removed macro chMsgGetS(), chMsgGet() is still available.
- CHANGE: chprintf() now takes a BaseSequentialStream as parameter instead
of a BaseChannel making it more generic.
- CHANGE: Now the shell requires a BaseSequentialStream instead of a
BaseChannel for communications making it more generic.
- CHANGE: Kernel memory pools now do not check the alignment of the inserted
objects, it is responsibility of the application to insert properly
aligned objects.
- CHANGE: The PORT_INT_REQUIRED_STACK parameter for the Cortex-Mx ports has
been increased to 32 from 16 because the stack frame sizes are increased
when compiling with optimizations disabled, which is common during
debugging. In order to save RAM trim back this value when compiling with
optimizations enabled (backported to 2.4.1).
- CHANGE: Renamed Ethernet driver in AT91 HAL ETHD1 (backported to 2.4.1).
- CHANGE: Macros icuGetWidthI() and icuGetPeriodI() renamed to icuGetWidth()
and icuGetPeriod().
- Various documentation fixes and improvements.
Giovanni