2.3.x development branch

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

2.3.x development branch

Postby Giovanni » Sun Mar 06, 2011 4:02 pm

Hello,

ChibiOS/RT 2.3.0 has been released. This release is the start of the new development branch. Among the other features this version brings official support for USB and improvements to the kernel.

Worth mentioning are also the new "IRQ STORM" test applications under ./testhal, those really brings down the system on its knees in order to test overall stability, I must say the results have been very good, even under the worst conditions the system is able to recover (and by worst I mean random interrupts with an average period under 10uS and complete CPU saturation). The tests are meant to be long duration stress tests and take hours to complete.

List of changes:

Code: Select all

*** 2.3.0 ***
- FIX: Fixed race condition in CM0 ports, the fix also improves the
  ISR latency (bug 3193062)(backported to 2.2.2).
- FIX: Fixed Cortex-Mx linker scripts alignment of __heap_base__, the
  correct alignment is now enforced at runtime into core_init() in order
  to make the OS integration easier (bug 3191112)(backported to 2.2.2).
- FIX: Fixed error in function chCoreAllocI() function documentation (bug
  3191107)(backported to 2.2.2).
- FIX: Fixed minor problem with memory pools (bug 3190512)(backported to
  2.2.2).
- FIX: Stack overflow in CM0 ports when nearing interrupts saturation (bug
  3187105)(backported to 2.2.1).
- FIX: Fixed error in _BSEMAPHORE_DATA macro (bug 3184139)(backported to
  2.2.1).
- FIX: Error in MAC driver (bug 3179783)(backported to 2.2.1).
- FIX: Fixed wrong serial driver macros (bug 3173336)(backported to 2.2.1).
- NEW: Inproved preemption implementation for the Cortex-M0, now it uses
  the NMI vector in order to restore the original context. The change makes
  IRQ handling faster and also saves some RAM/ROM space. The GCC port code
  now does not inline the epilogue code in each ISR saving significan ROM
  space for each interrupt handler in the system (backported to 2.2.3).
- NEW: Added "IRQ STORM" long duration tests for the STM32, LPC11xx and
  LPC11xx. The test demonstrates the system stability in a thread-intensive,
  progressively CPU-saturating, IRQ-intensive long duration test.
- NEW: Added two new functions to the events subsystem: chEvtBroadcastFlags()
  and chEvtBroadcastFlagsI(). The old chEvtBroadcast() and chEvtBroadcastI()
  become macros. The new functions allow to add the same flags to all the
  registered listener threads.
- NEW: Added I-Class functions to the MailBoxes subsystem, now it is
  possible to use them as a transport layer between ISRs and Threads
  (backported to 2.2.2).
- NEW: Added new USB driver model, probably it will evolve in next
  releases.
- NEW: USB driver implementation for STM32.
- NEW: Added "serial over USB" driver, it implements a Communication
  Device Class exposing it as a normal serial driver to applications,
  probably it will evolve in next releases.
- NEW: Added STM32 USB CDC loopback test application.
- NEW: Added new GPT driver model, General Purpose Timer. The driver
  allows to access the available timers in an abstract way.
- NEW: GTP driver implementation for STM32, LPC13xx and LPC11xx.
- NEW: Added STM32 GPT test application.
- NEW: Implemented new event IO_TRANSMISSION_END in the generic serial
  driver. This event marks the physical transmission end of a data stream.
- NEW: Implemented the new IO_TRANSMISSION_END event in the STM32 serial
  driver.
- NEW: Added explicit reset of all peripherals inside the STM32 HAL driver.
  Removed the separate resets on initialization from the various other
  drivers saving significant space.
- OPT: Removed TIMx reset on system startup in the STM32 PWM driver, the
  timers are already reset on driver startup.
- CHANGE: The functions chEvtSignal() and chEvtSignalI() have been renamed
  to chEvtSignalFlags() and chEvtSignalFlagsI() for consistency.
- CHANGE: Swapped the numeric values of the TIME_IMMEDIATE and TIME_INFINITE
  constants. Fixed the relative documentation in various places (backported
  to 2.2.2).
- Many documentation improvements.


As you can see, some of the new features have been, or are going to be, back-ported into the 2.2.x stable branch.

Giovanni

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

Re: 2.3.x development branch

Postby Giovanni » Sun Apr 03, 2011 1:09 pm

Hi,

