ChibiOS-RT
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:Mirror of the ChibiOS/RT SVN Repo (stable and trunk branches only)
*****************************************************************************
*** Files Organization                                                    ***
*****************************************************************************

--{root}                - ChibiOS/RT directory.
  +--readme.txt         - This file.
  +--documentation.html - Shortcut to the web documentation page.
  +--todo.txt           - Current plan (development/unstable versions only).
  +--license.txt        - GPL license text.
  +--exception.txt      - GPL exception text (stable releases only).
  +--boards/            - Board support files.
  +--demos/             - Demo projects.
  +--docs/              - Documentation.
  |  +--html/           - Local HTML documentation (after rebuild).
  |  +--reports/        - Test reports.
  |  +--src/            - Documentation source files (required for rebuild).
  |  +--rsc/            - Documentation resource files (required for rebuild).
  |  +--Doxyfile        - Doxygen project file (required for rebuild).
  |  +--index.html      - Local documentation access (after rebuild).
  +--ext/               - External libraries, not part of ChibiOS/RT.
  +--os/                - ChibiOS/RT files.
  |  +--hal/            - Hardware Abstraction Layer.
  |  |  +--include/     - HAL high level headers.
  |  |  +--src/         - HAL high level source.
  |  |  +--platforms/   - HAL low level drivers implementations.
  |  |  |  +--AT91SAM7/ - Drivers for AT91SAM7 platform.
  |  |  |  +--AVR/      - Drivers for AVR platform.
  |  |  |  +--LPC11Uxx/ - Drivers for LPC11Uxx platform.
  |  |  |  +--LPC11xx/  - Drivers for LPC11xx platform.
  |  |  |  +--LPC13xx/  - Drivers for LPC13xx platform.
  |  |  |  +--LPC214x/  - Drivers for LPC214x platform.
  |  |  |  +--MSP430/   - Drivers for MSP430 platform.
  |  |  |  +--SPC56x/   - Drivers for SPC56x/MPC563xx platforms.
  |  |  |  +--STM32/    - Drivers for STM32 platform (common).
  |  |  |  +--STM32F0xx/- Drivers for STM32F0xx platform.
  |  |  |  +--STM32F1xx/- Drivers for STM32F1xx platform.
  |  |  |  +--STM32F4xx/- Drivers for STM32F4xx/STM32F2xx platforms.
  |  |  |  +--STM32L1xx/- Drivers for STM32L1xx platform.
  |  |  |  +--STM8L/    - Drivers for STM8L platform.
  |  |  |  +--STM8S/    - Drivers for STM8S platform.
  |  |  |  +--Posix/    - Drivers for x86 Linux/OSX simulator platform.
  |  |  |  +--Win32/    - Drivers for x86 Win32 simulator platform.
  |  |  +--templates/   - Driver template files.
  |  |     +--meta/     - Driver meta templates.
  |  +--ports/          - Port files for the various architectures.
  |  |  +--GCC/         - Ports for the GCC compiler.
  |  |  |  +--ARM/      - Port files for ARM7 and ARM9 architectures.
  |  |  |  +--ARMCMx/   - Port files for ARMCMx architectures (ARMv6/7-M).
  |  |  |  +--PPC/      - Port files for PowerPC architecture.
  |  |  |  +--AVR/      - Port files for AVR architecture.
  |  |  |  +--MSP430/   - Port files for MSP430 architecture.
  |  |  |  +--SIMIA32/  - Port files for SIMIA32 simulator architecture.
  |  |  +--IAR/         - Ports for the IAR compiler.
  |  |  |  +--ARMCMx/   - Port files for ARMCMx architectures (ARMv6/7-M).
  |  |  |  +--STM8/     - Port files for STM8 architecture.
  |  |  +--RVCT/        - Ports for the Keil RVCT compiler.
  |  |  |  +--ARMCMx/   - Port files for ARMCMx architectures (ARMv6/7-M).
  |  |  +--cosmic/      - Ports for the Cosmic compiler.
  |  |  |  +--STM8/     - Port files for STM8 architecture.
  |  |  +--RC/          - Ports for the Raisonance compiler.
  |  |     +--STM8/     - Port files for STM8 architecture.
  |  +--kernel/         - Kernel portable files.
  |  |  +--include/     - Kernel headers.
  |  |  +--src/         - Kernel source.
  |  |  +--templates/   - Kernel port template files.
  |  +--various/        - Various portable support files.
  +--test/              - Kernel test suite source code.
  |  +--coverage/       - Code coverage project.
  +--testhal/           - HAL integration test demos.
  |  +--LPC11xx/        - LPC11xx HAL demos.
  |  +--LPC13xx/        - LPC11xx HAL demos.
  |  +--STM32F1xx/      - STM32F1xx HAL demos.
  |  +--STM32F4xx/      - STM32F4xx HAL demos (valid for STM32F2xx too).
  |  +--STM32L1xx/      - STM32L1xx HAL demos.
  |  +--STM8S/          - STM8S HAL demos.
  +--tools              - Various tools.
     +--eclipse         - Eclipse enhancements.
     +--gencfg          - Configurations generator tool.

