2.6.x stable branch

Stable and Unstable release events. This forum is NOT for support.
User avatar
Giovanni
Site Admin
Posts: 14444
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 1074 times
Been thanked: 921 times
Contact:

2.6.x stable branch

Postby Giovanni » Sat Jun 08, 2013 11:37 am

Hi,

ChibiOS/RT 2.6.0 has been released, this branch will probably be the last one in the 2.x line and will be supported as an LTS release.

Lots of improvements:

Code: Select all

*** 2.6.0 ***
- NEW: Added new pwmIsChannelEnabledI() API to the PWM driver, implemented
  in the STM32 driver.
- NEW: Added support for timers 6, 7, 9, 11, 12, 14 to the STM32 GPT driver.
- NEW: Added support for timer 9 to the STM32 PWM and ICU drivers.
- NEW: Relicensed parts of the distribution tree under the Apache 2.0
  license in order to make specific parts of the code more accessible
  to the open source community and adopters.
- NEW: Added ADC(EQADC), HAL, ICU, PAL, PWM, Serial drivers for SPC5xx
  platforms, tests to be added on the various sub-families.
- NEW: Added support for SPC56ELxx, SPC560BCxx, SPC560Pxx, SPC560Mxx and
  SPC564Axx platforms.
- NEW: Now the general documentation includes data extracted from the low
  level driver templates. Per-platform/architecture documents are no more
  required and will be replaced with technical articles and examples for
  each specific driver.
- NEW: Added a build test project for low level device driver templates.
- NEW: Enhanced CAN driver model, support for mailboxes has been added. STM32
  driver implementation upgraded.
- NEW: Added ADC and PWM drivers for the AT91SAM7 platform, both donated
  by Andrew Hannam.
- NEW: Added kernel support for the SAM4L, an Atmel Studio 6 demo for the
  SAM4L-EK board has been added.
- NEW: CAN2 support for STM32 added.
- NEW: Updated STM32L1xx header to the latest version.
- NEW: Added an option to lwipthread to change the link status poll interval.
- NEW: Added new C++ demo for the STM32F4-Discovery.
- NEW: Updated C++ wrapper with a much more logical classes structure.
- NEW: ADC driver implementation for the STM32F3xx, the driver supports also
  the dual-ADC mode allowing for a very high combined bandwidth.
- NEW: Added zero-copy capability to the STM32 MAC driver (experimental and
  not tested yet).
- NEW: Added an optional zero-copy mode API to the MAC driver model.
- NEW: Added EXT driver to the STM32F3xx platform.
- NEW: Improved the STM32 EXT driver to support more than 32 channels.
- NEW: Added support for Olimex board STM32-LCD.
- NEW: Support for STM32F30x and STM32F37x.
- NEW: AT91SAM7A3 support.
- NEW: Unified the STM32F4xx and STM32F2xx platform code. The STM32F2xx now is
  only supported as an STM32F4xx variant and not tested separately.
- NEW: Updated STM32F1, F2, F4, L1 ADC drivers to allow HW triggering.
- NEW: Added a new option STM32_ETH1_CHANGE_PHY_STATE to the STM32 MAC driver,
  this change is connected to bug 3570335.
- NEW: Modified the CAN drivers to use the new event flags mechanism, the
  previous flags handling has been removed.
- NEW: Modified serial and serial_usb drivers to use the new event flags
  mechanism, the previous flags handling in BaseAsynchronousChannel has
  been removed.
- NEW: Improved the kernel events subsystem, now event sources can associate
  source-specific flags to the listener, the flags can then be retrieved
  using the new APIs chEvtGetAndClearFlags() and chEvtGetAndClearFlagsI().
  Some old APIs have been renamed to increase consistency of the module.
- NEW: Added VLE support to the Power Architecture GCC port.
- NEW: Reorganized the Power Architecture GCC port along the lines of the
  ARMCMx port, now it can support multiple core types.