ChibiOS/RT 2.3.1 has been released. This version brings numerous improvements to the Kernel and the HAL, a new ICU (Input Capture Unit) device driver model has been introduced.

Changes:

Code: Select all

*** 2.3.1 ***
- FIX: Fixed insufficient idle thread stack in Cortex-M0-GCC port (bug 3226671)
  (backported to 2.2.3).
- FIX: Fixed stack checking in Cortex-M0-GCC port (bug 3226657)(backported
  to 2.2.3).
- FIX: Fixed wrong checks in PAL driver (bug 3224681)(backported to 2.2.3).
- FIX: Fixed wrong checks in I/O Queues (bug 3219197)(backported to 2.2.3).
- FIX: Fixed invalid assertion in adcConvert() (bug 3205410)(backported
  to 2.2.3).
- NEW: Improvements to the PWM driver model:
  - Easier configuration similar to the GPT driver initializations, macros
    are no more required.
  - Added a new function that allows to change the PWM period on the fly,
    even from within callbacks. Formerly it was required to stop and restart
    the driver.
  - Improved driver documentation.
- NEW: Added advanced mode to the STM32 PWM driver (TIM1 only).
- NEW: Added new ICU driver model, Input Capture Unit.
- NEW: ICU driver implementation for STM32.
- NEW: Implemented stack checking in the Cortex-Mx RVCT port (backported
  to 2.2.3).
- NEW: Added support for PLL3 in STM32 HAL driver. Note, the format of the
  mcuconf.h file is changed for STM32F105/STM32F107 devices.
- NEW: Added board files for the Olimex STM32-P107.
- NEW: Improved setup packets handling in the USB driver through a specific
  callback.
- NEW: Improvements to the PAL driver and various implementation in order
  to make them more parenthesis friendly.
- OPT: Simplified Serial over USB driver configuration.
- CHANGE: Renamed the demo ARMCM3-STM32F107-GCC in ARMCM3-STM32F107 and added
  IAR and Keil projects.
- CHANGE: Now the ARMCM3-STM32F107 demo targets the board Olimex STM32-P107
  as default.
- CHANGE: Removed all the prefixes from the structure/union field names
  in the HAL subsystem.
- CHANGE: Updated the documentation to use Doxygen 1.7.4 which produces a much
  more readable output. Also modified the documentation layout to put functions
  and variables ahead of everything else in the group pages.
  Doxygen version below 1.7.4 cannot be used anymore because differences in
  templates. Note that now there are two Doxygen projects, one for generating
  the CHM file the other for plain HTML.


Giovanni

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

Re: 2.3.x development branch

Postby Giovanni » Sat May 14, 2011 10:40 am

Hi,

ChibiOS/RT 2.3.2 has been released. A new SDC (Secure Digital Card) device driver model has been introduced among several other improvements and fixes.

Changes:

Code: Select all

*** 2.3.2 ***
- FIX: Fixed invalid BRR() macro in AVR serial driver (bug 3299306)(backported
  to 2.2.4).
- FIX: Fixed missing IRQ vectors amicable names for STM32 XL devices (bug
  3298889)(backported to 2.2.4).
- FIX: Fixed wrong identifier in AVR serial driver (bug 3292084)(backported
  to 2.2.4).
- FIX: Fixed wrong macro check for STM32 XL devices (bug 3291898)(backported
  to 2.2.4).
- FIX: Fixed SPI driver restart in STM32 SPI driver implementation, also
  applied the same fix to the STM8S SPI driver (bug 3288758)(backported to
  2.2.4).
- FIX: Fixed missing state transition in ADC driver (bug 3288149)(backported
  to 2.2.4).
- FIX: Fixed missing state transition in SPI driver (bug 3288112)(backported
  to 2.2.4).
- FIX: Fixed spurious characters generated by Serial over USB driver (bug
  3276379).
- NEW: Added an option to the kernel to not spawn the Idle Thread from within
  chSysInit(), this way the application can spawn a custom idle thread or
  even use the main() thread as idle thread (backported to 2.2.4).
- NEW: Added new SDC driver model, Secure Digital Card.
- NEW: SDC driver implementation for STM32.
- NEW: Updated the STM32 header file to the latest version 3.4.0, had to
  fix a bug regarding the STM32 XL sub-family.