*****************************************************************************
*** Releases                                                              ***
*****************************************************************************

*** 2.5.1 ***
- FIX: Fixed missing ; in testmbox.c (bug 3585979)(backported to 2.4.3).
- FIX: Fixed STM32F4xx: Wrong CAN1 SCE interrupt number definition (bug
  3581571).
- FIX: Fixed STM32_P407: implement mmc_lld_is_card_inserted (bug 3581929)
  (backported to 2.4.3).
- FIX: Fixed double chSysInit() call in MSP430F1611 demo (bug 3581304)
  (backported to 2.2.10 and 2.4.3).
- FIX: Fixed patch for various demos (bug 3579734).
- FIX: Fixed bug in abstract file interface (bug 3579660)(backported to
  2.2.10 and 2.4.3).
- FIX: Fixed wrong type for UART config registers (bug 3579434).
- FIX: Fixed various typos and wrong limits in the STM32F4/F2 HAL driver
  (bug 3578944)(backported to 2.4.3).
- FIX: Fixed ARM CMx crt0.c fails at low optimization levels (bug 3578927)
  (backported to 2.4.3).
- FIX: Fixed compilation issue in chregistry.c (bug 3576776).
- FIX: Fixed compilation issue in syscalls.c (bug 3576771)(backported
  to 2.4.3).
- FIX: Fixed Typos in STM32F0xx EXT driver (bug 3576193).
- FIX: Fixed STM32F10X_CL: Wrong CAN1 interrupt number definitions (bug
  3575766).
- FIX: Fixed superfluous pack #defines cause nasty warning (bug 3575662)
  (backported to 2.4.3).
- FIX: Fixed mac.c won't compile due to misplaced declarations (bug 3575657)
  (backported to 2.4.3).
- FIX: Fixed STM32F4 ADC prescaler incorrectly initialized (bug 3575297)
  (backported to 2.4.3).
- FIX: Fixed RCC_APB2ENR_IOPEEN undeclared on STM32F10X_LD_VL devices (bug
  3575098)(backported to 2.4.3).
- FIX: Fixed misplaced declarations in lwip_bindings sys_arch.c (bug 3571053)
  (backported to 2.4.3).
- FIX: Fixed double definition of sd1fel and sd2fel breaks Posix simulator
  (bug 3570532).
- FIX: Fixed Ethernet PHY power down scheme prevents using LAN8720A (bug
  3570335).
- FIX: Fixed FatFS won't compile with _FS_REENTRANT enabled (bug 3570135)
  (backported to 2.4.3).
- FIX: Fixed mmc_spi.c won't compile due to misplaced declaration (bug
  3570035)(backported to 2.4.3).
- FIX: Fixed problem in STM32F1xx USB driver after revision 4598 (bug 3569374).
- FIX: Fixed GPIO glitch during PAL initialization (bug 3569347)(backported
  to 2.4.3).
- FIX: Fixed FatFS timestamp incorrect (bug 3568626).
- FIX: Fixed Data available event not generated in serial_usb driver (bug
  3567992).
- FIX: Fixed STM32F1x rtc_lld_init glitches rtc on hard reset (bug 3567597)
  (backported to 2.4.3).
- FIX: Fixed STM8L, cosmic compiler: c_lreg not saved (bug 3566342)(backported
  to 2.2.10 and 2.4.3).
- NEW: AT91SAM7A3 basic 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.

*** 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.

*** 2.3.5 ***
- FIX: Fixed RTC compile problem on STM32F103 (bug 3468445).
- FIX: Fixed PWM with TIM1 and TIM8 broken in STM32 HAL (bug 3458947).
- FIX: Fixed SYSCFG clock not started in STM32L1/F4 HALs (bug 3449139).
- FIX: Fixed wrong definitions in STM32L-Discovery board file (bug 3449076).
- OPT: Improved the exception exit code in the GCC Cortex-Mx ports.
- NEW: Added a DMA stress test application for the STM32F4 in order to assess
  robustness of the whole HAL.