- NEW: Updated the Power Architecture rules.mk file to put object and listing
  files into a ./build directory like ARM ports already do.
- 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 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: 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

User avatar
Tectu
Posts: 1226
Joined: Thu May 10, 2012 9:50 am
Location: Switzerland
Contact:

Re: 2.6.x stable branch

Postby Tectu » Sat Jun 08, 2013 1:23 pm

As always, excellent work, Giovanni! I tweeted about it.


~ Tectu

jnz
Posts: 3
Joined: Sat Jun 08, 2013 5:28 pm

Re: 2.6.x stable branch

Postby jnz » Sat Jun 08, 2013 5:30 pm

Great, thank you!

goeck
Posts: 92
Joined: Mon Feb 11, 2013 12:00 pm
Location: Germany

Re: 2.6.x stable branch

Postby goeck » Sat Jun 08, 2013 7:14 pm

Wow.. Look at that Changelog and those massive improvements! Congrats, this is really usefull work. Keep it up!

Cheers
Göck

User avatar
barthess
Posts: 861
Joined: Wed Dec 08, 2010 7:55 pm
Location: Minsk, Belarus
Been thanked: 7 times

Re: 2.6.x stable branch

Postby barthess » Mon Jun 10, 2013 8:54 am

Hi Giovanni,
First of all thanks for you work.
I have a question about 3.0 development branch. How stable it will be in your opinion comparing with 2.5.x unstable? I am wondering is it worth to stick my current work to 2.6.x or continue to use trunk (2.5.x was stable enough for my needs).

User avatar
Giovanni
Site Admin
Posts: 14444
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 1074 times
Been thanked: 921 times
Contact:

Re: 2.6.x stable branch

Postby Giovanni » Mon Jun 10, 2013 9:34 am

Hi,

3.0 will be highly experimental for a while and will receive all the ideas I never wanted to try on 2.x, it will be a branch not trunk.

If you need a long term supported version go with 2.6.x, rest assured that development will go on as usual into trunk as 2.7.x and backported to 2.6.x when 100% ready. 2.7.x will be as stable as 2.5.x.

Giovanni

User avatar
Prof. Dr. YoMan
Posts: 57
Joined: Thu May 24, 2012 11:00 am
Been thanked: 1 time

Re: 2.6.x stable branch

Postby Prof. Dr. YoMan » Mon Jun 10, 2013 9:37 am

Congrats!

HallMark
Posts: 1
Joined: Wed Aug 07, 2013 2:24 pm

Re: 2.6.x stable branch

Postby HallMark » Thu Aug 08, 2013 4:02 am

Great Work !

I am still newbie to ChibiOS.

User avatar
Giovanni
Site Admin
Posts: 14444
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 1074 times
Been thanked: 921 times
Contact:

Re: 2.6.x stable branch

Postby Giovanni » Sun Aug 18, 2013 8:59 am

Hello,

ChibiOS/RT 2.6.1 has been released, this is a maintenance release for the 2.6.x branch, all known defects have been fixed.

Code: Select all