- NEW: New unified GCC startup file for Cortex-Mx processors, it is written
  in C instead of asm and supports constructors/destructors. Improved the
  Cortex-Mx linker scripts in all the GCC demos.
- NEW: Now it is possible to share DMA channels in the STM32 HAL thanks
  to a centralized manager. Channels are allocated when the driver is
  started and released when it is stopped.
- NEW: Added an STM32 C++ demo for the GNU compiler.
- NEW: Added an STM32F103ZG demo for the STM3210E-EVAL evaluation board.


Giovanni

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

Re: 2.3.x development branch

Postby Giovanni » Sun Oct 02, 2011 3:20 pm

Hi,

ChibiOS/RT 2.3.3 has been released. The change log is huge:

Code: Select all

*** 2.3.3 ***
- FIX: Fixed uninitialized variable in STM32 PWM and ICU drivers (bug 3413558).
- FIX: Fixed wrong parameter passed to the DMA error hook in STM32 ADC driver,
  the DMA error hook has been removed entirely in the new ADC driver model
  (bug 3413214)(to be fixed in 2.2.8).
- FIX: The function chThdExit() triggers an error on shell return when the
  system state checker is enabled (bug 3411207)(backported to 2.2.8).
- FIX: Some ARMCMx makefiles refer the file rules.mk in the ARM7 port (bug
  3411180)(backported to 2.2.8).
- FIX: Fixed wrong check on CH_DBG_ENABLE_STACK_CHECK setting (bug 3387671)
  (backported to 2.2.7).
- FIX: Fixed wrong APB1 frequency check (bug 3361039)(backported to 2.2.7).
- FIX: Fixed missing state in shell demos (bug 3351556)(backported to 2.2.7).
- FIX: Fixed race condition in Cortex-Mx ports (bug 3317500)(backported
  to 2.2.6).
- FIX: Fixed wrong macro check in STM32 UART driver (bug 3311999)(backported
  to 2.2.6).
- FIX: Fixed wrong macro definition in ARMv6-M architecture files (bug
  3310084).
- FIX: Fixed race condition in output queues (bug 3303908)(backported
  to 2.2.4).
- FIX: Fixed CH_USE_HEAP and CH_USE_MALLOC_HEAP conflict (bug 3303841)
  (backported to 2.2.4).
- FIX: Fixed timeout problem in the lwIP interface layer (bug 3302420)
  (backported to 2.2.4).
- NEW: Added AVR implementation of the PAL driver contributed by Leszek.
  (TODO: Update demos to use it)
- NEW: STM32L ADC driver implementation.
- NEW: Improved ADC driver model, now it is possible to handle error
  conditions during the conversion process.
- NEW: STM32L1xx sub-family support, all STM32 drivers adapted and re-tested
  on the new platform except ADC that will need a specific implementation.
- NEW: Added new API chThdExitS() in order to allow atomic operations on
  thead exit (backported to 2.2.8).
- NEW: New EXT driver model and STM32 implementation.
- NEW: New I2C driver model and STM32 implementation.
  (evaluate the option to change the API to a synchronous model)
- NEW: New RTC driver model and STM32 implementation.
  (API and functionality review)
- NEW: Improved MAC driver model, it now follows the same template of other
  drivers.
  (TODO: uIP demo to be adapted)
  (TODO: implement macStop() in AT91SAM7X implementation)
- NEW: New RCC helper driver for STM32F1xx and STM32L1xx, it simplifies
  the use of the RCC resources and hides most differences found among the
  various STM32 sub-families.
- NEW: New DMA helper driver for STM32, it simplifies the use of the DMA
  resources and hides most differences with the new enhanced DMA units
  found in the STM32F2xx sub-family.
- NEW: Now an error is generated at compile time when trying to enable the
  options CH_DBG_ENABLE_STACK_CHECK on ports that do not support it.
- NEW: Added a kernel-only Cortex-Mx demo as reference project for users not
  interested in the HAL but just want to use the ChibiOS/RT kernel.
  The demo is named ARMCM3-GENERIC-KERNEL and is defaulted to the STM32, in
  order to use it on other families or on the ARM Cortex-M0 just change the
  inclusion paths in the makefile.
- NEW: Integrated new FatFs version 0.8b.
- NEW: Added a new hook THREAD_CONTEXT_SWITCH_HOOK() that allows to insert
  code just before a context switch. For example this hook could be used
  in oder to implement advanced power management schemes.