- NEW: Added a Time Measurement driver to the HAL, this generic driver uses
  the realtime counters abstracted in the HAL driver.
- NEW: Improved the STM32F1xx HAL driver, it now has the same features and
  configuration options of the newer STM32s.
- NEW: MMC over SPI driver improved to handle high capacity cards, by
  Matthias Blaicher.
- NEW: Added PVD support to the HAL of all STM32s, by Barthess.
- NEW: Added to the HAL driver the handling of an abstract realtime free
  running counter, added the capability to all the STM32 HALs.
- NEW: Modified ARM and ARMCMx build rules to allow parallel build. Now the
  log outputs one dummy compilation command in order to allow paths discovery
  by Eclipse.
- NEW: Added an utility module to access LIS302DL MEMS using a SPI.
- NEW: Updated STM32F2xx support by inheriting the work done on the STM32F4xx,
  the whole thing is untested because lack of hardware.
- NEW: Files nvic.c and nvic.h moved under ./os/ports/common/ARMCMx, removed
  the duplicated instances under the GCC, IAR and Keil ports. Function names
  prefixes changed from "NVIC" to "nvic" because style conventions.
- NEW: Added voltage regulator initialization to the STM32F4xx HAL.
- NEW: Added a linker script that demonstrates how to put stacks and other
  critical structures in the CCM RAM instead normal RAM.
- NEW: Added experimental support for the Cortex-M4 FPU (default when the
  FPU is present but can be disabled).
- NEW: Improved I2C driver model and STM32 implementation by Barthess.
- CHANGE: Removed the option to change the stack alignment in the GCC
  Cortex-Mx ports, now alignment is always 64 bits.
- CHANGE: Modified the function palSetGroupMode() to have an offset parameter
  in order to make it similar to other functions operating on groups.
- CHANGE: Increased main and process default stack sizes from 0x100 to 0x200
  in LPC1114 and LPC1343 linker scripts.

*** 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.

*** 2.3.3 ***
- FIX: Fixed missing UART5 definition in STM32 HAL (bug 3411774)(backported
  to 2.2.8).
- 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).
- 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.
- 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
  thread 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: 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: 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).

*** 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.
- OPT: STM32 PWM driver implementation simplified.
- CHANGE: Now pwmChangePeriod() does not implicitly disable the active
  PWM channels.
- CHANGE: Renamed the chSemSetCounterI() function to chSemAddCounterI() and
  changed its behavior.
- CHANGE: Modified the STM32 USB-CDC test demo to spawn a shell over the USB
  serial connection.

*** 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.

*** 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: Improved 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 significant 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.

*** 2.1.8 ***
- FIX: Fixed error in STM32 ADC driver macro names (bug 3160306)(backported
  to 2.0.11).
- FIX: Fixed IAR Cortex-Mx port memory organization problem (bug 3158776).
- FIX: Fixed STM32F103 demo's incorrect clock settings (bug 3153746).
- NEW: Added OTG clock setting to the STM32 HAL.
- NEW: Added stack check support to the IAR Cortex-Mx port.
- CHANGE: Removed .uvopt files from the Keil projects.

*** 2.1.7 ***
- FIX: Fixed various errors in the HAL documentation (bug 3153591).
- FIX: Fixed error in chIOGetxxxxxEventSource() macros (bug 3153550)
  (backported to 2.0.10)
- FIX: Fixed error in STM32 unbuffered UART driver (bug 3153437).
- FIX: Fixed wrong macro check in LPC214x driver (bug 3152510).
- FIX: Fixed switch condition error in STM32 PWM driver (bug 3152482)
  (backported to 2.0.10).
- FIX: Fixed error in output queues static initializer (bug 3149141)
  (backported to 2.0.9).
- FIX: Fixed extra notifications in input queues (bug 3148525)(backported
  to 2.0.9).
- NEW: New ARM Cortex-Mx port for RVCT compiler.
- NEW: Integrated the various Cortex-Mx GCC, IAR and RVCT demos in unified
  demos with multiple project files, the code is exactly the same. Renamed
  the directories removing the compiler suffix.
- NEW: Added an USB clock configuration in the STM32 HAL driver (LD, MD, HD).
- NEW: New semaphore API chSemSetCounterI().
- NEW: New queue APIs chIQGetFullI() and chOQGetFullI().
- CHANGE: Serial drivers now have a single event source instead of three,
  the event source is located in the superclass, this allows to create
  alternative implementations of the serial driver while keeping compatibility,
  the change also allowed to save 8/4 RAM bytes per serial driver.