*** 2.6.1 ***
- FIX: Fixed PAL driver documentation error (bug #427).
- FIX: Fixed UART4 and 5 marked as not present in STM32F30x devices (bug #426).
- FIX: Fixed warning in STM32 ICU/PWM drivers when used on STM32F3xx (bug
  #425).
- FIX: Fixed conditional code error in STM32 PWM driver (bug #424).
- FIX: Fixed error in Guards of pwm_lld.h from STM32 (bug #423).
- FIX: Fixed wrong RTC macro names in STM32L1xx HAL (bug #422).
- FIX: Fixed CodeSourcery personal version fails to build with undefined
  errno_r (bug #421).
- FIX: Fixed FSMC reset on STM32F4xx (bug #420).
- FIX: Fixed invalid directory links in the demo files (bug #419).
- FIX: Fixed missing casts in time-conversion macros (bug #418).
- FIX: Fixed PLL2 activation condition is wrong in STM32F107 HAL (bug #417).
- NEW: Improvements to the STM32F4xx backup domain initialization.
- NEW: Added initializer for the DIER register to the STM32 GPT, ICU and
  PWM drivers.
- NEW: Added support for 32bits counters to the STM32 GPT driver.
- NEW: Added port support for SCP560B64.
- CHANGE: Moved the STM32 GPT, ICU and PWM low level drivers under
  ./os/hal/platform/STM32/TIMv1. Updated all the impacted project files.


Giovanni

User avatar
Giovanni
Site Admin
Posts: 14444
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 1074 times
Been thanked: 921 times
Contact:

Re: 2.6.x stable branch

Postby Giovanni » Mon Jan 06, 2014 11:03 am

Hello,

ChibiOS/RT 2.6.2 has been released, this maintenance release fixes all known problems but also introduces a lot of new features, please see the readme file for details.

The 2.6.x branch will be the ChibiOS workhorse until version 3.0.0 will be released as stable. Support for 2.6.x is expected to last for at least 18 months from now, possibly more. There will not be a version 2.7.0

List of changes:

Code: Select all

*** 2.6.2 ***
- FIX: Fixed wrong vector names for STM32Lxx.
- FIX: Fixed wrong STM32_TIM_CCMR2_OCxM macros on STM32F30x (bug #449).
- FIX: Fixed STM32F30x TIM1/TIM8 alternate clock source setting not
  recognized (bug #448).
- FIX: Fixed wrong MCO2 check in STM32F4xx HAL driver (bug #447).
- FIX: Fixed spurious half buffer callback in STM32 ADC drivers (bug #446).
- FIX: Fixed callbacks changes to the ADC high level driver (bug #445).
- FIX: Fixed wrong definition in STM32F37x ADC driver (bug #444).
- FIX: Fixed wrong CORTEX_PRIORITY_PENDSV value (bug #443).
- FIX: Fixed lost incoming characters in STM32 USARTv1 driver (bug #442).
- FIX: Fixed STM32 OTG-FS wrong upper memory limit (bug #437).
- FIX: Fixed race condition in STM32 DMA interrupt (bug #439).
- FIX: Fixed timing issue in the STM32 OTGv1 USB driver (bug #436).
- FIX: Fixed STM32L1 remove reset flag (bug #435).
- FIX: Fixed unaligned data access in USB LLD (bug #434).
- FIX: Fixed add RTC to STM32L1 (bug #433).
- FIX: Fixed support 10-bit addresses in STM32 I2C driver (bug #432).
- FIX: Fixed duplicate STM32_GPT_USE_TIM8 definition in some mcuconf.h files
  (bug #431).
- FIX: Fixed possible unalignment in GCC Cortex-M scatter files (bug #430).
- NEW: Added support for STM32F030xx/050xx/060xx devices.
- NEW: Added BOARD_OTG_NOVBUSSENS board option for STM32 OTG.
- NEW: Added SPI4/SPI5/SPI6 support to the STM32v1 SPIv1 low level driver.
- NEW: Added chvprintf() and chsnprintf() functions to the chprintf module.
- NEW: Added a new function shellExit() to the shell. It allows to exit the
  shell from any command handler.
- NEW: Added support for STM32F401/STM32F42x/STM32F43x devices.
- NEW: Improved time range check in the kernel, new API chTimeElapsedSince()
  introduced. The API chTimeIsWithin() is now a macro.
- NEW: Added support for STM32F0xx platform in RTCv2 driver.
- NEW: Improvements to the STM32F4xx backup domain initialization.
- NEW: Added support for STM32F4xx backup RAM.
- NEW: Added support of UART4 and UART5 (STM32F4xx and STM32F2xx platforms)
  (feature request #28).


Giovanni


Return to “Releases”

Who is online

Users browsing this forum: No registered users and 18 guests