- NEW: Added a new debug option CH_DBG_SYSTEM_STATE_CHECK that ensures the
  correct API call protocol. If an API is invoked out of the correct context
  then the kernel panics with a debug message.
- NEW: Added Eclipse ChibiOS/RT debugger plugin 1.0.5 under ./tools/eclipse.
- NEW: The ARMCMx startup file (crt0.c) now is able to fill the stack areas
  with a filler (default behavior). This is required in order to easily assess
  the stack usage at runtime.
- NEW: Added the new CMSIS 2.1 headers, now CMSIS resides into a shared
  location: ./os/ports/common/ARMCMx/CMSIS. Old CMSIS files have been
  removed from the various platforms.
- NEW: Removed all the ch.ld files from the ARMCMx demos, now the makefiles
  point to common ld files under the various ports. Less duplication and
  easier maintenance.
- NEW: Improved stack checking and reorganized memory map for the Cortex-Mx
  demos. Now stacks are allocated at the start of the RAM, an overflow of the
  exception stack now triggers an exception (it could go unnoticed before).
  The process stack is organized to be checked on context switch like other
  threads. Now all threads have an explicit stack boundary pointer.
- NEW: Added debug plugin for Eclipse under ./tools/eclipse (backported to
  2.2.7).
- NEW: The debug macros chDbgCheck() and chDbgAssert() now can be externally
  redefined. The macro chDbgCheck() no more includes the line number in the
  description because incompatibility with the Cosmic compiler (backported to
  2.2.7).
- NEW: Added provisional support for STM32F2xx. Because of this some
  directories related to the STM32 have been renamed, your makefiles may
  require adjustments.
- NEW: Added a custom rule to the various rules.mk files, now it is possible
  to add an user rule into the Makefiles.
- NEW: Improvements to the trace buffer, now it stores a full thread pointer
  and event time, changed names to debug variables by adding the "dbg_"
  prefix (backported to 2.2.7).
- NEW: Added a new functionality to the registry subsystem, now it is possible
  to associate a name to the threads using chRegSetThreadName. The main and
  idle threads have their name assigned by default (backported to 2.2.7).
- NEW: Added TIM8 support to the STM32 GPT, ICU and PWM drivers.
- NEW: Updated the STM32 header file to the latest version 3.5.0 and fixed
  it in order to correct several bugs related to the XL family.
- NEW: Added a chprintf() function to ./os/various, it can print on any
  BaseChannel.
- NEW: Improved the mini shell, enhanced info command, optimizations and
  removed the shellPrint() and shellPrintLine() functions, now it uses
  chprintf() for output.
- NEW: lwIP 1.4.0 has been integrated, this new version does not require
  custom hooks into the Thread structure and is thus much lighter.
- NEW: FatFs demo for the STM32F103ZG using the SDC driver.
- NEW: Now the STM32 SDC driver supports unaligned buffers transparently.
  Optimized the driver for single block read and write operations. Optimized
  the driver state machine.
- NEW: Finished the reorganization of the Cortex-Mx ports, now also the
  IAR and RVCT ports support the new Compact mode.
- NEW: Added to the ARMv6-M sub-port an option to use the PendSV exception
  instead of NMI for preemption (backported to 2.2.5).
- NEW: Reorganization of the Cortex-Mx ports in order to reduced code and
  comments duplication in the various headers (backported to 2.2.5).
- NEW: Improved the ARMv7-M sub-port now there are two modes: Compact and
  Advanced.
  The advanced mode is equivalent to the previous versions, the compact mode
  is new and makes the kernel *much* smaller and generally faster but does
  not support fast interrupts (backported to 2.2.5).
- NEW: Now the port layer exports info regarding the compiler and the port
  options. The info are printed into the test reports. Date and time also
  added.
- CHANGE: Removed the option CH_USE_NESTED_LOCK, lwIP no more requires it and
  it would have conflicted with CH_DBG_SYSTEM_STATE_CHECK which is far more
  useful.
- CHANGE: Renamed the scheduler functions chSchIsRescRequiredExI() to
  chSchIsPreemptionRequired(), chSchDoRescheduleI() to chSchDoReschedule(),
  chSysSwitchI() to chSysSwitch(). All those functions were special cases
  and not regular I-class APIs.
- CHANGE: Renamed the macros IDLE_THREAD_STACK_SIZE and INT_REQUIRED_STACK
  to PORT_IDLE_THREAD_STACK_SIZE and PORT_INT_REQUIRED_STACK for consistency.