- CHANGE: Modified the ADC and CAN drivers to allow a NULL pointer for
  the configuration structure if it is not required by the implementation.
- CHANGE: Modified the MMC_SPI driver to *require* a NULL as pointer to
  the configuration.
- CHANGE: Removed enforced inlining for the chSchReadyI() function when
  the CH_OPTIMIZE_SPEED is enabled. Now the matter is left to the compiler
  specific settings. This change is meant to increase compatibility with
  compilers that have a different inlining semantic than GCC when not in
  C99 mode.
- CHANGE: Changed the declaration of the main() function in all demos
  without arguments. Removed the clearing of arguments from the startup
  files and saved some space.
- CHANGE: Queues callbacks now have as parameter a pointer to the queue,
  there were no parameters previously.
- Documentation related fixes.

*** 2.1.6 ***
- FIX: Fixed error in sdPutTimeout() macro (bug 3138763)(backported in 2.0.9).
- NEW: New ARM Cortex-Mx port for IAR compiler.
- NEW: Now the STM32 CAN driver puts the lower half word of the ESR
  register in the upper half word of the can status word for easier
  debug.
- CHANGE: Changes in the board files organization, now the board
  initialization is invoked from within halInit() after all the device
  drivers have been initialized. Now applications are required to
  explicitly invoke halInit() and chSysInit() from within their main().
- CHANGE: Removed the CMSIS files from the ARMCMx port, added the headers
  into the various HAL platforms requiring them. The change is required
  because the port layer must not have vendor specific dependencies and
  there is the possibility that the various vendors would use different
  CMSIS versions now that CMSIS 2.x has been released.
- CHANGE: Modified the start of the ADC in the STM32 ADC driver, now it is
  no more required to specify ADC_CR2_EXTSEL_SWSTART and ADC_CR2_CONT
  in the CR2 register configuration. Also reordered the start sequence
  in order to allows a longer stabilization time for the ADC.
- Documentation improvements.

*** 2.1.5 ***
- FIX: Fixed references to non-existing SSP1 device in LPC13xx SPI device
  driver (bug 3127926).
- FIX: Fixed broken SPI synchronous API (bug 3127921).
- FIX: Fixed missing vector.c files in LPC11xx and LPC13xx ports (bug 3124849).
- FIX: Fixed pwmDisableChannel() now working in STM32 PWM driver (bug 3121246).
- FIX: Fixed problem with PWM channel callbacks (bug 3120785).
- NEW: Added support for TIM5 in the STM32 PWM driver.
- NEW: Added to the ARM port the option to externally redefine the port IRQ
  macros in order to accomodate different implementations without have to
  change the port layer.
- CHANGE: Modified the STM32_PWM_PWMx_IRQ_PRIORITY macros in the STM32
  PWM driver (and all the STM32 mcuconf.h files) and renamed them in
  STM32_PWM_TIMx_IRQ_PRIORITY for consistency.
- Documentation related fixes.

*** 2.1.4 ***
- FIX: Fixed failed memory recovery by registry scan, improved the related
  test case (bug 3116888)(backported to 2.0.8).
- FIX: Fixed failure in STM32 ADC driver when a linear buffer mode is used
  (bug 3114696).
- FIX: Fixed PWM channels going to ACTIVE state when the pulse width is
  set to zero in the STM32 PWM driver (bug 3114481)(backported to 2.0.8).
- FIX: Fixed PWM channels return to IDLE state in STM32 PWM driver (bug
  3114467)(backported to 2.0.8).
- FIX: Fixed wrong initializer macros in STM32 PWM driver (bug 3114319).
- FIX: Fixed syntax error in STM32 PWM driver(bug 3114266).
- FIX: Fixed typo in board name (bug 3113574)(backported to 2.0.7).
- FIX: Fixed defective event wait functions with timeout (bug 3113443)
  (backported to 2.0.7).
- NEW: More improvements to the ADC and SPI drivers, now synchronous
  operations can also have callbacks, optimized ISR code paths.
- NEW: Added to the STM32 ADC driver the macros for easy handling of the
  sampling time for each channel.
- NEW: Greatly simplified the STM32 PWM driver implementation.
- NEW: Added new macro PWM_FRACTION_TO_WIDTH() to the PWM driver model.
- NEW: ARM7 port reorganization following the same pattern of the ARMCMx
  one, on now the port is also supports the ARM9 architecture (but not
  tested yet hardware). Removed the dependencies between the port layer
  and the vendors-provided headers.
- NEW: Initial STM8L support: HAL, PAL and Serial drivers.
- NEW: Added demo for the ST STM8L-Discovery kit.
- NEW: Added support for the STM32 Value Line to the HAL.
- NEW: Added demo for the ST STM32VL-Discovery kit.
- OPT: STM32 SPI driver implementation improved, reduced latency when
  starting a transfer.
- CHANGE: Improved the STM32 HAL to support multiple sub-families, at compile
  time now it is possible to test the presence of any single peripheral into
  the specified STM32 device.
- CHANGE: Separated dynamic threads code into dedicated files: chdynamic.c
  and chdynamic.h.
- CHANGE: Moved the declaration of the variable pal_default_config from
  hal_lld.c to the various board.c. That structure is more meaningful in
  the board layer because it is related to the board initialization.
- CHANGE: Removed the various assembler files for the STM32 interrupt
  vectors, now it is a single vectors.c file.
- CHANGE: Deleted ./os/ports/GCC/ARM.
- CHANGE: Renamed ./os/ports/GCC/ARM7 in ./os/ports/GCC/ARM.
- CHANGE: Renamed ./os/hal/platforms/STM8 in ./os/hal/platforms/STM8S.
- CHANGE: Renamed ./testhal/STM8 in ./testhal/STM8S.
- Added SPI driver to the STM8S documentation, it was missing.
- Improved documentation for the ARM and ARMCMx ports.

*** 2.1.3 ***
- FIX: Fixed broken STM32 synchronous UART driver (bug 3100946).
- FIX: Broken C++ wrapper (bug 3100925).
- FIX: Broken lwIP/uIP demos (bug 3100901).
- FIX: DMA not initialized under some conditions (bug 3099701).
- FIX: Restored the RIDE7 build files in the STM32F103 demo, note the RIDE7
  build files are not supported so this has not been tracked as a bug.
- NEW: Added an SPI driver to the STM8 platform support.
- NEW: Added a simple STM8 SPI demo under ./testhal/STM8/SPI.
- NEW: Divided the file STM32/vectors.s in several files, one for each
  STM32 sub-family. This has been done in order to remove the preprocessor
  directives from assembler files and to support all the various STM32
  sub-families.
- CHANGE: Renamed ./os/ports/GCC/ARMCMx/STM32F10x in STM32.
- CHANGE: Divided the file ARMCMx/crt0.s in crt0_v6m.s and crt0_v7m.s in
  order to remove the preprocessor directives from assembler files.
- CHANGE: Renamed the HAL settings macro names, removed the CH_ prefix
  because it is reserved for the kernel namespace.
      NOTE: ****** Make sure to use a mcuconf.h file taken from ******
            ****** this version in your project.                ******

*** 2.1.2 ***
- FIX: Fixed typo in memstreams.h (bug 3089567)(backported to 2.0.6).
- FIX: Fixed wrong macro check in LPC214x and AT91SAM7 serial drivers (bug
  3088776)(backported to 2.0.6).
- FIX: Fixed non functioning option SPI_USE_MUTUAL_EXCLUSION=FALSE (bug
  3084764)(backported to 2.0.6).
- FIX: Fixed wrong macro check in STM32 serial support (bug 3078891)(backported
  to 2.0.6).
- FIX: Fixed non functioning option CH_USE_NESTED_LOCKS (bug 3075544)
  (backported to 2.0.6).
- FIX: Incorrect AT91SAM7X initialization, thanks Leszek (bug 3075354)
  (backported to 2.0.5).
- FIX: Fixed race condition in function chSchGoSleepTimeoutS(), thanks Bal�zs
  (bug 3074984)(backported to 2.0.5).
- FIX: Fixed race condition in threads creation (bug 3069854)(backported
  to 2.0.5).
- FIX: Fixed broken CH_DBG_ENABLE_STACK_CHECK option in legacy CM3 port (bug
  3064274)(backported to 2.0.5).
- FIX: Fixed CAN_USE_SLEEP_MODE setting (bug 3064204)(backported to 2.0.5).
- FIX: Fixed potential issue with GCC reorganizing instructions around "asm
  volatile" statements (bug 3058731)(backported in 2.0.4).
- FIX: Fixed reduced ARM7 performance with GCC 4.5.x (bug 3056866)(backported
  to 2.0.4).
- FIX: Fixed crash of the Posix simulator under Ubuntu 10.4 (bug 3055329)
  (backported to 2.0.3).
- FIX: Fixed incorrect PLL2 setting in STM32 HAL (bug 3044770)(backported
  in 2.0.3).