- CHANGE: Removed the "old" Cortex-M3 port from the code, the current port
  has no drawbacks and the old port is now just a maintenance cost.
- CHANGE: Removed the CH_CURRP_REGISTER_CACHE option, it is GCC-specific so
  it does not belong to the kernel options. The feature will be eventually
  reimplemented as a port-specific option.
- CHANGE: chiQGetFullI() and chOQGetFullI() become macros. The queues
  subsystem has been optimized and is no more dependent on semaphores.
  Note that the queues callbacks invocation policy has been slightly
  changed, see the documentation (backported to 2.2.4).


I need to finalize the next stable branch 2.4.x so no new features will be added to 2.3.3, only fixes and improvements to the existing codebase (except eventually for minor things).

Giovanni

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

Re: 2.3.x development branch

Postby Giovanni » Sun Nov 27, 2011 10:44 am

Hi,

ChibiOS/RT 2.3.4 has been released. Lots of improvements and new features in this version:

Code: Select all

*** 2.3.4 ***
- FIX: Fixed Extra initialization in STM32 SPI driver (bug 3436127)
  (backported to 2.2.8).
- FIX: Fixed DMA priority setting error in STM32 UART driver (bug 3436125)
  (backported to 2.2.8).
- FIX: Fixed DMA priority setting error in STM32 SPI driver (bug 3436124)
  (backported to 2.2.8).
- FIX: Fixed broken support for UART5 in STM32 serial driver (bug 3434094)
  (backported to 2.2.8).
- FIX: Fixed broken TIM8 support in STM32 PWM driver (bug 3418620).
- FIX: Fixed halconf.h file corrupted in some STM32 demos (bug 3418626).
- NEW: Added an unified registers file for STM32: stm32.h. This file includes
  the appropriate vendor file then adds its own additional definitions.
- NEW: Added demo for the ST STM32F4-Discovery kit.
- NEW: STM32F4xx ADC driver implementation.
- NEW: Added initialization of the NVIC VTOR register to all Cortex-Mx (v7M)
  ports. Also added a port option CORTEX_VTOR_INIT to enforce a different
  default value into the register.
- NEW: Removed the warning about the "untested M4 platform", now it is
  tested and officially supported.
- NEW: Reorganized the STM32F1xx hal_lld_xxx.h files in order to distribute
  the capability macros into the appropriate file (previously those were all
  in the common hal_lld.h).
- NEW: Added HAL, Serial, ADC, EXT, GPT, ICU, PWM, SPI and UART support for
  the STM32F4xx sub-family.
  TODO: Add CAN and SDC, the drivers need to be ported and tested.
- NEW: Added handling of USART6 to the STM32 serial driver.
- NEW: Added USE_COPT setting to all makefiles, contributed by Mabl.
- NEW: Added EXT driver implementation for AT91SAM7x, contributed by Florian.
  TODO: Test application missing.
- NEW: Updated USB driver model and STM32 implementation and fixed several
  problems.
  - Changed the API to move buffer copy operations out of critical zones.
  - Added usbConnectBus() and usbDisconnectBus() functions.
  - Fixed problems with incorrect assertions.
- NEW Updated the SERIAL_USB driver to match the new USB API, also fixed
  some problems.
  - Fixed incorrect use of input queues, the change required a change in
    input queues too.
- NEW: Added a macro THD_STATE_NAMES to chthreads.h. This macro is an
  initializer for string arrays containing thread state names.
- NEW: Added memory copy functionality to the STM32 DMA driver.
- NEW: Implemented new makefile system for ARM GCC ports, now objects,
  listings and output files are generated into a "build" directory and not
  together with sources, also implemented a simplified output log mode.
  Now makefiles and load script files are requirements and trigger a
  rebuild if touched.
- NEW: Updated AVR demos to use the new PAL driver.
- NEW: Added Keil build files to the STM32L-Discovery demo.
- CHANGE: Now the callback associated to input queues is invoked before
  reading each character. Previously it was invoked only before going
  to sleep into the THD_STATE_WTQUEUE state.
- CHANGE: Moved the STM32 DMA helper drivers files under the sub-family
  specific directories because documentation issues.


Giovanni


Return to “Releases”

Who is online

Users browsing this forum: No registered users and 3 guests