- FIX: Fixed wrong check on STM32_HCLK (bug 3044758)(backported to 2.0.3).
- FIX: Fixed wrong condition check in STM32 PWM driver (bug 3041414)
  (backported in 2.0.3).
- FIX: Corrupted IRQ stack in Cortex-Mx port (bug 3041117)(backported to
  2.0.3).
- FIX: Fixed a documentation error regarding the ADC driver function
  adcStartConversion() (bug 3039890)(backported to 2.0.3).
- NEW: New I2C driver model (not complete and no implementations yet).
- NEW: New SPI driver model, the new model supports both synchronous and
  asynchronous operations and, in general, simplifies the implementation of the
  low level driver. The new driver also specifies a simplified polled exchange
  API, useful for efficiently sending small amount of data over high speed
  connections. The driver state diagram changed slightly changed so be careful.
- NEW: New ADC driver model, the new model supports both synchronous and
  asynchronous operations and, in general, simplifies the implementation of the
  low level driver. The driver state diagram changed slightly changed so be
  careful.
- NEW: Improved PWM driver model, added several macros that helps to setup
  configuration structures and to specify pulse widths also as percentages or
  degrees using a fixed point notation. Added new pwmEnableChannelI() and
  pwmDisableChannelI() APIs in order to allow channel reprogramming from
  within callbacks or interrupt handlers, the new APIs are implemented as
  macros so there is no footprint overhead.
- NEW: Added driver fields and initialization hooks for the callback-based
  drivers. The hooks are named XXX_DRIVER_EXT_FIELDS and
  XXX_DRIVER_EXT_INIT_HOOK().
- NEW: Added to the UART driver the capability to return the number of
  not yet transferred frames when stopping an operation.
- NEW: Added more compile-time checks to the various STM32 device drivers.
- NEW: Improved LPC214x SPI driver, now it uses IRQs, it implements the
  new SPI device driver model.
- NEW: Improved AT91SAM7 SPI driver, now it uses IRQs and DMAs, it implements
  the new SPI device driver model.
- NEW: New LPC11xx SPI driver, updated the LPCXpresso demo to use the SPI.
- NEW: New LPC13xx SPI driver, updated the LPCXpresso demo to use the SPI.
- NEW: Added a simple STM32 ADC demo under ./testhal/STM32/ADC.
- NEW: Added a simple STM32 CAN demo under ./testhal/STM32/CAN.
- NEW: Added a simple STM32 PWM demo under ./testhal/STM32/PWM.
- NEW: Added a simple STM32 SPI demo under ./testhal/STM32/SPI.
- NEW: More assertions added to the kernel for improved bug fixing.
- NEW: New kernel hooks: SYSTEM_TICK_EVENT_HOOK(), SYSTEM_HALT_HOOK().
- NEW: Added board files for the Olimex STM32-H103.
- NEW: New kernel APIs chSysGetIdleThread() and chThdGetTicks(), the new
  APIs are simple macros so there is no footprint overhead.
- NEW: Added a generic BaseFileStream interface for future File System
  implementations or integrations (untested and not sure if it will stay or
  change).
- NEW: Added to the documentation more notes about interrupt handlers in
  the ARM7 port.
- NEW: Modified some tests in order to bring back code coverage to 100%
  in all modules except chdebug.c. Added a test case covering binary
  semaphores.
- OPT: The fix to the bug 3075544 considerably improved the threads creation
  benchmarks score.
- OPT: Speed optimizations to the STM32 SPI driver, greatly improved latency.
- OPT: Speed optimizations to the STM32 ADC driver.
- CHANGE: The API chThdInit() has been renamed to chThdCreateI() in order to
  make clear it is usable from interrupt handlers.
- CHANGE: The mailboxes macros chMBSize(), chMBGetEmpty(), chMBGetFull(),
  chMBPeek() have been renamed to chMBSizeI(), chMBGetFreeCountI(),
  chMBGetUsedCountI(), chMBPeekI().
- CHANGE: The queue APIs chQSize(), chQSpace(), chIQIsEmpty(), chIQIsFull(),
  chOQIsEmpty(), chOQIsFull() have been renamed to chQSizeI(), chQSpaceI(),
  chIQIsEmptyI(), chIQIsFullI(), chOQIsEmptyI(), chOQIsFullI().
- CHANGE: The event APIs chEvtPend() and chEvtClear() have been renamed
  to chEvtAddFlags() and chEvtClearFlags() for consistency and correct
  English. Changed the macro chEvtIsListening() in chEvtIsListeningI().
- CHANGE: Added a parameter to the PWM driver callbacks, the pointer to the
  driver itself.
- CHANGE: Added a parameter to the UART driver callbacks, the pointer to the
  driver itself.
- CHANGE: In the UART driver now an error does not automatically brings the
  receiver in UART_RX_IDLE state, the receive operation continues unless
  explicitly stopped in the error callback handler. This considerably
  simplifies the low level driver code.
- CHANGE: Removed a spurious trailing ; after the WORKING_AREA() macro
  declaration in several ports. The ; should go after the macro invocation.
- CHANGE: Modified the STM32 ADC driver to use the new DMA infrastructure.
- CHANGE: Modified the STM32 SPI driver to use the new DMA infrastructure.
- CHANGE: Added DMA cleanup code to the STM32 dmaInit() function.
- CHANGE: Simplified preprocessor conditions in the STM32 serial driver.
- CHANGE: Renamed most of the STM32 HAL settings macro names in order to
  make names more consistent.
      NOTE: ****** Make sure to use a mcuconf.h file taken from ******
            ****** this version in your project.                ******
- CHANGE: Renamed the existing system hooks by adding the _HOOK suffix to
  the name in order to make names more consistent.
      NOTE: ****** Make sure to use a chconf.h file taken from  ******
            ****** this version in your project.                ******
- CHANGE: Extensive documentation improvements, fixed terminology in the
  events related documentation and articles.
- CHANGE: The documentation is no more included in the distribution, the
  file ./documentation.html redirects to the online documentation page
  that contains *much* better documents.
  Note that it is still possible to generate the local documentation using
  Doxygen, the procedure is very simple and described in ./docs/readme.txt.

*** 2.1.1 ***
- FIX: Fixed insufficient stack size for idle thread (bug 3033624)(backported
  to 2.0.3).
- FIX: Fixed misspelled word in some chioch.h and chstreams.h macros (bug
  3031534)(backported to 2.0.3).
- FIX: Fixed wrong macro check in the STM32 SPI driver (bug 3028562)(backported
  to 2.0.3).
- FIX: Fixed invalid context restore in MSP430 port (bug 3027975)(backported
  to 2.0.2).
- FIX: Fixed STM32 vectors file (bug 3026528)(backported to 2.0.2).
- FIX: Fixed race condition in STM32 SPI driver (bug 3025854)(backported to
  2.0.2).
- FIX: Fixed H_LOCK and H_UNLOCK redefined with CH_USE_MALLOC_HEAP (bug
  3025549)(backported to 2.0.2).
- FIX: Added option to enforce the stack alignment to 32 or 64 bits in the
  Cortex-Mx port (bug 3025133)(backported to 2.0.2).
- NEW: Centralized DMA macros in the STM32 HAL.
- NEW: New UART device driver model, this device driver allows unbuffered,
  callback driven access to UART-type devices.
- NEW: UART device driver for STM32 and UART demo application under
  ./testhal/STM32/UART.
- NEW: Added friendly interrupt vectors names to the STM32 HAL (change request
  3023944).
- NEW: Added support for SPI3 in the STM32 HAL.
- CHANGE: Redeclared the IRQ handlers in the various STM32 drivers using the
  new friendly vector names.
- CHANGE: Moved the STM32 HAL stess test application under
  ./testhal/STM32/_stress_test.
- CHANGE: Removed the option -mabi=apcs-gnu from all the Cortex-Mx demos. The
  option is not compatible with the 64 bits stack alignment now default in
  the Cortex-Mx port. Note that the 64 bits alignment has a cost both as
  performance and as space but it is the "standard".
- OPT: Small speed optimization in the STM32 SPI driver.
- OPT: Optimized DMA clearing in STM32 ADC and SPI drivers, there was no need
  to read/modify/write the IFCR DMA register, it is write only.
- Fixed various documentation errors.

*** 2.1.0 ***
- FIX: Fixed notification order in input queues (bug 3020708)(backported in
  2.0.1).
- FIX: Fixed non functional CH_CURRP_REGISTER_CACHE option in the Cortex-M3
  port (bug 3020702)(backported in 2.0.1).
- FIX: Fixed non functional CH_DBG_ENABLE_STACK_CHECK option in the Cortex-M3
  caused by GCC 4.5.0, the fix also improves the context switch performance
  because GCC 4.5.0 apparently was generating useless instructions within the
  very critical context switch code (bug 3019738)(backported in 2.0.1).
- FIX: Fixed insufficient stack space assigned to the idle thread in
  Cortex-M3 port (bug 3019594)(backported in 2.0.1).
- FIX: Fixed missing check in chIQReadTimeout() and chIQWriteTimeout() (bug
  3019158)(backported in 2.0.1).
- FIX: Fixed instability in Mutexes subsystem (bug 3019099)(backported
  in 2.0.1).
- FIX: Fixed broken AVR port (bug 3016619)(backported in 2.0.0).
- FIX: Fixed assertion in adcStop() (bug 3015109)(backported in 2.0.0).
- NEW: Merged the new unified STM8 port, now the port supports both the
  Cosmic and Raisonance compilers.
- NEW: Added an STM8-DISCOVERY demo, the demo can be compiled with both the
  Cosmic and Raisonance compilers under the STDV IDE. Performance reports
  have been added for both compilers.
  NOTE: The Raisonance compiler seems to have problems in debugging under
        the STDV IDE, if you need to debug using the Raisonance compiler
        consider using the RIDE7 IDE instead.
        Compiling and executing using the "release" mode under STDV works fine.
- NEW: Added timers clock macros to the STM32 clock tree HAL driver (backported
  in 2.0.1).
- NEW: Added Binary Semaphores among the synchronization primitives. The new
  subsystem is entirely implemented as macros over the existing and proven
  Counting Semaphores thus takes no space (experimental).
- NEW: Added a simplified SPI driver for AT91SAM7 devices, contributed by
  Alexander (experimental).
- NEW: Added FatFs demos for AT91SAM7S and AT91SAM7X, contributed by
  Alexander (experimental).
- OPT: Simplified the test suite code, now it is smaller.
- Reorganized the documentation, now the description of the device drivers
  implementation is under the HAL module instead of the Ports module.

*** 1.5.9 ***
- FIX: Fixed STM8 baud rate setup error (bug 3010990).
- FIX: Fixed STM8 UART3 driver (bug 3009145).
- NEW: Added a STM8_ENABLE_WFI_IDLE option to the STM8 port, the default
  is FALSE.
- OPT: Small size optimization in the semaphores subsystem.
- OPT: Improvements in the STM8 port, the code is now smaller and generally
  faster, also saved few bytes of RAM.
- Added explicit casts in chevents.h, chqueues.h, chqueues.c in order to
  silence some warnings on a specific compiler.
- Added a section in chconf.h where redefine the port-related configuration
  parameters, also added notes into the documentation about this.

*** 1.5.8 ***
- FIX: Fixed missing files from ST library zip file (bug 3006629).
- NEW: Added a demo for the AT91SAM7S256 and board files for the Olimex
  SAM7-P256. The demo has been contributed by Alexander Kozaruk.
- Fixed some wrong paths into the demos readme files.
- Formatting fixes to the port templates.
- Added notes about copyright assignment to the documentation. Fixed some
  problems in the licensing FAQ page.
- Added documentation article about events in ChibiOS/RT.

*** 1.5.7 ***
- FIX: Fixed missing SPI driver reinitialization in the MMC driver (bug
  3005628)(backported in 1.4.4).
- FIX: Fixed wrong inclusion order of board.h and halconf.h into hal.h
  (bug 3005041)(backported in 1.4.4).
- FIX: Fixed wrong GPIO ports size in the STM8 PAL driver (bug 3001528).
- NEW: Improved clock initialization for the STM32, now it is possible to
  configure the clock using any clock source and any HSE frequency.
- NEW: The STM32 clock tree parameters and checks are now calculated into
  a separate file in order to support multiple clock trees for different
  sub-families of the STM32 platform.
- NEW: Added separated clock trees for the STM32 LD/MD/HD sub-family and
  the CL sub-family. Now the selection of the sub-family is done in the
  board.h file, there is no more the need to put -DSTM32F10X_xx into
  the makefile.
- NEW: Added the palSetBusMode() capability to the STM8 PAL driver.
- NEW: Added the palSetBusMode() capability to the LPC11xx and LPC13xx
  PAL drivers.
- NEW: Updated the STM32 FW Library files to latest version 3.3.0.
- CHANGE: Renamed the STM32, STM8, LPC214x, AT91SAM7x, MSP430 and simulators
  PAL configuration structures to PALConfig, it is better to have the same
  name for this structure in all ports (like for all the other drivers).
- CHANGE: Modified the linker scripts in the ARM demos in order to increase
  compatibility with the CodeSourcery toolchain.
- Tested the STM8 port with the latest RKit-STM8_2.28.10.0092. It works but
  the new compiler shows a slight performance regression except in one
  test case.
- Added credits page to the documentation, improved the article regardi

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。